aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2024-05-19 00:42:48 +0200
committerMatěj Cepl <mcepl@cepl.eu>2024-05-19 00:42:48 +0200
commiteb3942e15700f3f4f61b4e46917ae8fbe614e524 (patch)
treebe0c003fa8a0dead8d9dc921050ba13a56d1a9dd /include
parent71d625f730d872791eef74d7999e1be28d5e5c7e (diff)
downloadlout-master.tar.gz
Lout 3.41.HEADmaster
http://jeffreykingston.id.au/lout/lout-3.41.tar.gz
Diffstat (limited to 'include')
-rw-r--r--include/README8
-rw-r--r--include/bsf48
-rw-r--r--include/coltex2
-rw-r--r--include/diag7
-rw-r--r--include/diagf107
-rw-r--r--include/diagf.lpg14
-rw-r--r--include/dsf51
-rw-r--r--include/graph85
-rw-r--r--include/graphf1615
-rw-r--r--include/include/README113
-rw-r--r--include/include/blue118
-rw-r--r--include/include/bluef446
-rw-r--r--include/include/book542
-rw-r--r--include/include/bookf1645
-rw-r--r--include/include/bsf1929
-rw-r--r--include/include/bsf.lpg147
-rw-r--r--include/include/coltex434
-rw-r--r--include/include/cprint118
-rw-r--r--include/include/cprintf446
-rw-r--r--include/include/diag669
-rw-r--r--include/include/diagf8217
-rw-r--r--include/include/diagf.etc644
-rw-r--r--include/include/diagf.lpg3414
-rw-r--r--include/include/doc466
-rw-r--r--include/include/docf845
-rw-r--r--include/include/dsf5426
-rw-r--r--include/include/eiffel118
-rw-r--r--include/include/eiffelf446
-rw-r--r--include/include/eq29
-rw-r--r--include/include/eqf1717
-rw-r--r--include/include/fig29
-rw-r--r--include/include/figf926
-rw-r--r--include/include/figf.lpg1010
-rw-r--r--include/include/graph112
-rw-r--r--include/include/graphf1097
-rw-r--r--include/include/graphf.etc312
-rw-r--r--include/include/graphf.lpg1091
-rw-r--r--include/include/haskell118
-rw-r--r--include/include/haskellf527
-rw-r--r--include/include/init37
-rw-r--r--include/include/java118
-rw-r--r--include/include/javaf446
-rw-r--r--include/include/langdefs31
-rw-r--r--include/include/latin29
-rw-r--r--include/include/lengths167
-rw-r--r--include/include/math32
-rw-r--r--include/include/mathf2944
-rw-r--r--include/include/modula29
-rw-r--r--include/include/modulaf154
-rw-r--r--include/include/mydefs11
-rw-r--r--include/include/np117
-rw-r--r--include/include/npf460
-rw-r--r--include/include/pas29
-rw-r--r--include/include/pasf127
-rw-r--r--include/include/perl136
-rw-r--r--include/include/perlf446
-rw-r--r--include/include/picture352
-rw-r--r--include/include/picturef55
-rw-r--r--include/include/pie111
-rw-r--r--include/include/pief426
-rw-r--r--include/include/pief.lpg488
-rw-r--r--include/include/pod178
-rw-r--r--include/include/podf567
-rw-r--r--include/include/python118
-rw-r--r--include/include/pythonf450
-rw-r--r--include/include/report506
-rw-r--r--include/include/reportf1030
-rw-r--r--include/include/rsl119
-rw-r--r--include/include/rslf504
-rw-r--r--include/include/ruby118
-rw-r--r--include/include/rubyf449
-rw-r--r--include/include/russian12
-rw-r--r--include/include/russian.fd40
-rw-r--r--include/include/slides412
-rw-r--r--include/include/slidesf414
-rw-r--r--include/include/tab31
-rw-r--r--include/include/tabf953
-rw-r--r--include/include/tabf.lpg118
-rw-r--r--include/include/tbl82
-rw-r--r--include/include/tblf3218
-rw-r--r--include/include/ts108
-rw-r--r--include/include/xrgb697
-rw-r--r--include/javascript (renamed from include/include/javascript)0
-rw-r--r--include/javascriptf (renamed from include/include/javascriptf)0
-rw-r--r--include/npf14
-rw-r--r--include/old_graph (renamed from include/include/old_graph)0
-rw-r--r--include/old_graphf (renamed from include/include/old_graphf)0
-rw-r--r--include/pief2
-rw-r--r--include/slidesf2
-rw-r--r--include/tcl (renamed from include/include/tcl)0
-rw-r--r--include/tclf (renamed from include/include/tclf)0
91 files changed, 1134 insertions, 50821 deletions
diff --git a/include/README b/include/README
index c1ae322..86de180 100644
--- a/include/README
+++ b/include/README
@@ -33,6 +33,7 @@ Setup files (containing mainly lists of options settable by the user)
eiffel Eiffel
haskell Haskell
java Java
+ javascript JavaScript
modula Modula-2 (quick hack, does not use prg2lout)
np Nonpareil
pas Pascal (quick hack, does not use prg2lout)
@@ -41,6 +42,7 @@ Setup files (containing mainly lists of options settable by the user)
python Python
rsl RSL
ruby Ruby
+ tcl Tcl
Source files containing Lout and PostScript source code for the packages
------------------------------------------------------------------------
@@ -71,6 +73,7 @@ Source files containing Lout and PostScript source code for the packages
eiffelf Eiffel
haskellf Haskell
javaf Java
+ javascriptf JavaScript
modulaf Modula-2
npf Nonpareil
pasf Pascal
@@ -79,6 +82,7 @@ Source files containing Lout and PostScript source code for the packages
pythonf Python
rslf RSL
rubyf Ruby
+ tclf Tcl
Obsolete source files retained for backward compatibility
---------------------------------------------------------
@@ -91,6 +95,8 @@ Obsolete source files retained for backward compatibility
fig Fig advanced graphics package (obsolete, use diag)
figf Fig advanced graphics package
figf.lpg A PostScript prepend file needed by figf
+ old_graph Old setup file for Graph package
+ old_graphf Old version of Graph package
Miscellaneous source files
--------------------------
@@ -104,4 +110,4 @@ Miscellaneous source files
Jeffrey H. Kingston
-19 September 2008
+26 June 2013
diff --git a/include/bsf b/include/bsf
index 383d918..6c8959e 100644
--- a/include/bsf
+++ b/include/bsf
@@ -52,6 +52,53 @@ def @OrIfPlain
}
}
+
+def @ZeroSize right x
+{
+ @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
+}
+
+
+###########################################################################
+# #
+# @Place: places an object at an arbitrary point on the page. #
+# #
+###########################################################################
+
+#
+# VT: the expressions in the braces will work for PostScript but not for PDF
+# they should be modified in the way the "named c { " cm" }" blocks were modified above
+# but since the point of @Place is to output a matrix (?), I have not implemented this
+#
+def @Place
+ import @PSLengths named x
+ named "+" precedence 96 associativity left left a right b { a b "add" }
+ named "-" precedence 96 associativity left left a right b { a b "sub" }
+ named "/" precedence 97 associativity left left a right b { a b "div" }
+ named "*" precedence 98 associativity left left a right b { a b "mul" }
+ { 0 }
+ import @PSLengths named y
+ named "+" precedence 96 associativity left left a right b { a b "add" }
+ named "-" precedence 96 associativity left left a right b { a b "sub" }
+ named "/" precedence 97 associativity left left a right b { a b "div" }
+ named "*" precedence 98 associativity left left a right b { a b "mul" }
+ { 0 }
+ right val
+{
+ @ZeroSize {
+ @BackEnd @Case {
+ PlainText @Yield ""
+ PostScript @Yield {
+ { "LoutPageDict begin matr setmatrix" x y "translate end gsave"
+ // "grestore" } @Graphic val
+ }
+ else @Yield { { "% @Place UNIMPLEMENTED" } @Graphic val # VT: PDF currently has no output
+ }
+ }
+ }
+}
+
+
###########################################################################
# #
# @Colour, @Color #
@@ -78,7 +125,6 @@ def @ColouredUnderline @ColoredUnderline left col right y {
# #
###########################################################################
-
def @Texture
left type
named scale { 1 }
diff --git a/include/coltex b/include/coltex
index 17f70a3..079b759 100644
--- a/include/coltex
+++ b/include/coltex
@@ -57,7 +57,7 @@
# nochange "" #
# "" "" #
# rgb <red> <blue> <green> "<red> <blue> <green> LoutSetRGBColor" #
-# cymk <c> <y> <m> <k> "<c> <y> <m> <k> LoutSetCMYKColor" #
+# cmyk <c> <m> <y> <k> "<c> <m> <y> <k> LoutSetCMYKColor" #
# ------------------------------------------------------------ #
# #
# See the Expert's Guide for the use of LoutSetRGBColor and #
diff --git a/include/diag b/include/diag
index fec476b..fd0fe4a 100644
--- a/include/diag
+++ b/include/diag
@@ -52,6 +52,7 @@
# outlinestyle { solid }
# outlinedashlength { 0.2f }
# outlinewidth { thin }
+ # outlinecolour { nochange }
# paint { none }
# texture { solid }
# font { }
@@ -137,6 +138,7 @@
# aoutlinestyle { solid }
# aoutlinedashlength { 0.2f }
# aoutlinewidth { thin }
+ # aoutlinecolour { nochange }
# apaint { none }
# atexture { solid }
# afont { }
@@ -222,6 +224,7 @@
# boutlinestyle { solid }
# boutlinedashlength { 0.2f }
# boutlinewidth { thin }
+ # boutlinecolour { nochange }
# bpaint { none }
# btexture { solid }
# bfont { }
@@ -307,6 +310,7 @@
# coutlinestyle { solid }
# coutlinedashlength { 0.2f }
# coutlinewidth { thin }
+ # coutlinecolour { nochange }
# cpaint { none }
# ctexture { solid }
# cfont { }
@@ -392,6 +396,7 @@
# doutlinestyle { solid }
# doutlinedashlength { 0.2f }
# doutlinewidth { thin }
+ # doutlinecolour { nochange }
# dpaint { none }
# dtexture { solid }
# dfont { }
@@ -477,6 +482,7 @@
# eoutlinestyle { solid }
# eoutlinedashlength { 0.2f }
# eoutlinewidth { thin }
+ # eoutlinecolour { nochange }
# epaint { none }
# etexture { solid }
# efont { }
@@ -569,6 +575,7 @@
# pathstyle { solid }
# pathdashlength { 0.2f }
# pathwidth { thin }
+ # pathcolour { nochange }
# pathgap { thin }
# arrow { no }
# arrowstyle { solid }
diff --git a/include/diagf b/include/diagf
index e68041b..f58b37d 100644
--- a/include/diagf
+++ b/include/diagf
@@ -84,6 +84,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named outlinecolour outlinecolor { nochange }
named paint { none }
import @TextureImport named texture { solid }
named font { }
@@ -203,6 +204,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named aoutlinecolour aoutlinecolor { nochange }
named apaint { none }
import @TextureImport named atexture{ solid }
named afont { }
@@ -322,6 +324,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named boutlinecolour boutlinecolor { nochange }
named bpaint { none }
import @TextureImport named btexture{ solid }
named bfont { }
@@ -441,6 +444,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named coutlinecolour coutlinecolor { nochange }
named cpaint { none }
import @TextureImport named ctexture{ solid }
named cfont { }
@@ -560,6 +564,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named doutlinecolour doutlinecolor { nochange }
named dpaint { none }
import @TextureImport named dtexture{ solid }
named dfont { }
@@ -679,6 +684,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named eoutlinecolour eoutlinecolor { nochange }
named epaint { none }
import @TextureImport named etexture{ solid }
named efont { }
@@ -816,6 +822,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ thin }
+ named pathcolour pathcolor { nochange }
import @Geometry named pathgap
named thin { 0.08 ft }
named medium { 0.16 ft }
@@ -1010,6 +1017,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ outlinewidth }
+ named outlinecolour outlinecolor { outlinecolour }
named paint { paint }
import @TextureImport named texture { texture }
named font { font }
@@ -1078,6 +1086,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ aoutlinewidth }
+ named aoutlinecolour aoutlinecolor { aoutlinecolour }
named apaint { apaint }
import @TextureImport named atexture { atexture }
named afont { afont }
@@ -1146,6 +1155,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ boutlinewidth }
+ named boutlinecolour boutlinecolor { boutlinecolour }
named bpaint { bpaint }
import @TextureImport named btexture { btexture }
named bfont { bfont }
@@ -1214,6 +1224,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ coutlinewidth }
+ named coutlinecolour coutlinecolor { coutlinecolour }
named cpaint { cpaint }
import @TextureImport named ctexture { ctexture }
named cfont { cfont }
@@ -1282,6 +1293,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ doutlinewidth }
+ named doutlinecolour doutlinecolor { doutlinecolour }
named dpaint { dpaint }
import @TextureImport named dtexture { dtexture }
named dfont { dfont }
@@ -1350,6 +1362,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ eoutlinewidth }
+ named eoutlinecolour eoutlinecolor { eoutlinecolour }
named epaint { epaint }
import @TextureImport named etexture { etexture }
named efont { efont }
@@ -1446,6 +1459,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ pathwidth }
+ named pathcolour pathcolor { pathcolour }
import @Geometry named pathgap
named thin { 0.08 ft }
named medium { 0.16 ft }
@@ -2739,6 +2753,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ outlinewidth }
+ named outlinecolour outlinecolor { outlinecolour }
named paint { paint }
import @TextureImport named texture { texture }
named font { font }
@@ -2992,9 +3007,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -3089,6 +3105,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ aoutlinewidth }
+ named outlinecolour outlinecolor { aoutlinecolour }
named paint { apaint }
import @TextureImport named texture { atexture }
named font { afont }
@@ -3342,9 +3359,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -3439,6 +3457,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ boutlinewidth }
+ named outlinecolour outlinecolor { boutlinecolour }
named paint { bpaint }
import @TextureImport named texture { btexture }
named font { bfont }
@@ -3692,9 +3711,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -3789,6 +3809,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ coutlinewidth }
+ named outlinecolour outlinecolor { coutlinecolour }
named paint { cpaint }
import @TextureImport named texture { ctexture }
named font { cfont }
@@ -4042,9 +4063,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -4139,6 +4161,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ doutlinewidth }
+ named outlinecolour outlinecolor { doutlinecolour }
named paint { dpaint }
import @TextureImport named texture { dtexture }
named font { dfont }
@@ -4392,9 +4415,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -4489,6 +4513,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ eoutlinewidth }
+ named outlinecolour outlinecolor { eoutlinecolour }
named paint { epaint }
import @TextureImport named texture { etexture }
named font { efont }
@@ -4742,9 +4767,10 @@ def @DiagSetup
@HContract @VContract
{
{
- "ldiagnodebegin [" @OutLine "]"
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @PSAddPaint texture "ldiagnodeend"
+ "ldiagnodebegin [" @OutLine "]" outlinedashlength
+ "[" outlinestyle "]" outlinewidth
+ "{" @ColourCommand outlinecolour "}"
+ paint @PSAddPaint texture "ldiagnodeend"
"(IN) ldiagpushtagdict"
//
"ldiagpopuptagdict"
@@ -4826,6 +4852,9 @@ def @DiagSetup
vsize {}
vstrut { no }
hstrut { no }
+ paint { nochange }
+ texture { solid }
+ outlinestyle { noline }
}
def @SolidArrowHead
@@ -4834,9 +4863,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- paint { nochange }
- texture { solid }
- outlinestyle { noline }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4857,9 +4883,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- paint { nochange }
- texture { solid }
- outlinestyle { noline }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4882,9 +4905,6 @@ def @DiagSetup
{
@InsulatedNode
outlinewidth { pathwidth }
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outline {
@BackEnd @Case {
PostScript @Yield {
@@ -4905,9 +4925,6 @@ def @DiagSetup
named pathgap { pathgap }
{
@InsulatedNode
- paint { nochange }
- texture { solid }
- outlinestyle { noline }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4928,9 +4945,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4952,9 +4966,6 @@ def @DiagSetup
named pathgap { pathgap }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4976,9 +4987,6 @@ def @DiagSetup
named pathgap { pathgap }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -4999,9 +5007,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline { circle }
{ length @Wide length @High }
@@ -5013,9 +5018,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline { box }
{ length @Wide width @High }
@@ -5027,9 +5029,6 @@ def @DiagSetup
named pathwidth { pathwidth }
{
@InsulatedNode
- outlinestyle { noline }
- paint { nochange }
- texture { solid }
outlinewidth { pathwidth }
outline {
@BackEnd @Case {
@@ -5045,9 +5044,10 @@ def @DiagSetup
named width { arrowwidth }
named length { arrowlength }
named pathwidth { pathwidth }
+ named pathcolour { pathcolour }
named pathgap { pathgap }
{
- style @Case {
+ {@ColourCommand pathcolour} @SetColour style @Case {
solid @Yield @SolidArrowHead
width { width } length { length }
pathwidth { pathwidth }
@@ -5153,6 +5153,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ pathwidth }
+ named pathcolour pathcolor { pathcolour }
import @Geometry named pathgap
named thin { 0.08 ft }
named medium { 0.16 ft }
@@ -5299,6 +5300,7 @@ def @DiagSetup
width { backarrowwidth }
length { backarrowlength }
pathwidth { pathwidth }
+ pathcolour { pathcolour }
pathgap { @PathGap }
}
else @Yield ""
@@ -5314,6 +5316,7 @@ def @DiagSetup
width { arrowwidth }
length { arrowlength }
pathwidth { pathwidth }
+ pathcolour { pathcolour }
pathgap { @PathGap }
}
else @Yield ""
@@ -6466,8 +6469,8 @@ def @DiagSetup
@Null & # so that preceding space gets chewed up
{
- @Direct "ldiaglinkbegin [" @Path "]" pathdashlength
- "[" pathstyle "]" pathwidth "ldiaglinkend"
+ @Direct "ldiaglinkbegin" @ColourCommand pathcolour
+ "[" @Path "]" pathdashlength "[" pathstyle "]" pathwidth "ldiaglinkend"
}
@Graphic
{
@@ -6563,6 +6566,7 @@ def @DiagSetup
named medium { 0.08 ft }
named thick { 0.12 ft }
{ pathwidth }
+ named pathcolour { pathcolour }
import @Geometry named pathgap
named thin { 0.08 ft }
named medium { 0.16 ft }
@@ -6700,6 +6704,7 @@ def @DiagSetup
pathstyle { pathstyle }
pathdashlength { pathdashlength }
pathwidth { pathwidth }
+ pathcolour { pathcolour }
pathgap { pathgap }
arrow { arrow }
arrowstyle { arrowstyle }
diff --git a/include/diagf.lpg b/include/diagf.lpg
index 3c6e279..846d510 100644
--- a/include/diagf.lpg
+++ b/include/diagf.lpg
@@ -780,7 +780,7 @@ ldiagdict begin
} def
% ldiagsetpath: convert a Diag path into a PostScript path
-% [ shape ] ldiagsetpath
+% [ shape ] ldiagsetpath -
/ldiagsetpath
{
10 dict begin
@@ -971,15 +971,17 @@ ldiagdict begin
} def
% ldiagnodeend: end of node parameters (so do the node)
-% <outline> <dashlength> <style> <linewidth> <paint> ldiagnodeend -
+% <outline> <dashlength> <style> <linewidth> <colour> <paint> ldiagnodeend -
/ldiagnodeend
{
% (Entering ldiagnodeend) 0 ldiagdebugprint
end % matches begin in ldiagnodebegin
- 4 index gsave ldiagpaintpath grestore
- 3 index ldiagsetpath clip newpath
- 2 mul setlinewidth
- 3 -1 roll ldiagdosegpath
+ 5 index gsave ldiagpaintpath grestore % <outline> <dl> <st> <lw> <cl>
+ 4 index ldiagsetpath clip newpath % <outline> <dl> <st> <lw> <cl>
+ exec % <outline> <dl> <st> <lw>
+ 2 mul setlinewidth % <outline> <dl> <st>
+ 3 -1 roll % <dashlength> <st> <outline>
+ ldiagdosegpath % -
% (Leaving ldiagnodeend) 0 ldiagdebugprint
} def
diff --git a/include/dsf b/include/dsf
index b19bb9e..96e115e 100644
--- a/include/dsf
+++ b/include/dsf
@@ -49,7 +49,7 @@ export
@Figure @Table @Floater
@FootNote @AnotherFootNote @EndNote
- @LeftNote @RightNote @OuterNote @InnerNote @Place
+ @LeftNote @RightNote @OuterNote @InnerNote # @Place
@Theorem @Proof @EndProof
@Definition @Claim @Proposition @Lemma @Corollary @Example
@Reference @RefStyle @RefPrint
@@ -434,27 +434,33 @@ def @DocumentSetup
named @TheoremFormat named word {} named number {} named title {} named body {} # theorem format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @DefinitionWord { definition } # "Definition" word, etc.
- named @DefinitionTitleFormat{ (title) } # Definition title format if present
+ named @DefinitionTitleFormat right title
+ { (title) } # Definition title format if present
named @DefinitionFormat named word {} named number {} named title {} named body {} # definition format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @ClaimWord { claim } # "Claim" word, etc.
- named @ClaimTitleFormat { (title) } # Claim title format if present
+ named @ClaimTitleFormat right title
+ { (title) } # Claim title format if present
named @ClaimFormat named word {} named number {} named title {} named body {} # claim format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @PropositionWord { proposition } # "Proposition" word, etc.
- named @PropositionTitleFormat{ (title) } # Proposition title format if present
+ named @PropositionTitleFormat right title
+ { (title) } # Proposition title format if present
named @PropositionFormat named word {} named number {} named title {} named body {} # proposition format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @LemmaWord { lemma } # "Lemma" word, etc.
- named @LemmaTitleFormat { (title) } # Lemma title format if present
+ named @LemmaTitleFormat right title
+ { (title) } # Lemma title format if present
named @LemmaFormat named word {} named number {} named title {} named body {} # lemma format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @CorollaryWord { corollary } # "Corollary" word, etc.
- named @CorollaryTitleFormat { (title) } # Corollary title format if present
+ named @CorollaryTitleFormat right title
+ { (title) } # Corollary title format if present
named @CorollaryFormat named word {} named number {} named title {} named body {} # corollary format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @ExampleWord { example } # "Example" word, etc.
- named @ExampleTitleFormat { (title) } # Example title format if present
+ named @ExampleTitleFormat right title
+ { (title) } # Example title format if present
named @ExampleFormat named word {} named number {} named title {} named body {} # example format
{ { @B { word @NumSep number title: } &2s } @Insert body }
named @ProofWord { proof } # "Proof" word, etc.
@@ -791,6 +797,10 @@ def @DocumentSetup
A3 @Yield 842p
A4 @Yield 595p
A5 @Yield 420p
+ ISOB4 @Yield 709p
+ ISOB5 @Yield 499p
+ JISB4 @Yield 729p
+ JISB5 @Yield 516p
B4 @Yield 729p
B5 @Yield 516p
Folio @Yield 612p
@@ -815,6 +825,10 @@ def @DocumentSetup
A3 @Yield 1190p
A4 @Yield 842p
A5 @Yield 595p
+ ISOB4 @Yield 1001p
+ ISOB5 @Yield 709p
+ JISB4 @Yield 1032p
+ JISB5 @Yield 729p
B4 @Yield 1032p
B5 @Yield 729p
Folio @Yield 936p
@@ -2747,10 +2761,11 @@ def @DocumentSetup
# #
###########################################################################
- def @ZeroSize right x
- {
- @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
- }
+ # moved to bsf
+ #def @ZeroSize right x
+ #{
+ # @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
+ #}
def @MargPut
left parity
@@ -2792,7 +2807,7 @@ def @DocumentSetup
# they should be modified in the way the "named c { " cm" }" blocks were modified above
# but since the point of @Place is to output a matrix (?), I have not implemented this change
#
- def @Place
+ def @OldPlace
import @PSLengths named x
named "+" precedence 96 associativity left left a right b { a b "add" }
named "-" precedence 96 associativity left left a right b { a b "sub" }
@@ -2950,7 +2965,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @DefinitionTitleFormat @Title
}
}
@@ -3005,7 +3020,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @ClaimTitleFormat @Title
}
}
@@ -3060,7 +3075,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @PropositionTitleFormat @Title
}
}
@@ -3115,7 +3130,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @LemmaTitleFormat @Title
}
}
@@ -3170,7 +3185,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @CorollaryTitleFormat @Title
}
}
@@ -3225,7 +3240,7 @@ def @DocumentSetup
{
@Title @Case {
"" @Yield @Null
- else @Yield (@Title)
+ else @Yield @ExampleTitleFormat @Title
}
}
diff --git a/include/graph b/include/graph
index 368b06a..8f6c2a2 100644
--- a/include/graph
+++ b/include/graph
@@ -4,6 +4,7 @@
# #
# Jeffrey H. Kingston #
# 5 February 1999 #
+# 21 June 2013 #
# #
# This file has been placed in the public domain by its author. #
# #
@@ -24,6 +25,88 @@
###############################################################################
# #
-# This package does not offer default options that can be changed. #
+# The @GraphSetup @Use clause #
+# #
+# To change the default value of any option, delete the # at the start of #
+# its line and change the value between braces. #
# #
###############################################################################
+
+@Use { @GraphSetup
+
+ #############################################################################
+ # #
+ # Options for @Graph only #
+ # #
+ #############################################################################
+
+ # style { frame }
+ # font { }
+ # named xorigin { none }
+ # named yorigin { none }
+ # named xlog { none }
+ # named ylog { none }
+ # width { 6.0c }
+ # height { 4.0c }
+ # xextra { auto }
+ # yextra { auto }
+ # xdecreasing { no }
+ # ydecreasing { no }
+ # leftcaption { }
+ # rightcaption { }
+ # abovecaption { }
+ # belowcaption { }
+ # leftgap { 1.5c }
+ # rightgap { 0.5c }
+ # abovegap { 0.5c }
+ # belowgap { 0.5c }
+ # hidecaptions { yes }
+ # xmin { none }
+ # xmax { none }
+ # ymin { none }
+ # ymax { none }
+ # xticksep { none }
+ # yticksep { none }
+ # rticksep { none }
+ # xticks { auto }
+ # yticks { auto }
+ # rticks { }
+ # xticklength { 0.5f }
+ # yticklength { 0.5f }
+ # rticklength { 0.5f }
+ # objects { }
+ # save { no }
+
+ #############################################################################
+ # #
+ # Options for @Graph and @Data #
+ # #
+ #############################################################################
+
+ # points { none }
+ # symbolsize { 0.15f }
+ # symbollinewidth { currentlinewidth }
+ # pairs { none }
+ # dashlength { 0.2f }
+ # linewidth { currentlinewidth }
+ # colour { none }
+ # paint { no }
+ # texture { solid }
+ # dataformat { xandy }
+
+ #############################################################################
+ # #
+ # Options for @GraphCross etc. and @GraphNoLine etc. #
+ # #
+ # Owing to clashes the names of these options differ slightly from the #
+ # names of the corresponding options of @GraphCross etc. and @GraphNoLine #
+ # etc. whose default values they are, in being prefixed by an "o". #
+ # #
+ #############################################################################
+
+ # osymbolsize { 0.15f }
+ # osymbollinewidth { currentlinewidth }
+ # odashlength { 0.2f }
+ # olinewidth { currentlinewidth }
+ # olength { 1.0f }
+}
diff --git a/include/graphf b/include/graphf
index 4106555..fad552f 100644
--- a/include/graphf
+++ b/include/graphf
@@ -1,12 +1,14 @@
###############################################################################
# #
-# Lout @Graph package for drawing graphs (Version 1.0) #
+# Lout @Graph package for drawing graphs (Version 1.1) #
# #
-# Version 1.0 by Jeffrey H. Kingston, December 1993. #
+# Version 1.0 (December 1993). #
+# Version 1.1 (adds @GraphSetup, June 2013) #
+# Jeffrey H. Kingston #
# #
# This package draws graphs, the statistical kind not the graph-theoretical #
-# kind. See the User's Guide (Advanced Graphics) for user info. #
+# kind. See the User's Guide for user info. #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
@@ -33,7 +35,13 @@
@SysPrependGraphic { graphf.lpg }
-def @GraphObj
+###############################################################################
+# #
+# @GraphZZZ symbol - not for ordinary use #
+# #
+###############################################################################
+
+def @GraphZZZ
left p
named margin { 0c }
named adj { 0 0 }
@@ -49,12 +57,12 @@ def @GraphObj
||0io //0io
}
}
-# VT: PDF does nothing
+ # VT: PDF does nothing
PDF @Yield {
@Null & # kills previous white space
@HContract @VContract {
//0io ||0io @HContract @VContract
- { "% @GraphObj UNIMPLEMENTED" }
+ { "% @GraphZZZ UNIMPLEMENTED" }
@Graphic { //margin ||margin x ||margin //margin }
||0io //0io
}
@@ -62,197 +70,328 @@ def @GraphObj
}
}
-def @GraphCross
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
+
+###############################################################################
+# #
+# @GraphSetup symbol #
+# #
+###############################################################################
+
+export @GraphCross @GraphPlus @GraphSquare @GraphFilledSquare
+ @GraphDiamond @GraphFilledDiamond @GraphCircle @GraphFilledCircle
+ @GraphTriangle @GraphFilledTriangle
+
+ @GraphNoLine @GraphSolid @GraphDashed @GraphDotted @GraphDotDashed
+ @GraphDotDotDashed @GraphDotDotDotDashed
+
+ @Graph
+
+def @GraphSetup
+ named style { frame }
+ named font { }
+ named xorigin named none { "false" } { none }
+ named yorigin named none { "false" } { none }
+ named xlog named none { "0" } { none }
+ named ylog named none { "0" } { none }
+ import @LoutLengths named width { 6.0c }
+ import @LoutLengths named height { 4.0c }
+ import @PSLengths named xextra { auto }
+ import @PSLengths named yextra { auto }
+ named xdecreasing { no }
+ named ydecreasing { no }
+ named leftcaption { }
+ named rightcaption { }
+ named abovecaption { }
+ named belowcaption { }
+ import @LoutLengths named leftgap { 1.5c }
+ import @LoutLengths named rightgap { 0.5c }
+ import @LoutLengths named abovegap { 0.5c }
+ import @LoutLengths named belowgap { 0.5c }
+ named hidecaptions { yes }
+ named xmin named none { "false" } { none }
+ named xmax named none { "false" } { none }
+ named ymin named none { "false" } { none }
+ named ymax named none { "false" } { none }
+ named xticksep named none { "0" } { none }
+ named yticksep named none { "0" } { none }
+ named rticksep named none { "0" } { none }
+ import @GraphMath named xticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { auto }
+ import @GraphMath named yticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { auto }
+ import @GraphMath named rticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { }
+ import @PSLengths named xticklength { 0.5f }
+ import @PSLengths named yticklength { 0.5f }
+ import @PSLengths named rticklength { 0.5f }
+ named objects
+ named @NW
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg ysize" } margin { margin } x }
+ named @SW
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 0" } margin { margin } x }
+ named @SE
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 0" } margin { margin } x }
+ named @NE
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 ysize" } margin { margin } x }
+ named @W
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg ysize 2 div" } margin { margin } x }
+ named @S
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 2 div 0" } margin { margin } x }
+ named @E
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 ysize 2 div" } margin { margin } x }
+ named @N
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 2 div ysize" } margin { margin } x }
+ named @CTR
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ {at @GraphZZZ adj {"xsize neg 2 div ysize 2 div"} margin {margin} x}
+ {}
+ named save { no }
+ named points named none { "none" } { none }
+ import @PSLengths named symbolsize { 0.15f }
+ import @PSLengths named symbollinewidth { "currentlinewidth" }
+ named pairs named none { "none" } { none }
+ import @PSLengths named dashlength { 0.2f }
+ import @PSLengths named linewidth { "currentlinewidth" }
+ named colour color named none { "none" } { none }
+ named paint { no }
+ import @TextureImport named texture { solid }
+ named dataformat { xandy }
+ import @LoutLengths named osymbolsize { 0.15f }
+ import @PSLengths named osymbollinewidth { "currentlinewidth" }
+ import @PSLengths named odashlength { 0.2f }
+ import @PSLengths named olinewidth { "currentlinewidth" }
+ import @LoutLengths named olength { 1.0f }
{
- @BackEnd @Case {
+ def @GraphCross
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize ysize lineto 0 ysize moveto"
- # "xsize 0 lineto [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "docross"
- // "end"
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 0 moveto xsize ysize lineto 0 ysize moveto"
+ # "xsize 0 lineto [] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "docross"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- { "n [] 0 d 0 0 m __xsize __ysize l 0 __ysize m __xsize 0 l S"}
- # uses S because PostScript version does NOT use closepath
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ PDF @Yield {
+ @HContract @VContract
+ { "n [] 0 d 0 0 m __xsize __ysize l 0 __ysize m __xsize 0 l S"}
+ # uses S because PostScript version does NOT use closepath
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
+
+ }
}
- }
-}
+ def @GraphPlus
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphPlus
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath xmark 0 moveto xmark ysize lineto 0 ymark moveto"
+ # "xsize ymark lineto [] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "doplus"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark 0 moveto xmark ysize lineto 0 ymark moveto"
- # "xsize ymark lineto [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "doplus"
- // "end"
+ PDF @Yield {
+ @HContract @VContract
+ { "n [] 0 d __xmark 0 m __xmark __ysize l 0 __ymark m __xsize __ymark l S"}
+ # uses S because PostScript version does NOT use closepath
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- { "n [] 0 d __xmark 0 m __xmark __ysize l 0 __ymark m __xsize __ymark l S"}
- # uses S because PostScript version does NOT use closepath
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
+ def @GraphSquare
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphSquare
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
+ # "0 ysize lineto closepath [] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "dosquare"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
- # "0 ysize lineto closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dosquare"
- // "end"
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 0 __xsize __ysize re s"}
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 __xsize __ysize re s"}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
+ def @GraphFilledSquare
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphFilledSquare
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize"
+ # "lineto closepath gsave [] 0 setdash stroke grestore fill"
+ "lgraphdict begin xmark ymark xmark"
+ symbollinewidth "dofilledsquare" // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
- # "0 ysize lineto closepath gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dofilledsquare"
- // "end"
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 0 __xsize __ysize re b"}
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 __xsize __ysize re b"}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
+ def @GraphDiamond
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphDiamond
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
+ # "xmark ysize lineto closepath [] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "dodiamond"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
- # "xmark ysize lineto closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dodiamond"
- // "end"
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l s"}
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l s"}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
-
-def @GraphFilledDiamond
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ def @GraphFilledDiamond
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
- # "xmark ysize lineto closepath gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dofilleddiamond"
- // "end"
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
+ # "xmark ysize lineto closepath gsave [] 0 setdash stroke
+ # grestore fill"
+ "lgraphdict begin xmark ymark xmark"
+ symbollinewidth "dofilleddiamond" // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l b"
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l b"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- }
-}
+ }
+ }
-def @GraphCircle
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ def @GraphCircle
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark ymark xmark 0 360 arc"
- # "[] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "docircle"
- // "end"
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath xmark ymark xmark 0 360 arc"
+ # "[] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "docircle"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
+ PDF @Yield {
+ @HContract @VContract
#
# draw a circle whose centre is at (xmark, ymark) and whose radius is xmark units;
#
@@ -270,42 +409,42 @@ def @GraphCircle
# pt2 = (xmark + xmark, ymark - 4/3 * xmark)
# pt3 = (xmark + xmark, ymark)
#
- {"n [] 0 d"
- "__mul(2, __xmark) __ymark m"
- "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "0 __ymark c" # pt3
-
- "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "__mul(2, __xmark) __ymark c S" # pt3
- }
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
+ {"n [] 0 d"
+ "__mul(2, __xmark) __ymark m"
+ "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
+ "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
+ "0 __ymark c" # pt3
+
+ "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
+ "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
+ "__mul(2, __xmark) __ymark c S" # pt3
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- }
-}
+ }
+ }
-def @GraphFilledCircle
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark ymark xmark 0 360 arc"
- # "gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dofilledcircle"
- // "end"
+ def @GraphFilledCircle
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath xmark ymark xmark 0 360 arc"
+ # "gsave [] 0 setdash stroke grestore fill"
+ "lgraphdict begin xmark ymark xmark"
+ symbollinewidth "dofilledcircle" // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
+ PDF @Yield {
+ @HContract @VContract
#
# draw a filled circle whose centre is at (xmark, ymark) and whose radius is xmark units;
#
@@ -327,628 +466,632 @@ def @GraphFilledCircle
# gsave/grestore in the above PostScript but there is no closepath before it;
# but in PDF, it is not possible to execute a setdash within a path definition.
#
- {"n [] 0 d"
- "__mul(2, __xmark) __ymark m"
- "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "0 __ymark c" # pt3
-
- "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "__mul(2, __xmark) __ymark c b" # pt3
- }
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
-}
-
-def @GraphTriangle
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
- # "closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dotriangle"
- // "end"
+ {"n [] 0 d"
+ "__mul(2, __xmark) __ymark m"
+ "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
+ "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
+ "0 __ymark c" # pt3
+
+ "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
+ "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
+ "__mul(2, __xmark) __ymark c b" # pt3
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l s"}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
+ def @GraphTriangle
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphFilledTriangle
- import @LoutLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { 0.5p }
-{
- @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
+ # "closepath [] 0 setdash stroke"
+ "lgraphdict begin xmark ymark xmark" symbollinewidth "dotriangle"
+ // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
- # "closepath gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dofilledtriangle"
- // "end"
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l s"}
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
- }
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l h b"}
- @Graphic
- {symbolsize @High symbolsize @Wide ^| symbolsize @Wide ^/ symbolsize @High}
+ }
}
- }
-}
-
-def @GraphNoLine
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- length @Wide {}
-}
-
-def @GraphSolid
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "solid end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphSolid UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
-}
+ def @GraphFilledTriangle
+ import @LoutLengths named symbolsize { osymbolsize }
+ import @PSLengths named symbollinewidth { osymbollinewidth }
+ {
+ @BackEnd @Case {
-def @GraphDashed
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dashed end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDashed UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
-}
+ PostScript @Yield {
+ @HContract @VContract
+ {
+ # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
+ # "closepath gsave [] 0 setdash stroke grestore fill"
+ "lgraphdict begin xmark ymark xmark"
+ symbollinewidth "dofilledtriangle" // "end"
+ }
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
-def @GraphDotted
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotted end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotted UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
-}
+ PDF @Yield {
+ @HContract @VContract
+ {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l h b"}
+ @Graphic {symbolsize @High symbolsize @Wide ^|
+ symbolsize @Wide ^/ symbolsize @High}
+ }
-def @GraphDotDashed
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotdashed end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
}
- }
-}
-def @GraphDotDotDashed
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotdotdashed end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ def @GraphNoLine
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
+ {
+ length @Wide {}
}
- }
-}
-def @GraphDotDotDotDashed
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @LoutLengths named length { 1.0f }
-{
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotdotdotdashed end"
- } @Graphic { length @Wide }
- }
-# VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ def @GraphSolid
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
+ {
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "solid end"
+ } @Graphic { length @Wide }
+ }
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphSolid UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
+ }
}
- }
-}
-
-export @Data
-def @Graph
- named save { no }
- named style { frame }
- import @LoutLengths named width { 6.0c }
- import @LoutLengths named height { 4.0c }
- import @PSLengths named xextra { "none" }
- import @PSLengths named yextra { "none" }
- named xdecreasing { no }
- named ydecreasing { no }
- named leftcaption { }
- named rightcaption { }
- named abovecaption { }
- named belowcaption { }
- import @LoutLengths named leftgap { 1.5c }
- import @LoutLengths named rightgap { 0.5c }
- import @LoutLengths named abovegap { 0.5c }
- import @LoutLengths named belowgap { 0.5c }
- named hidecaptions { yes }
- named objects
- named @NW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg ysize" } margin { margin } x }
- named @SW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg 0" } margin { margin } x }
- named @SE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "0 0" } margin { margin } x }
- named @NE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "0 ysize" } margin { margin } x }
- named @W
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg ysize 2 div" } margin { margin } x }
- named @S
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg 2 div 0" } margin { margin } x }
- named @E
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "0 ysize 2 div" } margin { margin } x }
- named @N
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg 2 div ysize" } margin { margin } x }
- named @CTR
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphObj adj { "xsize neg 2 div ysize 2 div" } margin {margin} x }
- {}
- named xorigin named none { "false" } { none }
- named yorigin named none { "false" } { none }
- named xlog named none { "0" } { none }
- named ylog named none { "0" } { none }
- named points named none { "none" } { none }
- named pairs named none { "none" } { none }
- named colour color named none { "none" } { none }
- named paint named none { "none" } { none }
- import @TextureImport named texture { solid }
- named xmin named none { "false" } { none }
- named xmax named none { "false" } { none }
- named ymin named none { "false" } { none }
- named ymax named none { "false" } { none }
- named xticksep named none { "0" } { none }
- named yticksep named none { "0" } { none }
- named rticksep named none { "0" } { none }
- import @GraphMath named xticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { false }
- import @GraphMath named yticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { false }
- import @GraphMath named rticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { }
- import @PSLengths named xticklength { 0.5f }
- import @PSLengths named yticklength { 0.5f }
- import @PSLengths named rticklength { 0.5f }
- named dataformat { xandy }
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- import @PSLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { "currentlinewidth" }
- body @Body
-@Begin
-
- def @Above
+ def @GraphDashed
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
{
- abovecaption @Case {
- "" @Yield {}
- else @Yield @OneCol { ||0.5rt clines @Break abovecaption || //abovegap }
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dashed end"
+ } @Graphic { length @Wide }
+ }
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDashed UNIMPLEMENTED" } @Graphic { olength @Wide }
}
+ }
}
- def @Below
+ def @GraphDotted
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
{
- belowcaption @Case {
- "" @Yield {}
- else @Yield @OneCol { //belowgap ||0.5rt clines @Break belowcaption || }
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotted end"
+ } @Graphic { length @Wide }
+ }
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotted UNIMPLEMENTED" } @Graphic { olength @Wide }
}
+ }
}
- def @Left
+ def @GraphDotDashed
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
{
- leftcaption @Case {
- "" @Yield {}
- else @Yield @OneCol @OneRow {
- { //0.5rt @OneRow clines @Break leftcaption // } ^||leftgap }
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotdashed end"
+ } @Graphic { length @Wide }
+ }
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
}
+ }
}
- def @Right
+ def @GraphDotDotDashed
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
{
- rightcaption @Case {
- "" @Yield {}
- else @Yield @OneCol @OneRow {
- ||rightgap { //0.5rt @OneRow lines @Break rightcaption // } }
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
+ "/linewidth" linewidth "def xsize" dashlength "dotdotdashed end"
+ } @Graphic { length @Wide }
+ }
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
}
+ }
}
- def @ZeroWidth
- right x
+ def @GraphDotDotDotDashed
+ import @PSLengths named dashlength { odashlength }
+ import @PSLengths named linewidth { olinewidth }
+ import @LoutLengths named length { olength }
{
- hidecaptions @Case {
- { No no } @Yield x
- { Yes yes } @Yield @OneCol { ||0io x ||0io }
+ @BackEnd @Case {
+ PostScript @Yield {
+ @HContract @VContract
+ { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto /linewidth"
+ linewidth "def xsize" dashlength "dotdotdotdashed end"
+ } @Graphic { length @Wide }
}
+ # VT: PDF does nothing
+ PDF @Yield {
+ @HContract @VContract
+ { "% @GraphDotDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
+ }
+ }
}
- def @AddCaptions right x
+
+ export @Data
+ def @Graph
+ named style { style }
+ named font { font }
+ named xorigin named none { "false" } { xorigin }
+ named yorigin named none { "false" } { yorigin }
+ named xlog named none { "0" } { xlog }
+ named ylog named none { "0" } { ylog }
+ import @LoutLengths named width { width }
+ import @LoutLengths named height { height }
+ import @PSLengths named xextra { xextra }
+ import @PSLengths named yextra { yextra }
+ named xdecreasing { xdecreasing }
+ named ydecreasing { ydecreasing }
+ named leftcaption { leftcaption }
+ named rightcaption { rightcaption }
+ named abovecaption { abovecaption }
+ named belowcaption { belowcaption }
+ import @LoutLengths named leftgap { leftgap }
+ import @LoutLengths named rightgap { rightgap }
+ import @LoutLengths named abovegap { abovegap }
+ import @LoutLengths named belowgap { belowgap }
+ named hidecaptions { hidecaptions }
+ named xmin named none { "false" } { xmin }
+ named xmax named none { "false" } { xmax }
+ named ymin named none { "false" } { ymin }
+ named ymax named none { "false" } { ymax }
+ named xticksep named none { "0" } { xticksep }
+ named yticksep named none { "0" } { yticksep }
+ named rticksep named none { "0" } { rticksep }
+ import @GraphMath named xticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { xticks }
+ import @GraphMath named yticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { yticks }
+ import @GraphMath named rticks
+ named none { "false" }
+ named auto { "false" }
+ named "@" { " lgen" }
+ named "^" { "^" }
+ { rticks }
+ import @PSLengths named xticklength { xticklength }
+ import @PSLengths named yticklength { yticklength }
+ import @PSLengths named rticklength { rticklength }
+ named objects
+ named @NW
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg ysize" } margin { margin } x }
+ named @SW
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 0" } margin { margin } x }
+ named @SE
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 0" } margin { margin } x }
+ named @NE
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 ysize" } margin { margin } x }
+ named @W
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg ysize 2 div" } margin { margin } x }
+ named @S
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 2 div 0" } margin { margin } x }
+ named @E
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "0 ysize 2 div" } margin { margin } x }
+ named @N
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ { at @GraphZZZ adj { "xsize neg 2 div ysize" } margin { margin } x }
+ named @CTR
+ import @GraphMath named at { 0 0 }
+ import @LoutLengths named margin { 0.3f }
+ right x
+ {at @GraphZZZ adj {"xsize neg 2 div ysize 2 div"} margin {margin} x}
+ { objects }
+ named save { save }
+ named points named none { "none" } { points }
+ import @PSLengths named symbolsize { symbolsize }
+ import @PSLengths named symbollinewidth { symbollinewidth }
+ named pairs named none { "none" } { pairs }
+ import @PSLengths named dashlength { dashlength }
+ import @PSLengths named linewidth { linewidth }
+ named colour color named none { "none" } { colour }
+ named paint { paint }
+ import @TextureImport named texture { texture }
+ named dataformat { dataformat }
+ body @Body
{
- def belowextra
+
+ def @Above
{
- xticks @Case {
- "" @Yield { 0i }
- else @Yield { 1.7f }
+ abovecaption @Case {
+ "" @Yield {}
+ else @Yield @OneCol {
+ ||0.5rt clines @Break abovecaption || //abovegap }
}
}
- @HContract @VContract
+ def @Below
{
- | @Above |
- / @ZeroWidth @Left | &0.5rt x | @ZeroWidth @Right
- /belowextra | @Below |
+ belowcaption @Case {
+ "" @Yield {}
+ else @Yield @OneCol {
+ //belowgap ||0.5rt clines @Break belowcaption || }
+ }
}
- }
- export pi e sqrt abs ceiling floor truncate round cos sin atan exp log rand
- "*" "/" idiv mod "-" "-0" "-1" "-2" "-3" "-4" "-5" "-6" "-7" "-8"
- "-9" "-." "+" "=" "!=" "<" "<=" ">" ">=" not and xor or
- if xloop yloop zloop
-
- def @Data
- named points named none { "none" } { points }
- named pairs named none { "none" } { pairs }
- named colour color named none { "none" } { colour }
- named paint named none { "none" } { paint }
- import @TextureImport named texture { texture }
- import @PSLengths named dashlength { dashlength }
- import @PSLengths named linewidth { linewidth }
- import @PSLengths named symbolsize { symbolsize }
- import @PSLengths named symbollinewidth { symbollinewidth }
- named dataformat { dataformat }
- body data
- {
- def pi { "3.14159" }
- def e { "2.71828" }
- def sqrt precedence 40 right y { y "sqrt" }
- def abs precedence 40 right y { y "abs" }
- def ceiling precedence 40 right y { y "ceiling" }
- def floor precedence 40 right y { y "floor" }
- def truncate precedence 40 right y { y "truncate" }
- def round precedence 40 right y { y "round" }
- def cos precedence 40 right y { y "cos" }
- def sin precedence 40 right y { y "sin" }
- def atan precedence 39 left x right y { x y "atan" }
- def exp precedence 38 left x right y { x y "exp" }
- def log precedence 37 left x right y { x y "dolog" }
- def rand precedence 36 left x right y { x y "dorand" }
- def "*" precedence 35 left x right y { x y "mul" }
- def "/" precedence 34 left x right y { x y "div" }
- def idiv precedence 34 left x right y { x y "idiv" }
- def mod precedence 34 left x right y { x y "mod" }
- def "-" precedence 33 left x right y
- { x @Case { "" @Yield {y "neg"} else @Yield { x y "sub" } } }
- def "-0" { "-0" }
- def "-1" { "-1" }
- def "-2" { "-2" }
- def "-3" { "-3" }
- def "-4" { "-4" }
- def "-5" { "-5" }
- def "-6" { "-6" }
- def "-7" { "-7" }
- def "-8" { "-8" }
- def "-9" { "-9" }
- def "-." { "-." }
- def "+" precedence 32 left x right y
- { x @Case { "" @Yield { y } else @Yield { x y "add" } } }
- def "=" precedence 30 left x right y { x y "eq" }
- def "!=" precedence 30 left x right y { x y "ne" }
- def "<" precedence 30 left x right y { x y "lt" }
- def "<=" precedence 30 left x right y { x y "le" }
- def ">" precedence 30 left x right y { x y "gt" }
- def ">=" precedence 30 left x right y { x y "ge" }
- def not precedence 25 right y { y "not" }
- def and precedence 24 left x right y { x y "and" }
- def xor precedence 23 left x right y { x y "xor" }
- def or precedence 22 left x right y { x y "or" }
- def if
- named cond { true }
- named then {}
- named else {}
- { cond "{" then "} {" else "} ifelse" }
- def xloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named x { "xval" } {}
- { from by to "{ /xval exch def" do "} for" }
- def yloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named y { "yval" } {}
- { from by to "{ /yval exch def" do "} for" }
- def zloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named z { "zval" } {}
- { from by to "{ /zval exch def" do "} for" }
-
- def @IfPt
- left no
- right yes
+ def @Left
{
- points @Case {
- none @Yield no
- else @Yield yes
+ leftcaption @Case {
+ "" @Yield {}
+ else @Yield @OneCol @OneRow {
+ { //0.5rt @OneRow clines @Break leftcaption // } ^||leftgap }
}
}
- def @Points
+ def @Right
{
- points @Case {
- none @Yield ""
- plus @Yield "plus"
- cross @Yield "cross"
- square @Yield "square"
- filledsquare @Yield "filledsquare"
- diamond @Yield "diamond"
- filleddiamond @Yield "filleddiamond"
- circle @Yield "circle"
- filledcircle @Yield "filledcircle"
- triangle @Yield "triangle"
- filledtriangle @Yield "filledtriangle"
+ rightcaption @Case {
+ "" @Yield {}
+ else @Yield @OneCol @OneRow {
+ ||rightgap { //0.5rt @OneRow lines @Break rightcaption // } }
}
}
- def @Pairs
+ def @ZeroWidth
+ right x
{
- pairs @Case {
- none @Yield {}
- solid @Yield { "linesetup solid" @IfPt "ilinesetup solid" }
- dashed @Yield { "linesetup cdashed" @IfPt "ilinesetup dashed" }
- dotted @Yield { "linesetup dotted" @IfPt "ilinesetup dotted" }
- dotdashed @Yield { "linesetup dotcdashed" @IfPt
- "ilinesetup dotdashed" }
- dotdotdashed @Yield { "linesetup dotdotcdashed" @IfPt
- "ilinesetup dotdotdashed" }
- dotdotdotdashed @Yield { "linesetup dotdotdotcdashed" @IfPt
- "ilinesetup dotdotdotdashed" }
- surfacexhisto @Yield { "surfacexhisto" }
- surfaceyhisto @Yield { "surfaceyhisto" }
- xhisto @Yield { "xhisto" }
- yhisto @Yield { "yhisto" }
- filledxhisto @Yield { "filledxhisto" }
- filledyhisto @Yield { "filledyhisto" }
- }
- }
-
- def @DataFormat
- {
- dataformat @Case {
- xandy @Yield xandy
- swapxandy @Yield swapxandy
- yonly @Yield yonly
- xonly @Yield xonly
+ hidecaptions @Case {
+ { No no } @Yield x
+ { Yes yes } @Yield @OneCol { ||0io x ||0io }
}
- }
+ }
- def @Paint
+ def @AddCaptions right x
{
- paint @Case {
- { none no No } @Yield "false"
- { yes Yes } @Yield "true"
+ def belowextra
+ {
+ xticks @Case {
+ "" @Yield { 0i }
+ else @Yield { 1.7f }
+ }
+ }
+
+ @HContract @VContract
+ {
+ | @Above |
+ / @ZeroWidth @Left | &0.5rt x | @ZeroWidth @Right
+ /belowextra | @Below |
}
}
- "[ [" data "]" dataformat
- "{" @Points "}"
- "{" @Pairs "}"
- "{ /dashlength" dashlength "def"
- " /linewidth" linewidth "def" @ColourCommand colour
- " /symbolsize" symbolsize "def"
- " /symbollinewidth" symbollinewidth "def }"
- "{" @Paint "}"
- "{" texture "}"
- "]"
- }
+ export pi e sqrt abs ceiling floor truncate round cos sin atan
+ exp log rand "*" "/" idiv mod "-" "-0" "-1" "-2" "-3" "-4"
+ "-5" "-6" "-7" "-8" "-9" "-." "+" "=" "!=" "<" "<=" ">" ">="
+ not and xor or if xloop yloop zloop
+
+ def @Data
+ named points named none { "none" } { points }
+ import @PSLengths named symbolsize { symbolsize }
+ import @PSLengths named symbollinewidth { symbollinewidth }
+ named pairs named none { "none" } { pairs }
+ import @PSLengths named dashlength { dashlength }
+ import @PSLengths named linewidth { linewidth }
+ named colour color named none { "none" } { colour }
+ named paint { paint }
+ import @TextureImport named texture { texture }
+ named dataformat { dataformat }
+ body data
+ {
+ def pi { "3.14159" }
+ def e { "2.71828" }
+ def sqrt precedence 40 right y { y "sqrt" }
+ def abs precedence 40 right y { y "abs" }
+ def ceiling precedence 40 right y { y "ceiling" }
+ def floor precedence 40 right y { y "floor" }
+ def truncate precedence 40 right y { y "truncate" }
+ def round precedence 40 right y { y "round" }
+ def cos precedence 40 right y { y "cos" }
+ def sin precedence 40 right y { y "sin" }
+ def atan precedence 39 left x right y { x y "atan" }
+ def exp precedence 38 left x right y { x y "exp" }
+ def log precedence 37 left x right y { x y "dolog" }
+ def rand precedence 36 left x right y { x y "dorand" }
+ def "*" precedence 35 left x right y { x y "mul" }
+ def "/" precedence 34 left x right y { x y "div" }
+ def idiv precedence 34 left x right y { x y "idiv" }
+ def mod precedence 34 left x right y { x y "mod" }
+ def "-" precedence 33 left x right y
+ { x @Case { "" @Yield {y "neg"} else @Yield { x y "sub" } } }
+ def "-0" { "-0" }
+ def "-1" { "-1" }
+ def "-2" { "-2" }
+ def "-3" { "-3" }
+ def "-4" { "-4" }
+ def "-5" { "-5" }
+ def "-6" { "-6" }
+ def "-7" { "-7" }
+ def "-8" { "-8" }
+ def "-9" { "-9" }
+ def "-." { "-." }
+ def "+" precedence 32 left x right y
+ { x @Case { "" @Yield { y } else @Yield { x y "add" } } }
+ def "=" precedence 30 left x right y { x y "eq" }
+ def "!=" precedence 30 left x right y { x y "ne" }
+ def "<" precedence 30 left x right y { x y "lt" }
+ def "<=" precedence 30 left x right y { x y "le" }
+ def ">" precedence 30 left x right y { x y "gt" }
+ def ">=" precedence 30 left x right y { x y "ge" }
+ def not precedence 25 right y { y "not" }
+ def and precedence 24 left x right y { x y "and" }
+ def xor precedence 23 left x right y { x y "xor" }
+ def or precedence 22 left x right y { x y "or" }
+ def if
+ named cond { true }
+ named then {}
+ named else {}
+ { cond "{" then "} {" else "} ifelse" }
+ def xloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named x { "xval" } {}
+ { from by to "{ /xval exch def" do "} for" }
+ def yloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named y { "yval" } {}
+ { from by to "{ /yval exch def" do "} for" }
+ def zloop
+ named from { 0 }
+ named to { 0 }
+ named by { 1 }
+ named do named z { "zval" } {}
+ { from by to "{ /zval exch def" do "} for" }
+
+ def @IfPt
+ left no
+ right yes
+ {
+ points @Case {
+ none @Yield no
+ else @Yield yes
+ }
+ }
- def @Style
- {
- style @Case {
- frame @Yield { "framestyle" }
- grid @Yield { "gridstyle" }
- none @Yield { "nonestyle" }
- axes @Yield { "axesstyle" }
- }
- }
+ def @Points
+ {
+ points @Case {
+ none @Yield ""
+ plus @Yield "plus"
+ cross @Yield "cross"
+ square @Yield "square"
+ filledsquare @Yield "filledsquare"
+ diamond @Yield "diamond"
+ filleddiamond @Yield "filleddiamond"
+ circle @Yield "circle"
+ filledcircle @Yield "filledcircle"
+ triangle @Yield "triangle"
+ filledtriangle @Yield "filledtriangle"
+ }
+ }
- def @XExtra
- {
- xextra @Case {
- "none" @Yield {
- style @Case {
- frame @Yield { "0.5 cm" }
- grid @Yield { "0" }
- none @Yield { "0" }
- axes @Yield { "0" }
+ def @Pairs
+ {
+ pairs @Case {
+ none @Yield {}
+ solid @Yield { "linesetup solid" @IfPt "ilinesetup solid" }
+ dashed @Yield { "linesetup cdashed" @IfPt "ilinesetup dashed" }
+ dotted @Yield { "linesetup dotted" @IfPt "ilinesetup dotted" }
+ dotdashed @Yield { "linesetup dotcdashed" @IfPt
+ "ilinesetup dotdashed" }
+ dotdotdashed @Yield { "linesetup dotdotcdashed" @IfPt
+ "ilinesetup dotdotdashed" }
+ dotdotdotdashed @Yield { "linesetup dotdotdotcdashed" @IfPt
+ "ilinesetup dotdotdotdashed" }
+ surfacexhisto @Yield { "surfacexhisto" }
+ surfaceyhisto @Yield { "surfaceyhisto" }
+ xhisto @Yield { "xhisto" }
+ yhisto @Yield { "yhisto" }
+ filledxhisto @Yield { "filledxhisto" }
+ filledyhisto @Yield { "filledyhisto" }
+ }
+ }
+
+ def @DataFormat
+ {
+ dataformat @Case {
+ xandy @Yield xandy
+ swapxandy @Yield swapxandy
+ yonly @Yield yonly
+ xonly @Yield xonly
}
}
- else @Yield xextra
- }
- }
- def @YExtra
- {
- yextra @Case {
- "none" @Yield {
- style @Case {
- frame @Yield { "0.5 cm" }
- grid @Yield { "0" }
- none @Yield { "0" }
- axes @Yield { "0" }
+ def @Paint
+ {
+ paint @Case {
+ { none no No } @Yield "false"
+ { yes Yes } @Yield "true"
}
}
- else @Yield yextra
+
+ "[ [" data "]" dataformat
+ "{" @Points "}"
+ "{" @Pairs "}"
+ "{ /dashlength" dashlength "def"
+ " /linewidth" linewidth "def" @ColourCommand colour
+ " /symbolsize" symbolsize "def"
+ " /symbollinewidth" symbollinewidth "def }"
+ "{" @Paint "}"
+ "{" texture "}"
+ "]"
}
- }
- def @XDecreasing
- {
- xdecreasing @Case {
- { No no } @Yield "false"
- { Yes yes } @Yield "true"
+ def @Style
+ {
+ style @Case {
+ frame @Yield { "framestyle" }
+ grid @Yield { "gridstyle" }
+ none @Yield { "nonestyle" }
+ axes @Yield { "axesstyle" }
+ }
}
- }
- def @YDecreasing
- {
- ydecreasing @Case {
- { No no } @Yield "false"
- { Yes yes } @Yield "true"
+ def @XExtra
+ {
+ xextra @Case {
+ "auto" @Yield {
+ style @Case {
+ frame @Yield { "0.5 cm" }
+ grid @Yield { "0" }
+ none @Yield { "0" }
+ axes @Yield { "0" }
+ }
+ }
+ else @Yield xextra
+ }
}
- }
- @AddCaptions width @Wide height @High
- @BackEnd @Case {
- PostScript @Yield {
- {
- "grestore"
- save @Case { { Yes yes } @Yield "save" else @Yield {} }
- "gsave xsize ysize lgraphdict begin /ysize exch def /xsize exch def"
- "/alldata [" @Body "] def"
- xticksep "[" xticks "] 0 alldata" xmin xmax xlog
- @XExtra @XDecreasing xorigin xticklength "xset"
- yticksep "[" yticks "] 1 alldata" ymin ymax ylog
- @YExtra @YDecreasing yorigin yticklength "yset"
-
- rticks @Case {
-
- "" @Yield "norset"
-
- else @Yield {
- rticksep "[" rticks "] 1 alldata" ymin ymax ylog
- @YExtra @YDecreasing yorigin rticklength "rset"
- }
+ def @YExtra
+ {
+ yextra @Case {
+ "auto" @Yield {
+ style @Case {
+ frame @Yield { "0.5 cm" }
+ grid @Yield { "0" }
+ none @Yield { "0" }
+ axes @Yield { "0" }
+ }
}
+ else @Yield yextra
+ }
+ }
- "rundata" @Style // "end"
- save @Case { { Yes yes } @Yield "restore" else @Yield {} }
- } @Graphic { //1rt objects }
+ def @XDecreasing
+ {
+ xdecreasing @Case {
+ { No no } @Yield "false"
+ { Yes yes } @Yield "true"
+ }
+ }
+
+ def @YDecreasing
+ {
+ ydecreasing @Case {
+ { No no } @Yield "false"
+ { Yes yes } @Yield "true"
+ }
+ }
+
+ font @Font @AddCaptions width @Wide height @High
+ @BackEnd @Case {
+ PostScript @Yield {
+ {
+ "grestore"
+ save @Case { { Yes yes } @Yield "save" else @Yield {} }
+ "gsave xsize ysize lgraphdict begin /ysize exch def"
+ "/xsize exch def /alldata [" @Body "] def"
+ xticksep "[" xticks "] 0 alldata" xmin xmax xlog
+ @XExtra @XDecreasing xorigin xticklength "xset"
+ yticksep "[" yticks "] 1 alldata" ymin ymax ylog
+ @YExtra @YDecreasing yorigin yticklength "yset"
+
+ rticks @Case {
+
+ "" @Yield "norset"
+
+ else @Yield {
+ rticksep "[" rticks "] 1 alldata" ymin ymax ylog
+ @YExtra @YDecreasing yorigin rticklength "rset"
+ }
+ }
+
+ "rundata" @Style // "end"
+ save @Case { { Yes yes } @Yield "restore" else @Yield {} }
+ } @Graphic { //1rt objects }
+ }
+ PDF @Yield { {"% @Graph UNIMPLEMENTED"} @Graphic { //1rt objects } }
}
- PDF @Yield { {"% @Graph UNIMPLEMENTED"} @Graphic { //1rt objects } }
- }
-@End @Graph
+ }
+}
diff --git a/include/include/README b/include/include/README
deleted file mode 100644
index 86de180..0000000
--- a/include/include/README
+++ /dev/null
@@ -1,113 +0,0 @@
-Directory lout/include
-
-This directory contains Lout source files for the standard packages.
-The following listing classifies them into types of files. Ordinary
-users only need to know about setup files, not source files.
-
-Setup files (containing mainly lists of options settable by the user)
----------------------------------------------------------------------
-
- Setup files for basic document types (choose one):
-
- doc OrdinarySetup package
- report ReportSetup package
- book BookSetup package
- slides OverheadsSetup package
- picture IllustrationSetup package
-
- Setup files for special-purpose packages (choose any combination):
-
- diag Diag diagram drawing package
- math Math, a mathematics formatting package
- graph Graph graph drawing package
- latin2 Latin2 (Eastern European characters) package
- pie Pie pie graph drawing package
- russian Russian language package
- tbl Tbl table formatting package
- xrgb @Xrgb symbol (extra named colours)
-
- Setup files for program formatting packages (choose any combination):
-
- blue Blue
- cprint C and C++
- eiffel Eiffel
- haskell Haskell
- java Java
- javascript JavaScript
- modula Modula-2 (quick hack, does not use prg2lout)
- np Nonpareil
- pas Pascal (quick hack, does not use prg2lout)
- perl Perl + Pod
- pod Pod
- python Python
- rsl RSL
- ruby Ruby
- tcl Tcl
-
-Source files containing Lout and PostScript source code for the packages
-------------------------------------------------------------------------
-
- bsf BasicSetup package
- bsf.lpg A PostScript prepend file needed by BasicSetup
- dsf DocumentSetup package
- docf OrdinarySetup package
- reportf ReportSetup package
- bookf BookSetup package
- slidesf OverheadsSetup package
- picturef IllustrationSetup package
-
- diagf Diag diagram drawing package
- diagf.etc A file included by diagf
- diagf.lpg A PostScript prepend file needed by diagf
- mathf Math, a mathematics formatting package
- graphf Graph graph drawing package
- graphf.etc A file included by graphf
- graphf.lpg A PostScript prepend file needed by graphf
- pief Pie diagram drawing package
- pief.lpg A PostScript prepend file needed by pief
- russian.fd Russian font definitions file (placeholder file)
- tblf Tbl table formatting package
-
- bluef Blue
- cprintf C and C++
- eiffelf Eiffel
- haskellf Haskell
- javaf Java
- javascriptf JavaScript
- modulaf Modula-2
- npf Nonpareil
- pasf Pascal
- perlf Perl
- podf Pod
- pythonf Python
- rslf RSL
- rubyf Ruby
- tclf Tcl
-
-Obsolete source files retained for backward compatibility
----------------------------------------------------------
-
- eq Eq equation formatting package (obsolete, use math)
- eqf Eq equation formatting package
- tab Tab table formatting package (obsolete, use tbl)
- tabf Tab table formatting package
- tabf.lpg A PostScript prepend file needed by tabf
- fig Fig advanced graphics package (obsolete, use diag)
- figf Fig advanced graphics package
- figf.lpg A PostScript prepend file needed by figf
- old_graph Old setup file for Graph package
- old_graphf Old version of Graph package
-
-Miscellaneous source files
---------------------------
-
- langdefs Standard language definitions file
- lengths Helper definitions: @PSLengths and @LoutLengths
- coltex Helper definitions: @ColourCommand and @TextureCommand
- mydefs Empty file for if the user doesn't have a mydefs
- ts The ToySetup package (an expert users' intro. example)
- init A Lout source file used during installation (lout -x)
-
-
-Jeffrey H. Kingston
-26 June 2013
diff --git a/include/include/blue b/include/include/blue
deleted file mode 100644
index 284e189..0000000
--- a/include/include/blue
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Blue program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { bluef }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BlueSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { varying @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/bluef b/include/include/bluef
deleted file mode 100644
index 31af593..0000000
--- a/include/include/bluef
+++ /dev/null
@@ -1,446 +0,0 @@
-
-###############################################################################
-# #
-# Lout @BlueSetup package for formatting Blue programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Blue
-def @BlueSetup
- named pipe { } # pipe through this
- named numbered { No } # numbered lines?
- named blanknumbered { Yes } # blanks numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { varying @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @Blue
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lBlue" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lBlue" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Blue
-
-@End @BlueSetup
diff --git a/include/include/book b/include/include/book
deleted file mode 100644
index 37f5cdb..0000000
--- a/include/include/book
+++ /dev/null
@@ -1,542 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for books #
-# #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude commands for standard packages. #
-# #
-###############################################################################
-
- @SysInclude { langdefs } # language definitions
- @SysInclude { bsf } # BasicSetup package
- @SysInclude { dsf } # DocumentSetup package
- @SysInclude { bookf } # BookSetup extension
-
-
-###############################################################################
-# #
-# @Include command for reading personal definitions from current directory. #
-# #
-###############################################################################
-
- @Include { mydefs }
-
-###############################################################################
-# #
-# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BasicSetup
- # @InitialFont { Times Base 12p } # initial font
- # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}}
- # @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- # @InitialSpace { lout } # initial space style
- # @InitialLanguage { English } # initial language
- # @InitialColour { black } # initial colour
- # @InitialBackgroundColour { white } # initial background colour
- # @OptimizePages { No } # optimize page breaks?
- # @HeadingFont { Bold } # font for @Heading
- # @FixedWidthFont { Courier Base -1p } # font for @F
- # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP
- # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays
- # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent
- # @DefaultIndent { 0.5rt } # @Display indent
- # @DisplayNumStyle { (num) } # style of display numbers
- # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent
- # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent
- # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists
- # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items
- # @ListIndent { 0s } # indent of list items
- # @ListRightIndent { 0s } # right indent of list items
- # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags
- # @ListLabelRight { No } # right-adjust list labels
- # @ListLabelRightGap { 2s } # gap when right-adjusting
- # @ListFont { } # font of list items
- # @ListBreak { } # break style of list items
- # @NumberSeparator { . } # separates nums like 2.3.7
- # @CrossLinkFormat { @Body } # format of cross links
- # @ExternalLinkFormat { @Body } # format of external links
-}
-
-
-###############################################################################
-# #
-# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DocumentSetup
- # @PageType { A4 @OrIfPlain Other} # page type (width, height)
- # @PageWidth { 80s } # page width if type Other
- # @PageHeight { 66f } # page height if type Other
- # @PageOrientation { Portrait } # Portrait, Landscape, etc.
- # @PageBackground { } # background of each page
- # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages
- # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages
- # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages
- # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages
- # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages
- # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages
- # @OddLeftBodyMargin { 0c } # extra margin for page body
- # @OddRightBodyMargin { 0c } # extra margin for page body
- # @EvenLeftBodyMargin { 0c } # extra margin for page body
- # @EvenRightBodyMargin{ 0c } # extra margin for page body
- # @PageBoxType { None } # None Box CurveBox ShadowBox
- # @PageBoxMargin { 1.00c } # page box margin
- # @PageBoxLineWidth { } # page box line thickness
- # @PageBoxPaint { none } # page box paint
- # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- # @PageEnclose { @Body } # enclose every page in this
- # @ColumnNumber { 1 } # number of columns (1 to 10)
- # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- # @FigureLocation { PageTop } # default figure location
- # @FigureFormat { @CC @Body } # default figure format
- # @FigureWord { figure } # "Figure" word else anything
- # @FigureNumbers { Arabic } # method of numbering figures
- # @FigureCaptionPos { Below } # Above or Below
- # @FigureCaptionFont { -2p } # figure caption font
- # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFigureContents { No } # list of figures at start
-
- # @TableLocation { PageTop } # default table location
- # @TableFormat { @CC @Body } # default table format
- # @TableWord { table } # "Table" word else anything
- # @TableNumbers { Arabic } # method of numbering tables
- # @TableCaptionPos { Below } # Above or Below
- # @TableCaptionFont { -2p } # table caption font
- # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break
- # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeTableContents { No } # list of tables at start
-
- # @FloaterLocation { PageTop } # default floater location
- # @FloaterFormat { @CC @Body } # default floater format
- # @FloaterWord { floater } # "Floater" word else anything
- # @FloaterNumbers { Arabic } # method of numbering floaters
- # @FloaterCaptionPos { Below } # Above or Below
- # @FloaterCaptionFont { -2p } # floater caption font
- # @FloaterCaptionBreak{ adjust hyphen 1.2fx } # floater caption break
- # @FloaterCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFloaterContents{ No } # list of floaters at start
-
- # @MakeContents { No } # make contents? Yes or No
- @MakeContents { Yes } # make contents? Yes or No
- # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- # @ContentsFont { Bold } # font for major entry
- # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry
- # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry
- # @ContentsFormat { number @DotSep title } # contents entry format
- # @ContentsLeader { .. } # leader symbol in contents
- # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- # @MakeReferences { Yes } # make references? Yes or No
- # @RefCiteStyle { [cite] } # citation style
- # @RefCiteLabels { @RefNum } # citation items
- # @RefNumbers { Arabic } # reference numbers
- # @RefListFormat { Labels } # NoLabels, Labels, etc.
- # @RefListLabels { [@RefNum] } # ref list label format
- # @RefListTitle { references } # title of reference list
- # @ChapRefListTitle { references } # title of chapter ref list
- # @RefListIndent { 0s } # indent to left of labels
- # @RefListRightIndent { 0s } # indent to right of items
- # @RefListGap { @ListGap } # gap between ref list items
- # @RefListFont { } # font used in reference list
- # @RefListBreak { } # break style of ref list
- # @RefListLabelWidth { @ListLabelWidth } # Labels column width
- # @RefListSortKey { @Tag } # sorting key
-
- # @MakeGlossary { No } # make glossary? Yes or No
- # @GlossaryText { @Null } # glossary initial text
- # @GlossaryFont { } # glossary entries font
- # @GlossaryBreak { } # glossary entries break
- # @GlossaryFormat { +3p @Font @S @Name # glossary entries format
- # @Right @I { @Word&&page @PageNum }
- # @DP @RawIndentedDisplay @Body }
- # @GlossaryGap { @DisplayGap } # gap between glossary entries
- # @GlossaryColumnNumber{ 2 } # glossary columns (1 to 10)
- # @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- # @InGlossaryFont { smallcaps } # font for @InGlossary
- # @InGlossaryFormat { @Body } # format for @InGlossary
-
- # @MakeIndex { No } # make index? Yes or No
- # @MakeIndex { No } # make index? Yes or No
- @MakeIndex { Yes } # make index? Yes or No
- # @IndexText { @Null } # index initial text
- # @IndexFont { } # index entries font
- # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexFormat { @Body } # @Index format
- # @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
- # @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
- # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexTypeMain { @B @PageNum } # Main pagenum format
- # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexRangeFormat { @From--@To } # index page range format
- # @IndexColumnNumber { 2 } # index columns (1 to 10)
- # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- # @IndexCtd { Yes } # include (ctd.) lines
- # @IndexCtdWord { continued } # "ctd." in current lang.
- # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexSpacerAbove { 2v } # space above index spacer
- # @IndexSpacerBelow { 1v } # space below index spacer
- # @IndexSpacerFont { +3p } # font of index spacer
- # @IndexSpacerFormat { @Body } # format of index spacer
-
- # @MakeIndexA { No } # make index A? Yes or No
- # @IndexAText { @Null } # index A initial text
- # @IndexAFont { } # index A entries font
- # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexAFormat { @Body } # @IndexA format
- # @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
- # @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
- # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexATypeMain { @B @PageNum } # Main pagenum format
- # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexARangeFormat { @From--@To } # index page range format
- # @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- # @IndexACtd { Yes } # include (ctd.) lines
- # @IndexACtdWord { continued } # "ctd." in current lang.
- # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexASpacerAbove { 2v } # space above index A spacer
- # @IndexASpacerBelow { 1v } # space below index A spacer
- # @IndexASpacerFont { +3p } # font of index A spacer
- # @IndexASpacerFormat { @Body } # format of index A spacer
-
- # @MakeIndexB { No } # make index B? Yes or No
- # @IndexBText { @Null } # index B initial text
- # @IndexBFont { } # index B entries font
- # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexBFormat { @Body } # @IndexB format
- # @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
- # @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
- # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexBTypeMain { @B @PageNum } # Main pagenum format
- # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexBRangeFormat { @From--@To } # index page range format
- # @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- # @IndexBCtd { Yes } # include (ctd.) lines
- # @IndexBCtdWord { continued } # "ctd." in current lang.
- # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexBSpacerAbove { 2v } # space above index B spacer
- # @IndexBSpacerBelow { 1v } # space below index B spacer
- # @IndexBSpacerFont { +3p } # font of index B spacer
- # @IndexBSpacerFormat { @Body } # format of index B spacer
-
- # @MakeColophon { No } # make colophon? Yes or No
- # @ColophonFont { } # font for colophon
- # @ColophonBreak { } # break style for colophon
- # @ColophonColumnNumber { 1 } # colophon columns (1 to 10)
- # @ColophonColumnGap { 1.00c @OrIfPlain 6s } # colophon column gap
-
- # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- # @FootNoteNumbers { Arabic } # footnote numbers
- # @FootNoteThrough { No } # numbered through chapter?
- # @FootNoteLocation { ColFoot } # where the footnote appears
- # @FootNoteFont { 0.80f } # font for footnotes
- # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format
- # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- # @FootAboveGap { @DisplayGap } # gap above footnote line
- # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
- # @MarginNoteFont { 0.80f } # font of margin notes
- # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- # @MarginNoteHGap { 0.5c } # horizontal gap to notes
- # @MarginNoteVGap { @DisplayGap } # min vertical gap between
- # @MarginNoteWidth { 1.50c } # width of margin notes
- # @EndNoteNumbers { Arabic } # endnote numbers
- # @EndNoteFont { 0.80f } # font of endnotes
- # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format
- # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- # @TheoremWord { theorem } # "Theorem" word, etc.
- # @TheoremTitleFormat { (title) } # only if title present
- # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @DefinitionWord { definition } # "Definition" word, etc.
- # @DefinitionTitleFormat { (title) } # only if title present
- # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ClaimWord { claim } # "Claim" word, etc.
- # @ClaimTitleFormat { (title) } # only if title present
- # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @PropositionWord { proposition } # "Proposition" word, etc.
- # @PropositionTitleFormat { (title) } # only if title present
- # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @LemmaWord { lemma } # "Lemma" word, etc.
- # @LemmaTitleFormat { (title) } # only if title present
- # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @CorollaryWord { corollary } # "Corollary" word, etc.
- # @CorollaryTitleFormat { (title) } # only if title present
- # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ExampleWord { example } # "Example" word, etc.
- # @ExampleTitleFormat { (title) } # only if title present
- # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ProofWord { proof } # "Proof" word, etc.
-
- # @PageHeaders { Simple } # None Simple Titles NoTitles
- @PageHeaders { Titles } # None Simple Titles NoTitles
- # @PageNumbers { Arabic } # page numbers
- # @FirstPageNumber { 1 } # number of first page
- # @IntroPageNumbers { Roman } # intro page numbers
- # @IntroFirstPageNumber{ 1 } # number of first intro page
- # @StructPageNums { No } # make structured page numbers
- # @PageNumberFormat { number } # format of all page numbers
-
- # @OddTop { @Centre{- @PageNum -} } # Simple page headers
- # @OddFoot { @Null }
- # @EvenTop { @Centre{- @PageNum -} }
- # @EvenFoot { @Null }
- # @StartOddTop { @Null }
- # @StartOddFoot { @Null }
- # @StartEvenTop { @Null }
- # @StartEvenFoot { @Null }
- # @IntroOddTop { @Null }
- # @IntroOddFoot { @Centre @PageNum }
- # @IntroEvenTop { @Null }
- # @IntroEvenFoot { @Centre @PageNum }
- # @IntroStartOddTop { @Null }
- # @IntroStartOddFoot { @Null }
- # @IntroStartEvenTop { @Null }
- # @IntroStartEvenFoot { @Null }
-
- # Titles, NoTitles headers
- # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum }
- # @RunningOddFoot { @Null }
- # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} }
- # @RunningEvenFoot { @Null }
- # @RunningStartOddTop { @Null }
- # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningStartEvenTop { @Null }
- # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningIntroOddTop { @Null }
- # @RunningIntroOddFoot { @Right @PageNum }
- # @RunningIntroEvenTop { @Null }
- # @RunningIntroEvenFoot { @PageNum }
- # @RunningIntroStartOddTop { @Null }
- # @RunningIntroStartOddFoot { @Null }
- # @RunningIntroStartEvenTop { @Null }
- # @RunningIntroStartEvenFoot { @Null }
-}
-
-
-###############################################################################
-# #
-# The @BookSetup @Use clause - options specific to books. #
-# #
-###############################################################################
-
-@Use { @BookSetup
- # @TitlePageFont { Helvetica Base} # title page font (not size)
- # @SeparateIntroNumbering { Yes } # separate intro page numbers
- # @PrefaceAfterContents { No } # Yes or No
- # @ChapterStartPages { Any } # Any, Odd, Even, SamePage
- # @ReferencesBeforeAppendices { No } # references before appendices
- # @PrefaceWord { preface } # word for "Preface"
- # @ContentsWord { contents } # word for "Contents"
- # @FigureListWord { figurelist } # word for "List of Figures"
- # @TableListWord { tablelist } # word for "List of Tables"
- # @FloaterListWord { floaterlist } # word for "List of Floaters"
- # @IntroductionWord { introduction } # word for "Introduction"
- # @AbbreviationsWord { abbreviations } # word for "Abbreviations"
- # @ChapterWord { chapter } # word for "Chapter"
- # @AppendixWord { appendix } # word for "Appendix"
- # @GlossaryWord { glossary } # word for "Glossary"
- # @IndexWord { index } # word for "Index"
- # @IndexAWord { index } # word for "Index" (A)
- # @IndexBWord { index } # word for "Index" (B)
- # @ColophonWord { colophon } # word for "Colophon"
- # @SubPrefaceNumbers { None } # kind of sub-preface numbers
- # @FirstSubPrefaceNumber { 1 } # first sub-preface number (Arabic)
- # @SubIntroductionNumbers { None } # kind of sub-introduction numbers
- # @FirstSubIntroductionNumber { 1 } # first sub-introduction number
- # @ChapterNumbers { Arabic } # kind of chapter numbers
- # @FirstChapterNumber { 1 } # first chapter number (Arabic)
- # @SectionNumbers { Arabic } # kind of section numbers
- # @FirstSectionNumber { 1 } # first section number (Arabic)
- # @SubSectionNumbers { Arabic } # kind of subsection numbers
- # @FirstSubSectionNumber { 1 } # first subsect number (Arabic)
- # @SubSubSectionNumbers { Arabic } # kind of sub-subs. numbers
- # @FirstSubSubSectionNumber { 1 } # first sub-sub number (Arabic)
- # @AppendixNumbers { UCAlpha } # kind of appendix numbers
- # @FirstAppendixNumber { 1 } # first appendix num (Arabic)
- # @SubAppendixNumbers { Arabic } # kind of subappendix numbers
- # @FirstSubAppendixNumber { 1 } # first sub-app num (Arabic)
- # @SubSubAppendixNumbers { Arabic } # kind of sub-subapp. numbers
- # @FirstSubSubAppendixNumber { 1 } # first sub-sub num (Arabic)
- # @PartHeadingFont { Helvetica Base 2.50f } # part head font
- # @PartHeadingBreak { clines 1.2fx nohyphen } # part head break
- # @PartHeadingFormat { @CD number @DP @CD title } # part head format
- # @ChapterHeadingFont { Bold 2.00f } # chapter head font
- # @ChapterHeadingBreak { ragged 1.2fx nohyphen } # chapter head break
- # @ChapterHeadingFormat { number @DotSep title } # format of chap. head
- # @SubPrefaceHeadingFont { Bold } # sub-preface head font
- # @SubPrefaceHeadingBreak { ragged 1.2fx nohyphen } # sub-preface head break
- # @SubPrefaceHeadingFormat { number @DotSep title } # format of s.-p. head
- # @SubIntroductionHeadingFont { Bold } # sub-intro head font
- # @SubIntroductionHeadingBreak { ragged 1.2fx nohyphen} # sub-intro head break
- # @SubIntroductionHeadingFormat { number @DotSep title} # format of sub-intro. hd
- # @SectionHeadingFont { Bold } # section head font
- # @SectionHeadingBreak { ragged 1.2fx nohyphen } # section head break
- # @SectionHeadingFormat { number @DotSep title } # section head fmt
- # @SubSectionHeadingFont { Bold } # subs. head font
- # @SubSectionHeadingBreak { ragged 1.2fx nohyphen } # subs. head break
- # @SubSectionHeadingFormat { number @DotSep title } # subs. head fmt
- # @SubSubSectionHeadingFont { Slope } # sub-subs. head font
- # @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } # sub-subs. head break
- # @SubSubSectionHeadingFormat { number @DotSep title } # sub-subs. head fmt
- # @AppendixHeadingFont { Bold 2.00f } # appendix head font
- # @AppendixHeadingBreak { ragged 1.2fx nohyphen } # appendix head break
- # @AppendixHeadingFormat { number @DotSep title } # appendix head fmt
- # @SubAppendixHeadingFont { Bold } # subapp. head font
- # @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } # subapp. head break
- # @SubAppendixHeadingFormat { number @DotSep title } # subapp. head fmt
- # @SubSubAppendixHeadingFont { Slope } # sub-suba. head font
- # @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } # sub-suba. head break
- # @SubSubAppendixHeadingFormat{ number @DotSep title } # sub-suba. head fmt
- # @AbovePartGap { 4.00f } # gap above part title
- # @AboveChapterGap { 3.00f } # above major titles
- # @SubPrefaceGap { 2.0v @OrIfPlain 3f } # between sub-prefaces
- # @SubIntroductionGap { 2.0v @OrIfPlain 3f } # between sub-intros
- # @SectionGap { 2.0v @OrIfPlain 3f } # between sections
- # @SubSectionGap { 1.5v @OrIfPlain 2f } # between subsects
- # @SubSubSectionGap { 1.5v @OrIfPlain 2f } # between sub-subs.
- # @SubAppendixGap { 2.0v @OrIfPlain 3f } # between subappendices
- # @SubSubAppendixGap { 1.5v @OrIfPlain 2f } # between sub-subapps
- # @PrefaceInContents { Yes } # add preface to contents
- # @SubPrefaceInContents { No } # add sub-preface to contents
- # @AbbreviationsInContents { Yes } # add abbreviations to contents
- # @IntroductionInContents { Yes } # add introduction to contents
- # @SubIntroductionInContents { No } # add sub-intro to contents
- # @PartInContents { Yes } # add parts to contents
- # @ChapterInContents { Yes } # add chapters to contents
- # @SectionInContents { Yes } # add sections to contents
- # @SubSectionInContents { Yes } # add subsections to contents
- # @SubSubSectionInContents { No } # add sub-subsects to contents
- # @AppendixInContents { Yes } # add appendices to contents
- # @SubAppendixInContents { Yes } # add subappendices to contents
- # @SubSubAppendixInContents { No } # add sub-subapps to contents
- # @ReferencesInContents { Yes } # add ref. section to contents
- # @GlossaryInContents { Yes } # add glossary to contents
- # @IndexInContents { Yes } # add index to contents
- # @IndexAInContents { Yes } # add index A to contents
- # @IndexBInContents { Yes } # add index B to contents
- # @ColophonInContents { Yes } # add colophon to contents
- # @PrefaceContentsIndent { 0f } # indent in contents of preface
- # @SubPrefaceContentsIndent { 3f } # indent in contents of sub-preface
- # @AbbreviationsContentsIndent{ 0f } # indent in contents of abbreviations
- # @IntroductionContentsIndent { 0f } # indent in contents of introduction
- # @SubIntroductionContentsIndent { 3f } # indent in contents of sub-intro
- # @PartContentsIndent { 0.5rt } # indent in contents of part (dft is ctr)
- # @ChapterContentsIndent { 0f } # indent in contents of chapter
- # @SectionContentsIndent { 3f } # indent in contents of section
- # @SubSectionContentsIndent { 6f } # indent in contents of subsection
- # @SubSubSectionContentsIndent{ 9f } # indent in contents of sub-subsection
- # @AppendixContentsIndent { 0f } # indent in contents of appendix
- # @SubAppendixContentsIndent { 3f } # indent in contents of sub-appendix
- # @SubSubAppendixContentsIndent { 6f } # indent in contents of sub-subappendix
- # @ReferencesContentsIndent { 0f } # indent in contents of references
- # @GlossaryContentsIndent { 0f } # indent in contents of gloassary
- # @IndexContentsIndent { 0f } # indent in contents of index
- # @IndexAContentsIndent { 0f } # indent in contents of index A
- # @IndexBContentsIndent { 0f } # indent in contents of index B
- # @ColophonContentsIndent { 0f } # indent in contents of colophon
- # @SubPrefaceNumInTheorems { No } # theorem num has sub-preface num
- # @SubIntroductionNumInTheorems { No } # theorem num has sub-intro num
- # @ChapterNumInTheorems { Yes } # theorem num has chapter num
- # @SectionNumInTheorems { No } # theorem num has section num
- # @SubSectionNumInTheorems { No } # theorem num has subsect num
- # @SubSubSectionNumInTheorems { No } # theorem num has sub-ss. num
- # @AppendixNumInTheorems { Yes } # theorem num has appendix num
- # @SubAppendixNumInTheorems { No } # theorem num has sub-app num
- # @SubSubAppendixNumInTheorems{ No } # theorem num has sub-sa. num
- # @SubPrefaceNumInDisplays { No } # display num has sub-preface num
- # @SubIntroductionNumInDisplays { No } # display num has sub-intro num
- # @ChapterNumInDisplays { Yes } # display num has chapter num
- # @SectionNumInDisplays { Yes } # display num has section num
- # @SubSectionNumInDisplays { No } # display num has subsect num
- # @SubSubSectionNumInDisplays { No } # display num has sub-ss. num
- # @AppendixNumInDisplays { Yes } # display num has appendix num
- # @SubAppendixNumInDisplays { Yes } # display num has sub-app num
- # @SubSubAppendixNumInDisplays{ No } # display num has sub-sa. num
- # @SubPrefaceNumInFigures { No } # figure num has sub-preface num
- # @SubIntroductionumInFigures { No } # figure num has sub-intro num
- # @ChapterNumInFigures { Yes } # figure num has chapter num
- # @SectionNumInFigures { No } # figure num has section num
- # @SubSectionNumInFigures { No } # figure num has subsect num
- # @SubSubSectionNumInFigures { No } # figure num has sub-ss. num
- # @AppendixNumInFigures { Yes } # figure num has appendix num
- # @SubAppendixNumInFigures { No } # figure num has sub-app num
- # @SubSubAppendixNumInFigures { No } # figure num has sub-sa. num
- # @SubPrefaceNumInTables { No } # table num has sub-preface num
- # @SubIntroductionumInTables { No } # table num has sub-intro num
- # @ChapterNumInTables { Yes } # table num has chapter num
- # @SectionNumInTables { No } # table num has section num
- # @SubSectionNumInTables { No } # table num has subsect num
- # @SubSubSectionNumInTables { No } # table num has sub-ss. num
- # @AppendixNumInTables { Yes } # table num has appendix num
- # @SubAppendixNumInTables { No } # table num has sub-app num
- # @SubSubAppendixNumInTables { No } # table num has sub-sa. num
- # @SubPrefaceNumInFloaters { No } # floater num has sub-preface num
- # @SubIntroductionumInFloaters{ No } # floater num has sub-intro num
- # @ChapterNumInFloaters { Yes } # floater num has chapter num
- # @SectionNumInFloaters { No } # floater num has section num
- # @SubSectionNumInFloaters { No } # floater num has subsect num
- # @SubSubSectionNumInFloaters { No } # floater num has sub-ss. num
- # @AppendixNumInFloaters { Yes } # floater num has appendix num
- # @SubAppendixNumInFloaters { No } # floater num has sub-app num
- # @SubSubAppendixNumInFloaters{ No } # floater num has sub-sa. num
- # @SubPrefaceNumInRunners { No } # runners have sub-preface num
- # @SubIntroductionNumInRunners { No } # runners have sub-intro num
- # @SectionNumInRunners { Yes } # runners have section num
- # @SubSectionNumInRunners { No } # runners have subsect num
- # @SubSubSectionNumInRunners { No } # runners have sub-ss. num
- # @SubAppendixNumInRunners { Yes } # runners have sub-app num
- # @SubSubAppendixNumInRunners { No } # runners have sub-sa. num
- # @PrefacePrefix { } # for structured page nums
- # @ContentsPrefix { } # for structured page nums
- # @FigureContentsPrefix { } # for structured page nums
- # @TableContentsPrefix { } # for structured page nums
- # @FloaterContentsPrefix { } # for structured page nums
- # @AbbreviationsPrefix { } # for structured page nums
- # @IntroductionPrefix { } # for structured page nums
- # @ChapterPrefix { } # for structured page nums
- # @AppendixPrefix { } # for structured page nums
- # @ReferencesPrefix { } # for structured page nums
- # @GlossaryPrefix { } # for structured page nums
- # @IndexPrefix { } # for structured page nums
- # @IndexAPrefix { } # for structured page nums
- # @IndexBPrefix { } # for structured page nums
- # @ColophonPrefix { } # for structured page nums
-}
-
-
-###############################################################################
-# #
-# @Database (and @SysDatabase) clauses go here. #
-# #
-###############################################################################
-
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/include/include/bookf b/include/include/bookf
deleted file mode 100644
index 3c2b21f..0000000
--- a/include/include/bookf
+++ /dev/null
@@ -1,1645 +0,0 @@
-
-###########################################################################
-# #
-# @BookSetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package extends DocumentSetup with definitions for books. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix @Colophon
-def @BookSetup
- named @TitlePageFont { Helvetica Base }
- named @SeparateIntroNumbering { Yes }
- named @PrefaceAfterContents { No }
- named @ChapterStartPages { Any }
- named @ReferencesBeforeAppendices { No }
-
- named @PrefaceWord { preface }
- named @ContentsWord { contents }
- named @FigureListWord { figurelist }
- named @TableListWord { tablelist }
- named @FloaterListWord { floaterlist }
- named @IntroductionWord { introduction }
- named @AbbreviationsWord { abbreviations }
- named @ChapterWord { chapter }
- named @AppendixWord { appendix }
- named @GlossaryWord { glossary }
- named @IndexWord { index }
- named @IndexAWord { index }
- named @IndexBWord { index }
- named @ColophonWord { colophon }
-
- named @SubPrefaceNumbers { None }
- named @FirstSubPrefaceNumber { 1 }
- named @SubIntroductionNumbers { None }
- named @FirstSubIntroductionNumber { 1 }
- named @ChapterNumbers { Arabic }
- named @FirstChapterNumber { 1 }
- named @SectionNumbers { Arabic }
- named @FirstSectionNumber { 1 }
- named @SubSectionNumbers { Arabic }
- named @FirstSubSectionNumber { 1 }
- named @SubSubSectionNumbers { Arabic }
- named @FirstSubSubSectionNumber { 1 }
- named @AppendixNumbers { UCAlpha }
- named @FirstAppendixNumber { 1 }
- named @SubAppendixNumbers { Arabic }
- named @FirstSubAppendixNumber { 1 }
- named @SubSubAppendixNumbers { Arabic }
- named @FirstSubSubAppendixNumber { 1 }
-
- named @PartHeadingFont { Helvetica Base 2.50f }
- named @PartHeadingBreak { clines 1.2fx nohyphen }
- named @PartHeadingFormat
- left number right title { @CD number @DP @CD title }
-
- named @ChapterHeadingFont { Bold 2.00f }
- named @ChapterHeadingBreak { ragged 1.2fx nohyphen }
- named @ChapterHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubPrefaceHeadingFont { Bold }
- named @SubPrefaceHeadingBreak { ragged 1.2fx nohyphen }
- named @SubPrefaceHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubIntroductionHeadingFont { Bold }
- named @SubIntroductionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubIntroductionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SectionHeadingFont { Bold }
- named @SectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSectionHeadingFont { Bold }
- named @SubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubSectionHeadingFont { Slope }
- named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @AppendixHeadingFont { Bold 2.00f }
- named @AppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @AppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubAppendixHeadingFont { Bold }
- named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubAppendixHeadingFont { Slope }
- named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @AbovePartGap { 4.00f }
- named @AboveChapterGap { 3.00f }
- named @SubPrefaceGap { 2.0v @OrIfPlain 3f }
- named @SubIntroductionGap { 2.0v @OrIfPlain 3f }
- named @SectionGap { 2.0v @OrIfPlain 3f }
- named @SubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubSubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubAppendixGap { 2.0v @OrIfPlain 3f }
- named @SubSubAppendixGap { 1.5v @OrIfPlain 2f }
-
- named @PrefaceInContents { Yes }
- named @SubPrefaceInContents { No }
- named @AbbreviationsInContents { Yes }
- named @IntroductionInContents { Yes }
- named @SubIntroductionInContents { No }
- named @PartInContents { Yes }
- named @ChapterInContents { Yes }
- named @SectionInContents { Yes }
- named @SubSectionInContents { Yes }
- named @SubSubSectionInContents { No }
- named @AppendixInContents { Yes }
- named @SubAppendixInContents { Yes }
- named @SubSubAppendixInContents { No }
- named @ReferencesInContents { Yes }
- named @GlossaryInContents { Yes }
- named @IndexInContents { Yes }
- named @IndexAInContents { Yes }
- named @IndexBInContents { Yes }
- named @ColophonInContents { Yes }
-
- named @PrefaceContentsIndent { 0f }
- named @SubPrefaceContentsIndent { 3f }
- named @AbbreviationsContentsIndent { 0f }
- named @IntroductionContentsIndent { 0f }
- named @SubIntroductionContentsIndent{ 3f }
- named @PartContentsIndent { 0.5rt }
- named @ChapterContentsIndent { 0f }
- named @SectionContentsIndent { 3f }
- named @SubSectionContentsIndent { 6f }
- named @SubSubSectionContentsIndent { 9f }
- named @AppendixContentsIndent { 0f }
- named @SubAppendixContentsIndent { 3f }
- named @SubSubAppendixContentsIndent { 6f }
- named @ReferencesContentsIndent { 0f }
- named @GlossaryContentsIndent { 0f }
- named @IndexContentsIndent { 0f }
- named @IndexAContentsIndent { 0f }
- named @IndexBContentsIndent { 0f }
- named @ColophonContentsIndent { 0f }
-
- named @SubPrefaceNumInTheorems { No }
- named @SubIntroductionNumInTheorems { No }
- named @ChapterNumInTheorems { Yes }
- named @SectionNumInTheorems { No }
- named @SubSectionNumInTheorems { No }
- named @SubSubSectionNumInTheorems { No }
- named @AppendixNumInTheorems { Yes }
- named @SubAppendixNumInTheorems { No }
- named @SubSubAppendixNumInTheorems { No }
-
- named @SubPrefaceNumInDisplays { No }
- named @SubIntroductionNumInDisplays { No }
- named @ChapterNumInDisplays { Yes }
- named @SectionNumInDisplays { Yes }
- named @SubSectionNumInDisplays { No }
- named @SubSubSectionNumInDisplays { No }
- named @AppendixNumInDisplays { Yes }
- named @SubAppendixNumInDisplays { Yes }
- named @SubSubAppendixNumInDisplays { No }
-
- named @SubPrefaceNumInFigures { No }
- named @SubIntroductionNumInFigures { No }
- named @ChapterNumInFigures { Yes }
- named @SectionNumInFigures { No }
- named @SubSectionNumInFigures { No }
- named @SubSubSectionNumInFigures { No }
- named @AppendixNumInFigures { Yes }
- named @SubAppendixNumInFigures { No }
- named @SubSubAppendixNumInFigures { No }
-
- named @SubPrefaceNumInTables { No }
- named @SubIntroductionNumInTables { No }
- named @ChapterNumInTables { Yes }
- named @SectionNumInTables { No }
- named @SubSectionNumInTables { No }
- named @SubSubSectionNumInTables { No }
- named @AppendixNumInTables { Yes }
- named @SubAppendixNumInTables { No }
- named @SubSubAppendixNumInTables { No }
-
- named @SubPrefaceNumInFloaters { No }
- named @SubIntroductionNumInFloaters { No }
- named @ChapterNumInFloaters { Yes }
- named @SectionNumInFloaters { No }
- named @SubSectionNumInFloaters { No }
- named @SubSubSectionNumInFloaters { No }
- named @AppendixNumInFloaters { Yes }
- named @SubAppendixNumInFloaters { No }
- named @SubSubAppendixNumInFloaters { No }
-
- named @SubPrefaceNumInRunners { No }
- named @SubIntroductionNumInRunners { No }
- named @SectionNumInRunners { Yes }
- named @SubSectionNumInRunners { No }
- named @SubSubSectionNumInRunners { No }
- named @SubAppendixNumInRunners { Yes }
- named @SubSubAppendixNumInRunners { No }
-
- named @PrefacePrefix { }
- named @ContentsPrefix { }
- named @FigureContentsPrefix { }
- named @TableContentsPrefix { }
- named @FloaterContentsPrefix { }
- named @AbbreviationsPrefix { }
- named @IntroductionPrefix { }
- named @ChapterPrefix { }
- named @AppendixPrefix { }
- named @ReferencesPrefix { }
- named @GlossaryPrefix { }
- named @IndexPrefix { }
- named @IndexAPrefix { }
- named @IndexBPrefix { }
- named @ColophonPrefix { }
-
-@Begin
-
- #######################################################################
- # #
- # Lists of chapters, sections, sub(-sub)sections, and appendices. #
- # #
- #######################################################################
-
- export num
- def @ChapterList named @Tag {} right num
- {
- @Galley
- // @ChapterList @Next num
- }
-
- export num
- def @SubPrefaceList named @Tag {} right num
- {
- @Galley
- //@SubPrefaceGap @SubPrefaceList @Next num
- }
-
- export num
- def @SubIntroductionList named @Tag {} right num
- {
- @Galley
- //@SubIntroductionGap @SubIntroductionList @Next num
- }
-
- export num
- def @SectionList named @Tag {} right num
- {
- @Galley
- //@SectionGap @SectionList @Next num
- }
-
- export num
- def @SubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSectionGap @SubSectionList @Next num
- }
-
- export num
- def @SubSubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSubSectionGap @SubSubSectionList @Next num
- }
-
- export num
- def @AppendixList named @Tag {} right num
- {
- @Galley
- // @AppendixList @Next num
- }
-
- export num
- def @SubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubAppendixGap @SubAppendixList @Next num
- }
-
- export num
- def @SubSubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubSubAppendixGap @SubSubAppendixList @Next num
- }
-
- def @PrefacePlace { @Galley }
- def @AbbreviationsPlace { @Galley }
- def @IntroductionPlace { @Galley }
-
-
- #######################################################################
- # #
- # @Full - this sends text to a full-width place on a new page, even #
- # if @ChapterStartPages is SamePage. #
- # #
- #######################################################################
-
- def @Full right x
- {
- def @Any force into { @FullPlace&&following } right x { x }
- def @Odd force into { @OddFullPlace&&following } right x { x }
- def @Even force into { @EvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- { Any SamePage } @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- }
- }
-
-
- #######################################################################
- # #
- # @ChapterFull - this sends text to a full-width place on a new #
- # page, unless @ChapterStartPages is SamePage, in which case it #
- # doesn't send the text anywhere. #
- # #
- #######################################################################
-
- def @ChapterFull right x
- {
- def @Any force into { @FullPlace&&following } right x { x }
- def @Odd force into { @OddFullPlace&&following } right x { x }
- def @Even force into { @EvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- Any @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- SamePage @Yield x
- }
- }
-
-
- #######################################################################
- # #
- # @IntroFull - this sends text to a full-width intro place. #
- # #
- #######################################################################
-
- def @IntroFull right x
- {
- def @Any force into { @IntroFullPlace&&following } right x { x }
- def @Odd force into { @IntroOddFullPlace&&following } right x { x }
- def @Even force into { @IntroEvenFullPlace&&following } right x { x }
-
- @ChapterStartPages @Case {
- { Any SamePage } @Yield @Any x
- Odd @Yield @Odd x
- Even @Yield @Even x
- }
- }
-
-
- #######################################################################
- # #
- # @ChooseFull - this sends either to introfull or ordinary full #
- # #
- #######################################################################
-
- def @ChooseFull right x
- {
- @SeparateIntroNumbering @Case {
- No @Yield @Full x
- Yes @Yield @IntroFull x
- }
- }
-
-
- #######################################################################
- # #
- # Book. #
- # #
- #######################################################################
-
- def @Book
- named @Tag {}
- named @Title {}
- named @Author {}
- named @Edition {}
- named @Publisher {}
- named @BeforeTitlePage {}
- named @OnTitlePage {}
- named @AfterTitlePage {}
- named @AtEnd { dft }
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @PageOrientation { @PageOrientation }
- named @PageHeaders { @PageHeaders }
- named @ColumnNumber { @ColumnNumber }
- named @FirstPageNumber { @FirstPageNumber }
- named @IntroFirstPageNumber { @IntroFirstPageNumber }
- named @OptimizePages { @OptimizePages }
- named @GlossaryText { @GlossaryText }
- named @IndexText { @IndexText }
- named @IndexAText { @IndexAText }
- named @IndexBText { @IndexBText }
- {
- def @Before
- {
- @BeforeTitlePage @Case {
- "" @Yield @Null
- else @Yield @BeforeTitlePage
- }
- }
-
- def @On
- {
- @OnTitlePage @Case {
- "" @Yield {
- //1i |0.5rt 2.5f @Font {1.2fx clines} @Break @Title |
- //2i |0.5rt clines @Break @Author |
- //1i |0.5rt clines @Break @Edition |
- //1rt @OneRow @Publisher
- }
- else @Yield @OnTitlePage
- }
- }
-
- def @After
- {
- @AfterTitlePage @Case {
- "" @Yield @Null
- else @Yield { @AfterTitlePage // None @Runner }
- }
- }
-
- def @ContentsPart
- named @Tag {}
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { contents @WordVal @ContentsWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @ContentsPrefix }
- inrunners { Yes }
- majortitle { contents @WordVal @ContentsWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @ContentsSection
- }
-
- def @FigureContentsPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { figurelist @WordVal @FigureListWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @FigureContentsPrefix }
- inrunners { Yes }
- majortitle { figurelist @WordVal @FigureListWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @FigureContentsSection
- }
-
- def @TableContentsPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { tablelist @WordVal @TableListWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @TableContentsPrefix }
- inrunners { Yes }
- majortitle { tablelist @WordVal @TableListWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @TableContentsSection
- }
-
- def @FloaterContentsPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { floaterlist @WordVal @FloaterListWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { No }
- pnprefix { @FloaterContentsPrefix }
- inrunners { Yes }
- majortitle { floaterlist @WordVal @FloaterListWord }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- @FloaterContentsSection
- }
-
- def @ReferencesPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajor }
- initiallanguage { @InitialLanguage }
- title { @RefHeading @RefListTitle }
- majortitle { @RefHeading @RefListTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @ReferencesInContents }
- contentsindent { @ReferencesContentsIndent }
- pnprefix { @ReferencesPrefix }
- inrunners { Yes }
- sendheader { @ChapterFull @Body }
- innergap { @SectionGap }
- @ReferencesSection
-
- }
-
- def @GlossaryPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { glossary @WordVal @GlossaryWord }
- @MinorNum {}
- @MinorTitle { glossary @WordVal @GlossaryWord }
- @Owner { @Tag }
- @Prefix { @GlossaryPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { glossary @WordVal @GlossaryWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @GlossaryText }
- incontents { @GlossaryInContents }
- contentsindent { @GlossaryContentsIndent }
- pnprefix { @GlossaryPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @GlossarySection @Run
- }
-
- def @IndexPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexWord }
- @Owner { @Tag }
- @Prefix { @IndexPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexText }
- incontents { @IndexInContents }
- contentsindent { @IndexContentsIndent }
- pnprefix { @IndexPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexSection @Run
- }
-
- def @IndexAPart
- named @Tag {}
- {
- def @RunA
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexAWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexAWord }
- @Owner { @Tag }
- @Prefix { @IndexAPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexAWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexAText }
- incontents { @IndexAInContents }
- contentsindent { @IndexAContentsIndent }
- pnprefix { @IndexAPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexASection @RunA
- }
-
- def @IndexBPart
- named @Tag {}
- {
- def @RunB
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexBWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @IndexBWord }
- @Owner { @Tag }
- @Prefix { @IndexBPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexBWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- headingtext { @IndexBText }
- incontents { @IndexBInContents }
- contentsindent { @IndexBContentsIndent }
- pnprefix { @IndexBPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexBSection @RunB
- }
-
- def @ColophonPart
- named @Tag {}
- {
- def @RunC
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @ColophonWord }
- @MinorNum {}
- @MinorTitle { index @WordVal @ColophonWord }
- @Owner { @Tag }
- @Prefix { @ColophonPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { colophon @WordVal @ColophonWord }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @ColophonInContents }
- contentsindent { @ColophonContentsIndent }
- pnprefix { @ColophonPrefix }
- inrunners { Yes }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @ColophonSection @RunC
- }
-
- def @BookIntro force into { @IntroColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- @NoLinkPageMark @Tag
- // @Before
- //1.1b @TitlePageFont @Font @On
- //1.1b @After
- // Start @Runner @Owner { @Tag }
- //1.1b @PrefaceAfterContents @NoDo @PrefacePlace
- // @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsPart
- else @Yield @Null
- }
- // @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsPart
- else @Yield @Null
- }
- // @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsPart
- else @Yield @Null
- }
- // @MakeFloaterContents @Case {
- { Yes Bypass } @Yield @FloaterContentsPart
- else @Yield @Null
- }
- //1.1b @PrefaceAfterContents @Do @PrefacePlace
- }
-
- def @BookBody force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- # The first component of @BookBody must be indefinite, so that
- # its flushing is delayed until we reach the body galleys, either
- # @Introduction or @Chapter. If not, @BookBody will free up
- # @PrefacePlace etc. too soon, producing a "no @PrefacePlace
- # precedes this @PrefacePlace&&preceding" error message.
-
- @AbbreviationsPlace
- // @IntroductionPlace
- // @ChapterList @FirstChapterNumber
- // @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- // @AppendixList @FirstAppendixNumber
- // @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeGlossary @Do @GlossaryPart
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexA @Case {
- Bypass @Yield @BypassBeginIndexAPlace
- else @Yield @Null
- }
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndexB @Case {
- Bypass @Yield @BypassBeginIndexBPlace
- else @Yield @Null
- }
- // @MakeIndex @Do @IndexPart
- // @MakeIndex @Case {
- Bypass @Yield @BypassBeginIndexPlace
- else @Yield @Null
- }
- // @MakeColophon @Do @ColophonPart
- }
-
- def @BookCombined force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- @NoLinkPageMark @Tag
- // @Before
- //1.1b @TitlePageFont @Font @On
- //1.1b @After
- // Start @Runner @Owner { @Tag }
- //1.1b @PrefaceAfterContents @NoDo @PrefacePlace
- // @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsPart
- else @Yield @Null
- }
- // @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsPart
- else @Yield @Null
- }
- // @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsPart
- else @Yield @Null
- }
- // @MakeFloaterContents @Case {
- { Yes Bypass } @Yield @FloaterContentsPart
- else @Yield @Null
- }
- //1.1b @PrefaceAfterContents @Do @PrefacePlace
- // @AbbreviationsPlace
- // @IntroductionPlace
- // @ChapterList @FirstChapterNumber
- // @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- // @AppendixList @FirstAppendixNumber
- // @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeGlossary @Do @GlossaryPart
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexA @Case {
- Bypass @Yield @BypassBeginIndexAPlace
- else @Yield @Null
- }
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndexB @Case {
- Bypass @Yield @BypassBeginIndexBPlace
- else @Yield @Null
- }
- // @MakeIndex @Do @IndexPart
- // @MakeIndex @Case {
- Bypass @Yield @BypassBeginIndexPlace
- else @Yield @Null
- }
- // @MakeColophon @Do @ColophonPart
- }
-
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- {
-
- @SeparateIntroNumbering @Case {
-
- No @Yield {
- Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginTableCounter {}
- // Yes @BeginFloaterCounter {}
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- @FirstPageNumber
- // @BookCombined
- // NonStart @Runner @Owner { @Tag }
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
-
- Yes @Yield {
- Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginTableCounter {}
- // Yes @BeginFloaterCounter {}
- // @IntroPageList
- @ColumnNumber { 1 }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- @IntroFirstPageNumber
- # // NonStart @Runner @Owner { @Tag }
- // None @Runner @Owner { @Tag }
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- extra { Yes }
- @FirstPageNumber
- // @BookIntro
- // @BookBody
- // NonStart @Runner @Owner { @Tag }
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
- }
- }
- }
-
-
- #######################################################################
- # #
- # Preface. #
- # #
- #######################################################################
-
- export @BeginSubPrefaces @EndSubPrefaces @SubPreface
- def @Preface force into { @PrefacePlace&&preceding }
- named @Tag {}
- named @Title { preface @WordVal @PrefaceWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
- def @EndSubPrefacesPlace { @Galley }
-
- def @EndSubPrefaces force into { @EndSubPrefacesPlace&&preceding }
- {}
-
- macro @BeginSubPrefaces
- { //@SubPrefaceGap @SubPrefaceList @FirstSubPrefaceNumber
- // @EndSubPrefacesPlace //
- }
-
- def @SubPreface force into { @SubPrefaceList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @SubPrefaceShortNum
- {
- @SubPrefaceNumbers @Then {
- @BypassNumber @Dft {
- @SubPrefaceNumbers @Num
- { @SectionList&&@Tag @Open { num } }
- }
- }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubPrefaceHeadingFont }
- headingbreak { @SubPrefaceHeadingBreak }
- headingformat { @Num @SubPrefaceHeadingFormat @Body }
- incontents { @SubPrefaceInContents }
- contentsindent { @SubPrefaceContentsIndent }
- numbers { @SubPrefaceNumbers }
- attachnum { @SubPrefaceList&&preceding @Tagged @Tag }
- retrievenum { @SubPrefaceList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @Null }
- majornum { @Null }
- majortitle { @Null }
- intheorems { @SubPrefaceNumInTheorems }
- indisplays { @SubPrefaceNumInDisplays }
- infigures { @SubPrefaceNumInFigures }
- intables { @SubPrefaceNumInTables }
- infloaters { @SubPrefaceNumInFloaters }
- inrunners { @SubPrefaceNumInRunners }
- newpage { @NewPage }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { ExtraMajorIntro }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @PrefaceInContents }
- contentsindent { @PrefaceContentsIndent }
- pnprefix { @PrefacePrefix }
- sendheader { @ChooseFull @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Abbreviations. #
- # #
- #######################################################################
-
- def @Abbreviations force into { @AbbreviationsPlace&&preceding }
- named @Tag {}
- named @Title { abbreviations @WordVal @AbbreviationsWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @AbbreviationsInContents }
- contentsindent { @AbbreviationsContentsIndent }
- pnprefix { @AbbreviationsPrefix }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Introduction. #
- # #
- #######################################################################
-
- export @BeginSubIntroductions @EndSubIntroductions @SubIntroduction
- def @Introduction force into { @IntroductionPlace&&preceding }
- named @Tag {}
- named @Title { introduction @WordVal @IntroductionWord }
- named @RunningTitle { dft }
- named @InitialLanguage {}
- body @Body
- {
-
- def @EndSubIntroductionsPlace { @Galley }
-
- def @EndSubIntroductions force into { @EndSubIntroductionsPlace&&preceding }
- {}
-
- macro @BeginSubIntroductions
- { //@SubIntroductionGap @SubIntroductionList @FirstSubIntroductionNumber
- // @EndSubIntroductionsPlace //
- }
-
- def @SubIntroduction force into { @SubIntroductionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @SubIntroductionShortNum
- {
- @SubIntroductionNumbers @Then {
- @BypassNumber @Dft {
- @SubIntroductionNumbers @Num
- { @SectionList&&@Tag @Open { num } }
- }
- }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubIntroductionHeadingFont }
- headingbreak { @SubIntroductionHeadingBreak }
- headingformat { @Num @SubIntroductionHeadingFormat @Body }
- incontents { @SubIntroductionInContents }
- contentsindent { @SubIntroductionContentsIndent }
- numbers { @SubIntroductionNumbers }
- attachnum { @SubIntroductionList&&preceding @Tagged @Tag }
- retrievenum { @SubIntroductionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @Null }
- majornum { @Null }
- majortitle { @Null }
- intheorems { @SubIntroductionNumInTheorems }
- indisplays { @SubIntroductionNumInDisplays }
- infigures { @SubIntroductionNumInFigures }
- intables { @SubIntroductionNumInTables }
- infloaters { @SubIntroductionNumInFloaters }
- inrunners { @SubIntroductionNumInRunners }
- newpage { @NewPage }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @IntroductionInContents }
- contentsindent { @IntroductionContentsIndent }
- pnprefix { @IntroductionPrefix }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
- }
-
-
- #######################################################################
- # #
- # Chapters containing sections and subsections. #
- # #
- #######################################################################
-
- export @BeginSections @EndSections @Section
- def @Chapter force into { @ChapterList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @PartNumber {}
- named @PartTitle {}
- named @PartText {}
- named @BypassNumber { dft }
- named @BypassWord { dft }
- body @Body
- {
-
- def @EndSectionsPlace { @Galley }
-
- def @EndSections force into { @EndSectionsPlace&&preceding }
- {}
-
- macro @BeginSections
- { //@SectionGap @SectionList @FirstSectionNumber
- // @EndSectionsPlace //
- }
-
- def @ChapterShortNum
- {
- @ChapterNumbers @Then {
- @BypassNumber @Dft {
- @ChapterNumbers @Num @ChapterList&&@Tag @Open { num }
- }
- }
- }
-
- def @MajorNum
- {
- @ChapterNumbers @Then @InitialLanguage @Language {
- # chapter @WordVal @ChapterWord @ChapterShortNum
- @BypassWord @Dft {chapter @WordVal @ChapterWord} @ChapterShortNum
- }
- }
-
- def @MajorTitle
- {
- @InitialLanguage @Language {
- @RunningTitle @Dft @Title
- }
- }
-
- export @BeginSubSections @EndSubSections @SubSection
- def @Section force into { @SectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSectionsPlace { @Galley }
-
- def @EndSubSections force into { @EndSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSections
- { //@SubSectionGap @SubSectionList @FirstSubSectionNumber
- // @EndSubSectionsPlace //
- }
-
- def @SectionShortNum
- {
- @SectionNumbers @Then {
- @BypassNumber @Dft {
- @ChapterShortNum @Join @SectionNumbers @Num
- { @SectionList&&@Tag @Open { num } }
- }
- }
- }
-
- export @BeginSubSubSections @EndSubSubSections @SubSubSection
- def @SubSection force into { @SubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubSectionsPlace { @Galley }
-
- def @EndSubSubSections force into
- { @EndSubSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSubSections
- { //@SubSubSectionGap @SubSubSectionList @FirstSubSubSectionNumber
- // @EndSubSubSectionsPlace //
- }
-
- def @SubSectionShortNum
- {
- @SubSectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionShortNum @Join @SubSectionNumbers @Num
- { @SubSectionList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubSection force into { @SubSubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubSectionHeadingFont }
- headingbreak { @SubSubSectionHeadingBreak }
- headingformat { @Num @SubSubSectionHeadingFormat @Body }
- incontents { @SubSubSectionInContents }
- contentsindent { @SubSubSectionContentsIndent }
- numbers { @SubSubSectionNumbers }
- attachnum { @SubSubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubSectionShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSubSectionNumInTheorems }
- indisplays { @SubSubSectionNumInDisplays }
- infigures { @SubSubSectionNumInFigures }
- intables { @SubSubSectionNumInTables }
- infloaters { @SubSubSectionNumInFloaters }
- inrunners { @SubSubSectionNumInRunners }
- newpage { @NewPage }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSectionHeadingFont }
- headingbreak { @SubSectionHeadingBreak }
- headingformat { @Num @SubSectionHeadingFormat @Body }
- incontents { @SubSectionInContents }
- contentsindent { @SubSectionContentsIndent }
- numbers { @SubSectionNumbers }
- attachnum { @SubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SectionShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSectionNumInTheorems }
- indisplays { @SubSectionNumInDisplays }
- infigures { @SubSectionNumInFigures }
- intables { @SubSectionNumInTables }
- infloaters { @SubSectionNumInFloaters }
- inrunners { @SubSectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SectionHeadingFont }
- headingbreak { @SectionHeadingBreak }
- headingformat { @Num @SectionHeadingFormat @Body }
- incontents { @SectionInContents }
- contentsindent { @SectionContentsIndent }
- numbers { @SectionNumbers }
- attachnum { @SectionList&&preceding @Tagged @Tag }
- retrievenum { @SectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @ChapterShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SectionNumInTheorems }
- indisplays { @SectionNumInDisplays }
- infigures { @SectionNumInFigures }
- intables { @SectionNumInTables }
- infloaters { @SectionNumInFloaters }
- inrunners { @SectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- def @Part
- named @Tag {}
- {
- @LargeScaleStructure
- type { VeryMajor }
- initiallanguage { @InitialLanguage }
- title { @PartTitle }
- aboveheadinggap { @AbovePartGap }
- headingfont { @PartHeadingFont }
- headingbreak { @PartHeadingBreak }
- headingformat { @Num @PartHeadingFormat @Body }
- bypassnumber { @PartNumber }
- incontents { @PartInContents }
- contentsindent { @PartContentsIndent }
- sendheader { @Full @Body }
- inrunners { Yes }
- tag { @Tag }
- @PartText
- }
-
- @PartNumber @Case {
- "" @Yield {
- @PartTitle @Case {
- "" @Yield @Null
- else @Yield @Part
- }
- }
- else @Yield @Part
- }
- //
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @ChapterHeadingFont }
- headingbreak { @ChapterHeadingBreak }
- headingformat { @Num @ChapterHeadingFormat @Body }
- incontents { @ChapterInContents }
- contentsindent { @ChapterContentsIndent }
- # word { chapter @WordVal @ChapterWord }
- word { @BypassWord @Dft { chapter @WordVal @ChapterWord } }
- numbers { @ChapterNumbers }
- attachnum { @ChapterList&&preceding @Tagged @Tag }
- retrievenum { @ChapterList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @ChapterPrefix }
- intheorems { @ChapterNumInTheorems }
- indisplays { @ChapterNumInDisplays }
- infigures { @ChapterNumInFigures }
- intables { @ChapterNumInTables }
- infloaters { @ChapterNumInFloaters }
- sendheader { @ChapterFull @Body }
- innergap { @SectionGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Appendices. #
- # #
- #######################################################################
-
- export @BeginSubAppendices @EndSubAppendices @SubAppendix
- def @Appendix force into { @AppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @PartNumber {}
- named @PartTitle {}
- named @PartText {}
- named @BypassNumber { dft }
- body @Body
- {
-
- def @EndSubAppendicesPlace { @Galley }
-
- def @EndSubAppendices force into { @EndSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubAppendices
- { //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber
- // @EndSubAppendicesPlace //
- }
-
- def @AppendixShortNum
- {
- @AppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixNumbers @Num @AppendixList&&@Tag @Open { num }
- }
- }
- }
-
- def @MajorNum
- {
- @AppendixNumbers @Then @InitialLanguage @Language {
- appendix @WordVal @AppendixWord @AppendixShortNum
- }
- }
-
- def @MajorTitle
- {
- @InitialLanguage @Language {
- @RunningTitle @Dft @Title
- }
- }
-
- export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix
- def @SubAppendix force into { @SubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubAppendicesPlace { @Galley }
-
- def @EndSubSubAppendices force into { @EndSubSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubSubAppendices
- { //@SubSubAppendixGap @SubSubAppendixList @FirstSubSubAppendixNumber
- // @EndSubSubAppendicesPlace //
- }
-
- def @SubAppendixShortNum
- {
- @SubAppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixShortNum @Join @SubAppendixNumbers @Num
- { @SubAppendixList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubAppendix force into { @SubSubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubAppendixHeadingFont }
- headingbreak { @SubSubAppendixHeadingBreak }
- headingformat { @Num @SubSubAppendixHeadingFormat @Body }
- incontents { @SubSubAppendixInContents }
- contentsindent { @SubSubAppendixContentsIndent }
- numbers { @SubSubAppendixNumbers }
- attachnum { @SubSubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubSubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubAppendixShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubSubAppendixNumInTheorems }
- indisplays { @SubSubAppendixNumInDisplays }
- infigures { @SubSubAppendixNumInFigures }
- intables { @SubSubAppendixNumInTables }
- infloaters { @SubSubAppendixNumInFloaters }
- inrunners { @SubSubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubAppendixHeadingFont }
- headingbreak { @SubAppendixHeadingBreak }
- headingformat { @Num @SubAppendixHeadingFormat @Body }
- incontents { @SubAppendixInContents }
- contentsindent { @SubAppendixContentsIndent }
- numbers { @SubAppendixNumbers }
- attachnum { @SubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @AppendixShortNum }
- majornum { @MajorNum }
- majortitle { @MajorTitle }
- intheorems { @SubAppendixNumInTheorems }
- indisplays { @SubAppendixNumInDisplays }
- infigures { @SubAppendixNumInFigures }
- intables { @SubAppendixNumInTables }
- infloaters { @SubAppendixNumInFloaters }
- inrunners { @SubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- def @Part
- named @Tag {}
- {
- @LargeScaleStructure
- type { VeryMajor }
- initiallanguage { @InitialLanguage }
- title { @PartTitle }
- aboveheadinggap { @AbovePartGap }
- headingfont { @PartHeadingFont }
- headingbreak { @PartHeadingBreak }
- headingformat { @Num @PartHeadingFormat @Body }
- bypassnumber { @PartNumber }
- incontents { @PartInContents }
- contentsindent { @PartContentsIndent }
- sendheader { @Full @Body }
- inrunners { Yes }
- tag { @Tag }
- @PartText
- }
-
- @PartNumber @Case {
- "" @Yield {
- @PartTitle @Case {
- "" @Yield @Null
- else @Yield @Part
- }
- }
- else @Yield @Part
- }
- //
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveChapterGap }
- headingfont { @AppendixHeadingFont }
- headingbreak { @AppendixHeadingBreak }
- headingformat { @Num @AppendixHeadingFormat @Body }
- incontents { @AppendixInContents }
- contentsindent { @AppendixContentsIndent }
- word { appendix @WordVal @AppendixWord }
- numbers { @AppendixNumbers }
- attachnum { @AppendixList&&preceding @Tagged @Tag }
- retrievenum { @AppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @AppendixPrefix }
- intheorems { @AppendixNumInTheorems }
- indisplays { @AppendixNumInDisplays }
- infigures { @AppendixNumInFigures }
- intables { @AppendixNumInTables }
- infloaters { @AppendixNumInFloaters }
- sendheader { @ChapterFull @Body }
- innergap { @SubAppendixGap }
- inrunners { Yes }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Colophon. #
- # #
- #######################################################################
-
- def @Colophon into { @ColophonList&&preceding }
- named @Tag {}
- named @InitialLanguage {}
- body @Body
- {
-
- @InitialLanguage @Language @Body
-
- }
-
-
-@End @BookSetup
diff --git a/include/include/bsf b/include/include/bsf
deleted file mode 100644
index 6c8959e..0000000
--- a/include/include/bsf
+++ /dev/null
@@ -1,1929 +0,0 @@
-
-###############################################################################
-# #
-# Lout @BasicSetup package #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package contains basic symbols used widely throughout many #
-# documents, for font changes, particular characters, standard words in #
-# the current language, date and time, paragraphs, lists, colours, #
-# rules, and boxes. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysInclude { lengths } # @PSLengths
-@SysInclude { coltex } # @ColourCommand and @TextureCommand
-@SysPrependGraphic { bsf.lpg } # rules, boxes, margin note setup
-
-
-###############################################################################
-# #
-# The following symbols are defined outside @BasicSetup so that #
-# they can be invoked when setting its parameters in the @Use clause. #
-# #
-###############################################################################
-
-def @OrIfPlain
- precedence 80
- left x
- right y
-{
- @BackEnd @Case {
- PlainText @Yield y
- else @Yield x
- }
-}
-
-
-def @ZeroSize right x
-{
- @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
-}
-
-
-###########################################################################
-# #
-# @Place: places an object at an arbitrary point on the page. #
-# #
-###########################################################################
-
-#
-# VT: the expressions in the braces will work for PostScript but not for PDF
-# they should be modified in the way the "named c { " cm" }" blocks were modified above
-# but since the point of @Place is to output a matrix (?), I have not implemented this
-#
-def @Place
- import @PSLengths named x
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- { 0 }
- import @PSLengths named y
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- { 0 }
- right val
-{
- @ZeroSize {
- @BackEnd @Case {
- PlainText @Yield ""
- PostScript @Yield {
- { "LoutPageDict begin matr setmatrix" x y "translate end gsave"
- // "grestore" } @Graphic val
- }
- else @Yield { { "% @Place UNIMPLEMENTED" } @Graphic val # VT: PDF currently has no output
- }
- }
- }
-}
-
-
-###########################################################################
-# #
-# @Colour, @Color #
-# #
-###########################################################################
-
-def @Colour @Color left col right y { {@ColourCommand col} @SetColour y }
-
-
-###########################################################################
-# #
-# @ColouredUnderline, @ColoredUnderline #
-# #
-###########################################################################
-
-def @ColouredUnderline @ColoredUnderline left col right y {
- {@ColourCommand col} @SetUnderlineColour @Underline y
-}
-
-
-###########################################################################
-# #
-# @Texture #
-# #
-###########################################################################
-
-def @Texture
- left type
- named scale { 1 }
- named hscale { 1 }
- named vscale { 1 }
- import @PSLengths named angle { 0d }
- import @PSLengths named hshift { 0i }
- import @PSLengths named vshift { 0i }
- import @PSLengths named width { "dft" }
- import @PSLengths named height { "dft" }
- import @PSLengths named gap { "dft" }
- import @PSLengths named radius { "dft" }
- import @PSLengths named linewidth { "dft" }
- named font { "dft" }
- import @PSLengths named size { "dft" }
- named value { "dft" }
- right x
-{
- { type @TextureCommand
- scale { scale }
- hscale { hscale }
- vscale { vscale }
- angle { angle }
- hshift { hshift }
- vshift { vshift }
- width { width }
- height { height }
- gap { gap }
- radius { radius }
- linewidth { linewidth }
- font { font }
- size { size }
- value { value }
- } @SetTexture x
-}
-
-
-###############################################################################
-# #
-# Symbols exported by @BasicSetup. #
-# #
-###############################################################################
-
-export
-
- @InitialFont @InitialBreak @InitialOutdent @InitialSpace @InitialLanguage
- @InitialColour @InitialBackgroundColour @OptimizePages @HeadingFont
- @ParaGap @ParaIndent @DisplayGap @DisplayIndent @DefaultIndent
- @DisplayNumStyle @WideIndent @VeryWideIndent
- @ListGap @ListIndent @ListRightIndent
- @ListLabelWidth @ListLabelRight @ListLabelRightGap @ListFont @ListBreak
- @NumberSeparator
-
- @Pipe @PipeVerbatim @PipeRawVerbatim
-
- @Word @Roman @UCRoman @Alpha @UCAlpha @FnBullets @FnSymbols
- @Months @ShortMonths @WeekDays @ShortWeekDays
- @TwelveHours @ShortHours @MeriDiems @ShortMeriDiems
-
- @Sym @Ding @R @I @B @BI @S @F @II
- "~" "~~" "``" "''" ",," "--" "---" "..."
-
- @Bullet @ParSym @SectSym @Dagger @DaggerDbl @CDot @Sterling @Yen @Florin
- @Star @Degree @Minute @Second @Multiply @Divide @Lozenge @Register
- @CopyRight @TradeMark @Euro
-
- @Date @Time @DateTimeFormat @DropCapTwo @DropCapThree @Centre @Right
- @NoDotSep @NoDotJoin @Join @Sep @DotSep @ColonSep @DotJoin @DashJoin
- @NumSep @VStrut @ZeroWidth @ZeroHeight @OverStrike @Sup @Sub @HClip @VClip
- @FullWidthRule @LocalWidthRule @Box @CurveBox @ShadowBox @BoundaryMarks
- @DocInfo @NumberMarker @NumberOf @TitleMarker @TitleOf
- @PageMarker @PageMark @NoLinkPageMark @PageOf @PageParityOf
- @CrossLink @ExternalLink
-
- @BeginDisplayCounter
-
- @Heading "^" "&-" @If @Not @And @Or @True
- @PP @LP @LLP @DP @LOP @NP @CNP
-
- @BeginAlignedDisplays
- @EndAlignedDisplays
-
- @Display
- @LeftDisplay
- @IndentedDisplay
- @QuotedDisplay
- @CentredDisplay
- @RightDisplay
- @AlignedDisplay
- @LeftAlignedDisplay
- @IndentedAlignedDisplay
- @QuotedAlignedDisplay
- @CentredAlignedDisplay
- @RightAlignedDisplay
- @NumberedDisplay
- @LeftNumberedDisplay
- @IndentedNumberedDisplay
- @QuotedNumberedDisplay
- @CentredNumberedDisplay
- @RightNumberedDisplay
- @AlignedNumberedDisplay
- @LeftAlignedNumberedDisplay
- @IndentedAlignedNumberedDisplay
- @QuotedAlignedNumberedDisplay
- @CentredAlignedNumberedDisplay
- @RightAlignedNumberedDisplay
-
- @RawDisplay
- @RawLeftDisplay
- @RawIndentedDisplay
- @RawQuotedDisplay
- @RawCentredDisplay
- @RawRightDisplay
- @RawAlignedDisplay
- @RawLeftAlignedDisplay
- @RawIndentedAlignedDisplay
- @RawQuotedAlignedDisplay
- @RawCentredAlignedDisplay
- @RawRightAlignedDisplay
- @RawNumberedDisplay
- @RawLeftNumberedDisplay
- @RawIndentedNumberedDisplay
- @RawQuotedNumberedDisplay
- @RawCentredNumberedDisplay
- @RawRightNumberedDisplay
- @RawAlignedNumberedDisplay
- @RawLeftAlignedNumberedDisplay
- @RawIndentedAlignedNumberedDisplay
- @RawQuotedAlignedNumberedDisplay
- @RawCentredAlignedNumberedDisplay
- @RawRightAlignedNumberedDisplay
-
- @ListItem
- @ParagraphItem
- @ListInterruptItem
- @ListNewPage
- @DropListItem
- @TagItem
- @DropTagItem
-
- @EndList
- @RawEndList
-
- @RawList
- @RawLeftList
- @RawIndentedList
- @RawQuotedList
- @RawCentredList @RawCenteredList
- @RawNumberedList
- @RawParenNumberedList
- @RawRomanList
- @RawParenRomanList
- @RawUCRomanList
- @RawParenUCRomanList
- @RawAlphaList
- @RawParenAlphaList
- @RawUCAlphaList
- @RawParenUCAlphaList
- @RawBulletList
- @RawStarList
- @RawDashList
- @RawTaggedList
- @RawWideTaggedList
- @RawVeryWideTaggedList
-
- @List
- @LeftList
- @IndentedList
- @QuotedList
- @CentredList @CenteredList
- @NumberedList
- @ParenNumberedList
- @RomanList
- @ParenRomanList
- @UCRomanList
- @ParenUCRomanList
- @AlphaList
- @ParenAlphaList
- @UCAlphaList
- @ParenUCAlphaList
- @BulletList
- @StarList
- @DashList
- @TaggedList
- @WideTaggedList
- @VeryWideTaggedList
-
-
-###############################################################################
-# #
-# The @BasicSetup package. #
-# #
-###############################################################################
-
-def @BasicSetup
- named @InitialFont { Times Base 12p } # initial font
- named @InitialBreak { {adjust 1.20fx hyphen} @OrIfPlain
- {ragged 1fx nohyphen} } # initial break
- named @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- named @InitialSpace { lout } # initial space style
- named @InitialLanguage{ English } # initial language
- named @InitialColour { black } # initial colour
- named @InitialBackgroundColour { white } # initial background colour
- named @OptimizePages { No } # optimize page breaks?
- named @HeadingFont { Bold } # font for @Heading
- named @FixedWidthFont { Courier Base -1p } # font for @F
- named @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- named @ParaIndent { 2.0f @OrIfPlain 5s } # first-line indent for @PP
- named @DisplayGap { 1.0v @OrIfPlain 1f } # gap above, below displays
- named @DisplayIndent { 2.0f @OrIfPlain 5s } # @IndentedDisplay indent
- named @DefaultIndent { 0.5rt } # @Display indent
- named @DisplayNumStyle
- right num { (num) } # display number style
- named @WideIndent { 4.0f @OrIfPlain 10s } # @WideTaggedList indent
- named @VeryWideIndent { 8.0f @OrIfPlain 20s } # @VeryWideTaggedList indent
- named @ListOuterGap { 1.0v @OrIfPlain 1f } # gap before, after list
- named @ListGap { 1.0v @OrIfPlain 1f } # gap between list items
- named @ListIndent { 0s } # indent of list items
- named @ListRightIndent{ 0s } # right indent of list items
- named @ListLabelWidth { 2.0f @OrIfPlain 5s } # width allowed for list tags
- named @ListLabelRight { No } # right align label
- named @ListLabelRightGap { 2s } # right align gap
- named @ListFont { } # font style of list item
- named @ListBreak { } # break style of list item
- named @NumberSeparator{ . } # separates numbers like 2.3.7
- import @BasicSetup
- named @CrossLinkFormat
- right @Body { @Body } # format for cross links
- import @BasicSetup
- named @ExternalLinkFormat
- right @Body { @Body } # format for external links
-@Begin
-
- ###########################################################################
- # #
- # x @Dft y #
- # #
- # This returns x unless its value is "dft", in which case it returns y. #
- # Useful for defaulting the value of one parameter to another. #
- # #
- ###########################################################################
-
- def @Dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # @Pipe, @PipeVerbatim, and @PipeRawVerbatim #
- # #
- ###########################################################################
-
- def @Pipe
- left command
- right x
- {
- def @Filter { "cat" @FilterIn "|" command ">" @FilterOut }
-
- x
- }
-
- def @PipeVerbatim
- left command
- right x
- {
- def @Filter {
- "(echo @Verbatim @Begin ; (cat" @FilterIn "|" command "); echo @End @Verbatim ) >" @FilterOut }
-
- x
- }
-
- def @PipeRawVerbatim
- left command
- right x
- {
- def @Filter {
- "(echo @RawVerbatim @Begin ; (cat" @FilterIn "|" command "); echo @End @RawVerbatim ) >" @FilterOut }
-
- x
- }
-
-
- ###########################################################################
- # #
- # @Sym, @Ding font symbols, and miscellaneous special characters. #
- # #
- ###########################################################################
-
- def @Sym right x { { Symbol Base } @Font @Char x }
- def @Ding right x { { Dingbats Base } @Font @Char x }
-
- def @R right x { Base @Font x }
- def @I right x { Slope @Font x }
- def @B right x { Bold @Font x }
- def @BI right x { BoldSlope @Font x }
- def @S right x { smallcaps @Font x }
- def @F right x { @FixedWidthFont @Font x }
-
- def @II
- right x
- {
- { @CurrFace @Case {
- Bold @Yield BoldSlope
- else @Yield Slope
- } } @Font x
- }
-
- def "~" left x right y { x &1su y }
- def "~~" left x right y { x &2s y }
-
- def "``" { @Char "quotedblleft" @OrIfPlain "``" }
- def "''" { @Char "quotedblright" @OrIfPlain "''" }
- def ",," { @Char "quotedblbase" @OrIfPlain ",," }
- def "--" { @Char "endash" @OrIfPlain "--" }
- def "---" { @Char "emdash" @OrIfPlain "---"}
- def "..." { @Char "ellipsis" @OrIfPlain "..."}
- def @Bullet { @Char "bullet" @OrIfPlain "o" }
- def @ParSym { @Char "paragraph" @OrIfPlain "P" }
- def @SectSym { @Char "section" @OrIfPlain "$" }
- def @Dagger { @Char "dagger" @OrIfPlain "+" }
- def @DaggerDbl { @Char "daggerdbl" @OrIfPlain "++" }
- def @CDot { @Char "periodcentered" @OrIfPlain "." }
- def @Sterling { @Char "sterling" @OrIfPlain "&" }
- def @Yen { @Char "yen" @OrIfPlain "Y" }
- def @Florin { @Char "florin" @OrIfPlain "f" }
-
- def @Star { @Sym "asteriskmath" @OrIfPlain "*" }
- def @Degree { @Sym "degree" @OrIfPlain "o" }
- def @Minute { @Sym "minute" @OrIfPlain "'" }
- def @Second { @Sym "second" @OrIfPlain "''" }
- def @Multiply { @Sym "multiply" @OrIfPlain "x" }
- def @Divide { @Sym "divide" @OrIfPlain "/" }
- def @Lozenge { @Sym "lozenge" @OrIfPlain "O" }
- def @Register { @Sym "registersans" @OrIfPlain "R" }
- def @CopyRight { @Sym "copyrightsans" @OrIfPlain "C" }
- def @TradeMark { @Sym "trademarksans" @OrIfPlain "TM" }
-
- def @Euro
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- 0.65w @VShift @VContract @HContract
- "xsize ysize ysize 0.07 mul louteuro" @Graphic {
- 0.7f @High 0.735f @Wide
- }
- }
-
- PDF @Yield { EUR }
-
- PlainText @Yield { EUR }
- }
- }
-
-
- ###########################################################################
- # #
- # Symbols stored in the "standard" database #
- # #
- # @Word language-spacific words such as Chapter, etc. #
- # @Roman lower case Roman numerals i, ii, ... , cc #
- # @UCRoman upper case Roman numerals I, II, ... , CC #
- # @Alpha lower case Roman alphabet a, b, ... , z #
- # @UCAlpha upper case Roman alphabet A, B, ... , Z #
- # @FnBullets bullets as footnote markers #
- # @FnSymbols traditional footnote symbols asterisk, dagger, etc. #
- # @Months months of the year: January, ... , December #
- # @ShortMonths months of the year, abbreviated: Jan, ..., Dec #
- # @WeekDays days of the week: Sunday, ... , Saturday #
- # @ShortWeekDays days of the week, abbreviated: Sun, ... , Sat #
- # @TwelveHours hours, from 1 to 12 #
- # @ShortHours hours, from 0 to 23 #
- # @DateTimeFormat format of results of @Date and @Time #
- # #
- ###########################################################################
-
- def @Word left @Tag right @Val { @Val }
- def @Roman left @Tag right @Val { @Val }
- def @UCRoman left @Tag right @Val { @Val }
- def @Alpha left @Tag right @Val { @Val }
- def @UCAlpha left @Tag right @Val { @Val }
- def @FnBullets left @Tag right @Val { @Val }
- def @FnSymbols left @Tag right @Val { @Val }
- def @Months left @Tag right @Val { @Val }
- def @ShortMonths left @Tag right @Val { @Val }
- def @WeekDays left @Tag right @Val { @Val }
- def @ShortWeekDays left @Tag right @Val { @Val }
- def @TwelveHours left @Tag right @Val { @Val }
- def @ShortHours left @Tag right @Val { @Val }
- def @MeriDiems left @Tag right @Val { @Val }
- def @ShortMeriDiems left @Tag right @Val { @Val }
-
- export @Value
- def @DateTimeFormat left @Tag
- named @Value
- named @Year {}
- named @ShortYear {}
- named @Month {}
- named @ShortMonth {}
- named @MonthNum {}
- named @Day {}
- named @ShortDay {}
- named @DayNum {}
- named @MeriDiem {}
- named @ShortMeriDiem {}
- named @Hour {}
- named @TwelveHour {}
- named @ShortHour {}
- named @Minute {}
- named @Second {}
- {}
- {}
-
- @SysDatabase @Word @Roman @UCRoman @Alpha @UCAlpha @FnBullets @FnSymbols
- @Months @ShortMonths @WeekDays @ShortWeekDays @TwelveHours
- @ShortHours @MeriDiems @ShortMeriDiems @DateTimeFormat
- { standard }
-
-
- ###########################################################################
- # #
- # @Date and @Time: the date and time now. #
- # #
- ###########################################################################
-
- def @Date
- named @Format
- named @Year { @Moment&&now @Open { {@Century}@Year }}
- named @ShortYear { @Moment&&now @Open { @Year }}
- named @Month { @Moment&&now @Open { @Months&&@Month }}
- named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }}
- named @MonthNum { @Moment&&now @Open { @Month }}
- named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }}
- named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}}
- named @DayNum { @Moment&&now @Open { @Day }}
- named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }}
- named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }}
- named @Hour { @Moment&&now @Open { @Hour }}
- named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }}
- named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }}
- named @Minute { @Moment&&now @Open { @Minute }}
- named @Second { @Moment&&now @Open { @Second }}
- {
- @DateTimeFormat&&date @Open { @Value
- @Year { @Year }
- @ShortYear { @ShortYear }
- @Month { @Month }
- @ShortMonth { @ShortMonth }
- @MonthNum { @MonthNum }
- @Day { @Day }
- @ShortDay { @ShortDay }
- @DayNum { @DayNum }
- @MeriDiem { @MeriDiem }
- @ShortMeriDiem { @ShortMeriDiem }
- @Hour { @Hour }
- @TwelveHour { @TwelveHour }
- @ShortHour { @ShortHour }
- @Minute { @Minute }
- @Second { @Second }
- }
- }
- { @Format }
-
- def @Time
- named @Format
- named @Year { @Moment&&now @Open { {@Century}@Year }}
- named @ShortYear { @Moment&&now @Open { @Year }}
- named @Month { @Moment&&now @Open { @Months&&@Month }}
- named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }}
- named @MonthNum { @Moment&&now @Open { @Month }}
- named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }}
- named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}}
- named @DayNum { @Moment&&now @Open { @Day }}
- named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }}
- named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }}
- named @Hour { @Moment&&now @Open { @Hour }}
- named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }}
- named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }}
- named @Minute { @Moment&&now @Open { @Minute }}
- named @Second { @Moment&&now @Open { @Second }}
- {
- @DateTimeFormat&&time @Open { @Value
- @Year { @Year }
- @ShortYear { @ShortYear }
- @Month { @Month }
- @ShortMonth { @ShortMonth }
- @MonthNum { @MonthNum }
- @Day { @Day }
- @ShortDay { @ShortDay }
- @DayNum { @DayNum }
- @MeriDiem { @MeriDiem }
- @ShortMeriDiem { @ShortMeriDiem }
- @Hour { @Hour }
- @TwelveHour { @TwelveHour }
- @ShortHour { @ShortHour }
- @Minute { @Minute }
- @Second { @Second }
- }
- }
- { @Format }
-
-
- ###########################################################################
- # #
- # @DropCapTwo and @DropCapThree #
- # #
- ###########################################################################
-
- def @DropCapTwo
- left y
- named height { 1.5v }
- right x
- {
- def @ParPlace { @Galley }
- def @EndParPlace { @Galley }
-
- def @LineList
- {
- @PAdjust @ParPlace
- //1vx @LineList
- }
-
- def @ParGalley horizontally into { @ParPlace&&preceding }
- right x
- {
- x
- }
-
- def @EndPar force into { @EndParPlace&&following } { @Null }
-
- def @Cap
- {
- -0.25f @VShift 1.0w @VShift {
- -90d @Rotate height @Wide @Scale 90d @Rotate y
- }
- }
-
- |1s @PAdjust @ParPlace
- /1vo @Cap @ParGalley {x & @EndPar &1rt } | @PAdjust @ParPlace
- //1vx @LineList
- // @EndParPlace
- }
-
- def @DropCapThree
- left y
- named height { 2.5v }
- right x
- {
- def @ParPlace { @Galley }
- def @EndParPlace { @Galley }
-
- def @LineList
- {
- @PAdjust @ParPlace
- //1vx @LineList
- }
-
- def @ParGalley force horizontally into { @ParPlace&&preceding }
- right x
- {
- x
- }
-
- def @EndPar force into { @EndParPlace&&following } { @Null }
-
- def @Cap
- {
- -0.25f @VShift 1.0w @VShift {
- -90d @Rotate height @Wide @Scale 90d @Rotate y
- }
- }
-
- |1s @PAdjust @ParPlace
- /1vo @ParGalley { x & @EndPar &1rt } | @PAdjust @ParPlace
- /1vo @Cap | @PAdjust @ParPlace
- //1vx @LineList
- // @EndParPlace
- }
-
-
- ###########################################################################
- # #
- # @Centre, @Center, @Right, @NoDotSep, @NoDotJoin, @DotSep, #
- # @ColonSep, @DotJoin, @DashJoin, @NumSep #
- # #
- ###########################################################################
-
- macro @Centre @Center { |0.5rt @HContract }
-
- def @Right
- precedence 50
- left x
- right y
- { x |1.0rt @OneCol { 2f @Wide {} | y } }
-
- def @NoDotSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x |2s y }
- }
- }
- }
- }
-
- def @NoDotJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{y} }
- }
- }
- }
- }
-
- def @DotSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x. |2s y }
- }
- }
- }
- }
-
- def @ColonSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x: |2s y }
- }
- }
- }
- }
-
- def @DotJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x.y }
- }
- }
- }
- }
-
- def @DashJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x--y }
- }
- }
- }
- }
-
- def @NumSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield {
- @CurrLang @Case {
- Hungarian @Yield { y. x }
- else @Yield { x y }
- }
- }
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @VStrut, @ZeroWidth, @ZeroHeight #
- # #
- ###########################################################################
-
-
- def @VStrut
- named above { 0.5f }
- named below { 0.5f }
- right x
- {
- x &0iu @VContract { above @High ^/ below @High }
- }
-
-
- def @ZeroWidth right x { @HContract { |0io x |0io } }
-
- def @ZeroHeight right x { @VContract { /0io x /0io } }
-
-
- ###########################################################################
- # #
- # @OverStrike, @Sup and @Sub #
- # #
- ###########################################################################
-
- def @OverStrike left x right y
- {
- @OneRow { @HContract @VContract x /0io @HContract @VContract y }
- }
-
- def @Sup
- left x
- named gap { 0.40fk }
- right y
- {
- @HContract @VContract
- {
- | 0.7f @Font y ^/gap x
- }
- }
-
- def @Sub
- left x
- named gap { 0.40fk }
- right y
- {
- @HContract @VContract
- {
- x /gap | 0.7f @Font y
- }
- }
-
-
- ###########################################################################
- # #
- # @HClip and @VClip #
- # #
- ###########################################################################
-
- def @HClip
- named shift { 0.0 }
- right x
- {
- { "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto"
- "closepath clip gsave" // "grestore" } @Graphic
- {
- |{{shift}"rt"} @ZeroWidth {{shift}"w"} @HShift x |
- }
- }
-
- def @VClip
- named shift { 0.0 }
- right x
- {
- { "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto"
- "closepath clip gsave" // "grestore" } @Graphic
- {
- /{{shift}"rt"} @ZeroHeight {{shift}"w"} @VShift x /
- }
- }
-
-
- ###########################################################################
- # #
- # @AddPaint, @StrokeCommand #
- # #
- ###########################################################################
-
- def @AddPaint
- left col
- right texture
- {
- col @Case {
- none @Yield ""
- nochange @Yield {
- @BackEnd @Case {
- PostScript @Yield { "gsave" texture "fill grestore" }
- PDF @Yield { "q f Q" }
- PlainText @Yield { "" }
- }
- }
- else @Yield {
- @BackEnd @Case {
- PostScript @Yield {"gsave" @ColourCommand col texture "fill grestore"}
- PDF @Yield { "q" @ColourCommand col "f Q" }
- PlainText @Yield { "" }
- }
- }
- }
- }
-
- def @StrokeCommand right linewidth
- {
- @BackEnd @Case {
- PostScript @Yield {
- linewidth @Case {
- "" @Yield { "stroke" }
- none @Yield { }
- else @Yield { linewidth "setlinewidth stroke" }
- }
- }
- PDF @Yield {
- linewidth @Case {
- "" @Yield { "S" }
- none @Yield { }
- else @Yield { linewidth "w S" }
- }
- }
- else @Yield ""
- }
- }
-
-
-
- ###########################################################################
- # #
- # @FullWidthRule, @Box, @CurveBox, and @ShadowBox #
- # #
- ###########################################################################
-
- def @FullWidthRule
- import @PSLengths named linewidth {}
- {
- @BackEnd @Case {
-
- PostScript @Yield @HExpand {
- { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PDF @Yield @HExpand {
- { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- }
- }
-
- def @LocalWidthRule
- import @PSLengths named linewidth {}
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PDF @Yield {
- { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- }
- }
-
- def @Box
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- right x
- {
- @BackEnd @Case {
-
- PostScript @Yield @VContract @HContract 0c @HShift {
- {"LoutBox" paint @AddPaint texture @StrokeCommand linewidth }
- @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PDF @Yield @VContract @HContract 0c @HShift {
- { "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h"
- paint @AddPaint texture @StrokeCommand linewidth } @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PlainText @Yield @VContract @HContract 0c @HShift {
- ^/margin ^|margin 0c @HShift @OneRow x |margin /margin
- }
- }
- }
-
- def @CurveBox
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- right x
- {
- def @PDFStuff
- {
- "__xmark 0 m"
- "__sub(__xsize, __xmark) 0 l"
- "__sub(__xsize, __div(__mul(11, __xmark), 24)) 0"
- "__xsize __div(__mul(11, __xmark), 24)"
- "__xsize __xmark c"
- "__xsize __sub(__ysize, __xmark) l"
- "__xsize __sub(__ysize, __div(__mul(11, __xmark), 24))"
- "__sub(__xsize, __div(__mul(11, __xmark), 24)) __ysize"
- "__sub(__xsize, __xmark) __ysize c"
- "__xmark __ysize l"
- "__div(__mul(11, __xmark), 24) __ysize"
- "0 __sub(__ysize, __div(__mul(11, __xmark), 24))"
- "0 __sub(__ysize, __xmark) c"
- "0 __xmark l"
- "0 __div(__mul(11, __xmark), 24)"
- "__div(__mul(11, __xmark), 24) 0"
- "__xmark 0 c"
- "h"
- paint @AddPaint texture @StrokeCommand linewidth
- }
-
- @VContract @HContract 0c @HShift @BackEnd @Case {
-
- PostScript @Yield {
- {"LoutCurveBox" paint @AddPaint texture @StrokeCommand linewidth }
- @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PlainText @Yield {
- ^/margin ^|margin 0c @HShift @OneRow x |margin /margin
- }
-
- PDF @Yield {
- @PDFStuff @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
- }
- }
-
- def @ShadowBox
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- named shadow { 0.2f }
- right x
- {
- @VContract @HContract 0c @HShift @BackEnd @Case {
-
- PostScript @Yield {
- "LoutShadowBox fill" @Graphic
- { ^/shadow ^|shadow 0c @HShift
- @Box
- margin {margin}
- paint {paint}
- texture { texture }
- linewidth {linewidth} x
- |shadow /shadow
- }
- }
-
- PlainText @Yield {
- ^/shadow ^|shadow 0c @HShift
- @Box
- margin { margin }
- paint { paint }
- texture { texture }
- linewidth {linewidth} x
- |shadow /shadow
- }
-
- PDF @Yield {
- {
- "__mul(__xmark, 2) 0 m __xsize 0 l"
- "__xsize __sub(__ysize, __mul(__xmark, 2)) l"
- "__sub(__xsize, __xmark) __sub(__ysize, __mul(__xmark, 2)) l"
- "__sub(__xsize, __xmark) __xmark l"
- "__mul(__xmark, 2) __xmark l h f"
- }
- @Graphic
- { ^/shadow ^|shadow 0c @HShift
- @Box
- margin { margin }
- paint { paint }
- texture { texture }
- linewidth { linewidth } x
- |shadow /shadow
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @BoundaryMarks #
- # #
- ###########################################################################
-
- def @BoundaryMarks
- import @PSLengths named linewidth { 0.2p }
- import @PSLengths named length { 0.5c }
- import @PSLengths named gap { 0.5c }
- import @PSLengths named lout { 0c }
- import @PSLengths named rout { 0c }
- import @PSLengths named uout { 0c }
- import @PSLengths named dout { 0c }
- {
- def @UpStroke { "0" gap "rmoveto" "0" length "rlineto" }
- def @DownStroke { "0" gap "neg" "rmoveto" "0" length "neg rlineto" }
- def @LeftStroke { gap "neg" "0" "rmoveto" length "neg" "0 rlineto" }
- def @RightStroke { gap "0" "rmoveto" length "0 rlineto" }
-
- def @LLSpot { lout "neg" dout "neg" moveto }
- def @LRSpot { xsize rout "add" dout "neg" moveto }
- def @ULSpot { lout "neg" ysize uout "add" moveto }
- def @URSpot { xsize rout "add" ysize uout "add" moveto }
-
- def @PDFStuff {
- "__sub(-"gap", "lout") __sub(0, "dout") m "
- "__sub(__sub(-"gap", "lout"), "length") __sub(0, "dout") l"
- "__sub(0, "lout") __sub(-"gap", "dout") m "
- "__sub(0, "lout") __sub(__sub(-"gap", "dout"), "length") l"
- "__add(__xsize,"rout") __sub(-"gap", "dout") m "
- "__add(__xsize,"rout") __sub(__sub(-"gap", "dout"), "length") l"
- "__add(__add(__xsize,"rout"),"gap") __sub(0, "dout") m "
- "__add(__add(__add(__xsize,"rout"),"gap"),"length") __sub(0, "dout") l"
- " __sub(__sub(0, "lout"), "gap") __add(__ysize, "uout") m "
- "__sub(__sub(__sub(0, "lout"), "gap"), "length") __add(__ysize, "uout") l"
- "__sub(0, "lout") __add(__add(__ysize, "uout"), "gap") m "
- "__sub(0, "lout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l"
- " __add(__add(__xsize, "rout"), "gap") __add(__ysize, "uout") m "
- "__add(__add(__add(__xsize, "rout"), "gap"), "length") __add(__ysize, "uout") l"
- "__add(__xsize, "rout") __add(__add(__ysize, "uout"), "gap") m "
- "__add(__xsize, "rout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l"
-
- linewidth "w S"
- }
-
- @BackEnd @Case {
-
- PostScript @Yield {
- {
- @LLSpot @LeftStroke
- @LLSpot @DownStroke
- @LRSpot @DownStroke
- @LRSpot @RightStroke
- @ULSpot @LeftStroke
- @ULSpot @UpStroke
- @URSpot @RightStroke
- @URSpot @UpStroke
-
- linewidth "setlinewidth stroke"
- } @Graphic {}
- }
-
- PlainText @Yield ""
-
- PDF @Yield { @PDFStuff @Graphic {} }
- }
- }
-
- ##########################################################################
- # #
- # @DocInfo #
- # #
- ##########################################################################
-
- def @DocInfo
- named author {}
- named title {}
- named keywords {}
- {
- { @BackEnd @Case {
- PostScript @Yield
- {
- "[" author @Case {
- "" @Yield ""
- else @Yield { "/Author ("author")" } }
- title @Case {
- "" @Yield ""
- else @Yield { "/Title ("title")" } }
- keywords @Case {
- "" @Yield ""
- else @Yield { "/Keywords ("keywords")" } }
- "/DOCINFO pdfmark"
- }
- else @Yield @Null
- } } @Graphic { }
- }
-
-
- ##########################################################################
- # #
- # @NumberMarker, @NumberOf, @TitleMarker, @TitleOf, #
- # @PageMark, @PageOf, @PageparityOf, @CrossLink, @ExternalLink #
- # #
- # NB the default value ?? is desperately important for unsorted #
- # reference lists numbered by first appearance (@NumberOf @Tag), #
- # because it is the special sort key value that prevents merging, #
- # hence allowing all the references to be printed even though #
- # their sort keys are all ?? initially. #
- # #
- ##########################################################################
-
- export @Tag @Value
- def @NumberMarker
- named @Tag {}
- named @Value { "??" }
- {
- @Null
- }
-
- def @NumberOf
- right tag
- {
- @NumberMarker&&tag @Open { @Value }
- }
-
-
- export @Tag @Value
- def @TitleMarker
- named @Tag {}
- named @Value { "??" }
- {
- @Null
- }
-
- def @TitleOf
- right tag
- {
- @TitleMarker&&tag @Open { @Value }
- }
-
-
- export @Tag num rawnum parity
- def @PageMarker
- named @Tag {}
- named num {}
- named rawnum {}
- named parity {}
- {
- @PageLabel num
- }
-
- def @PageMark
- right tag
- {
- tag @LinkDest @Null & @PageMarker&&preceding @Tagged tag
- }
-
- def @NoLinkPageMark
- right tag
- {
- @PageMarker&&preceding @Tagged tag
- }
-
- def @PageOf
- right tag
- {
- @PageMarker&&tag @Open { num }
- }
-
- def @PageParityOf
- right tag
- {
- @PageMarker&&tag @Open { parity }
- }
-
- def @CrossLink
- left tag
- named @Format right @Body { @CrossLinkFormat @Body }
- right obj
- {
- @HContract @VContract {
- tag @LinkSource @Format obj
- }
- }
-
- def @ExternalLink
- left tag
- named @Format right @Body { @ExternalLinkFormat @Body }
- right obj
- {
- @HContract @VContract {
- tag @URLLink @Format obj
- }
- }
-
-
- ###########################################################################
- # #
- # @Join and @Sep #
- # #
- # Join two objects together with @NumberSeparator, unless one is #
- # empty in which case just return the other. #
- # #
- ###########################################################################
-
- def @Join left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{@NumberSeparator}y }
- }
- }
- }
- }
-
- def @Sep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{@NumberSeparator} |2s y }
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # Miscellaneous. #
- # #
- ###########################################################################
-
- def @Heading right x { ragged @Break @HeadingFont @Font x }
- def "^" { {} ^& {} }
- def "&-" left x right y { x &0ch y }
-
-
- ###########################################################################
- # #
- # @If @Not @And @Or @True #
- # #
- # Used in databases to make optional fields format nicely. #
- # #
- ###########################################################################
-
- def @If
- precedence 97
- left x
- right y
- {
- y @Case {
- {} @Yield @Null
- else @Yield { @Null{x} }
- }
- }
-
- def @Not
- precedence 100
- right y
- {
- y @Case {
- {} @Yield "*"
- else @Yield ""
- }
- }
-
- def @And
- precedence 99
- left x
- right y
- {
- x @Case {
- {} @Yield {}
- else @Yield y
- }
- }
-
- def @Or
- precedence 98
- left x
- right y
- {
- x @Case {
- {} @Yield y
- else @Yield x
- }
- }
-
- def @True { "*" }
-
-
- ###########################################################################
- # #
- # Paragraphs. #
- # #
- ###########################################################################
-
- macro @PP { //@ParaGap @ParaIndent @Wide &{0i} }
- macro @LP { //{@ParaGap} }
- macro @LLP { //{1vx} }
- macro @DP { //{@DisplayGap} }
- macro @LOP { //{@ListOuterGap} }
- macro @NP { //{1.1b} }
- macro @CNP { // 3.2v @High //0io //{} }
-
-
- ###########################################################################
- # #
- # Beginning and ending of aligned displays. #
- # #
- ###########################################################################
-
- def @APlace { @Galley }
- def @EndAlignedPlace { @Galley }
- def @AlignedPlace { @Galley }
-
- def @BAligned into { @APlace&&preceding }
- {
- def @AlignedList { @AlignedPlace /1.1b @AlignedList }
-
- //1.1b @AlignedList
- // @EndAlignedPlace
- }
-
- macro @BAD @BeginAlignedDisplays { // @APlace | @BAligned }
- def @EAD @EndAlignedDisplays force into { @EndAlignedPlace&&preceding } {}
-
-
- ###########################################################################
- # #
- # New code for numbered displays that will cross section boundaries #
- # #
- ###########################################################################
-
- export @Tag val display_val
- def @NumDispCounterMarker
- named @Tag {}
- named val {}
- named display_val {}
- {
- @Null
- }
-
- def @NumDispNum right tag
- {
- @NumDispCounterMarker&&tag @Open { @Next val }
- }
-
- def @NumDispCounterIncrement
- named @BypassNumber { "dft" }
- right tag
- {
- def @DisplayNumber
- {
- @BypassNumber @Dft { @NumDispNum tag }
- }
-
- @NumDispCounterMarker&&preceding @Tagged tag
- # @NumDispCounterMarker val { @NumDispNum tag }
- # @NumberMarker @Tag { tag } @Value { @NumDispNum tag }
- @NumDispCounterMarker val { @NumDispNum tag } display_val { @DisplayNumber }
- @NumberMarker @Tag { tag } @Value { @DisplayNumber }
- }
-
- def @NN
- {
- @NumDispCounterMarker&&preceding @Open { @DisplayNumStyle display_val }
- }
-
- def @Do
- left x
- right y
- {
- x @Case {
- { No None } @Yield @Null
- else @Yield y
- }
- }
-
- def @BeginDisplayCounter
- left condition
- right prefix
- {
- condition @Do @NumDispCounterMarker val { prefix @Join 0 }
- }
-
-
- ###########################################################################
- # #
- # Galleys that carry displays to their places. #
- # #
- ###########################################################################
-
- def @DispPlace { @Galley }
-
- def @Disp into { @DispPlace&&preceding }
- right x
- {
- x
- }
-
- def @NDisp into { @DispPlace&&preceding }
- named @Tag {}
- named @BypassNumber { "dft" }
- right x
- {
- @OneRow {
- # @NumDispCounterIncrement @Tag
- @NumDispCounterIncrement @BypassNumber { @BypassNumber } @Tag
- @PageMark @Tag
- ^//
- @OneRow x
- }
- }
-
- def @ADisp into { @AlignedPlace&&preceding }
- right x
- {
- x
- }
-
- def @ANDisp into { @AlignedPlace&&preceding }
- named @Tag {}
- named @BypassNumber { "dft" }
- right x
- {
- @OneRow {
- # @NumDispCounterIncrement @Tag
- @NumDispCounterIncrement @BypassNumber { @BypassNumber } @Tag
- @PageMark @Tag
- ^/
- @OneRow x
- }
- }
-
-
- ###########################################################################
- # #
- # Displays and raw displays. #
- # #
- ###########################################################################
-
- macro @G { |@DefaultIndent }
- macro @LG { | }
- macro @IG { |@DisplayIndent }
- macro @CG { |0.5rt }
- macro @RG { |1.0rt }
- macro @QR { @DisplayIndent @Wide { |1rt @NN } }
- macro @DX { @DispPlace }
- macro @DY { @Disp }
- macro @AX { @APlace }
- macro @AY { @ADisp }
- macro @NY { @NDisp }
- macro @MY { @ANDisp }
-
- macro @D @Display { @DP @G @DX | @DP // @DY }
- macro @LD @LeftDisplay { @DP @LG @DX | @DP // @DY }
- macro @ID @IndentedDisplay { @DP @IG @DX | @DP // @DY }
- macro @QD @QuotedDisplay { @DP @IG @DX @IG @DP // @DY }
- macro @CD @CentredDisplay
- @CenteredDisplay { @DP @CG @DX | @DP // @DY }
- macro @RightDisplay { @DP @RG @DX | @DP // @DY }
-
-
- macro @AD @AlignedDisplay { @DP @G @AX | @DP // @AY }
- macro @LAD @LeftAlignedDisplay { @DP @LG @AX | @DP // @AY }
- macro @IAD @IndentedAlignedDisplay { @DP @IG @AX | @DP // @AY }
- macro @QAD @QuotedAlignedDisplay { @DP @IG @AX @IG @DP // @AY }
- macro @CAD @CentredAlignedDisplay
- @CenteredAlignedDisplay { @DP @CG @AX | @DP // @AY }
- macro @RightAlignedDisplay { @DP @RG @AX | @DP // @AY }
-
- macro @ND @NumberedDisplay { @DP @G @DX |1rt @NN @DP // @NY }
- macro @LND @LeftNumberedDisplay { @DP @LG @DX |1rt @NN @DP // @NY }
- macro @IND @IndentedNumberedDisplay { @DP @IG @DX |1rt @NN @DP // @NY }
- macro @QND @QuotedNumberedDisplay { @DP @IG @DX |1rt @QR @DP // @NY }
- macro @CND @CentredNumberedDisplay
- @CenteredNumberedDisplay { @DP @CG @DX |1rt @NN @DP // @NY }
- macro @RightNumberedDisplay { @DP @RG @DX |1rt @NN @DP // @NY }
-
- macro @AND @AlignedNumberedDisplay { @DP @G @AX |1rt @NN @DP // @MY }
- macro @LAND @LeftAlignedNumberedDisplay { @DP @LG @AX |1rt @NN @DP // @MY }
- macro @IAND @IndentedAlignedNumberedDisplay{ @DP @IG @AX |1rt @NN @DP // @MY }
- macro @QAND @QuotedAlignedNumberedDisplay { @DP @IG @AX |1rt @QR @DP // @MY }
- macro @CAND @CentredAlignedNumberedDisplay
- @CenteredAlignedNumberedDisplay{ @DP @CG @AX |1rt @NN @DP // @MY }
- macro @RightAlignedNumberedDisplay { @DP @RG @AX |1rt @NN @DP // @MY }
-
-
- macro @RD @RawDisplay { @G @DX | // @DY }
- macro @RLD @RawLeftDisplay { @LG @DX | // @DY }
- macro @RID @RawIndentedDisplay { @IG @DX | // @DY }
- macro @RQD @RawQuotedDisplay { @IG @DX @IG | // @DY }
- macro @RCD @RawCentredDisplay
- @RawCenteredDisplay { @CG @DX | | // @DY }
- macro @RRD @RawRightDisplay { @RG @DX | // @DY }
-
-
- macro @RAD @RawAlignedDisplay { @G @AX | // @AY }
- macro @RLAD @RawLeftAlignedDisplay { @LG @AX | // @AY }
- macro @RIAD @RawIndentedAlignedDisplay { @IG @AX | // @AY }
- macro @RQAD @RawQuotedAlignedDisplay { @IG @AX @IG | // @AY }
- macro @RCAD @RawCentredAlignedDisplay
- @RawCenteredAlignedDisplay { @CG @AX | // @AY }
- macro @RRAD @RawRightAlignedDisplay { @RG @AX | // @AY }
-
- macro @RND @RawNumberedDisplay { @G @DX |1rt @NN // @NY }
- macro @RLND @RawLeftNumberedDisplay { @LG @DX |1rt @NN // @NY }
- macro @RIND @RawIndentedNumberedDisplay { @IG @DX |1rt @NN // @NY }
- macro @RQND @RawQuotedNumberedDisplay { @IG @DX |1rt @QR // @NY }
- macro @RCND @RawCentredNumberedDisplay
- @RawCenteredNumberedDisplay { @CG @DX |1rt @NN // @NY }
- macro @RRND @RawRightNumberedDisplay { @RG @DX |1rt @NN // @NY }
-
- macro @RAND @RawAlignedNumberedDisplay { @G @AX |1rt @NN // @MY }
- macro @RLAND @RawLeftAlignedNumberedDisplay { @LG @AX |1rt @NN // @MY }
- macro @RIAND @RawIndentedAlignedNumberedDisplay { @IG @AX |1rt @NN // @MY }
- macro @RQAND @RawQuotedAlignedNumberedDisplay { @IG @AX |1rt @QR // @MY }
- macro @RCAND @RawCentredAlignedNumberedDisplay
- @RawCenteredAlignedNumberedDisplay { @CG @AX |1rt @NN // @MY }
- macro @RRAND @RawRightAlignedNumberedDisplay{ @RG @AX |1rt @NN // @MY }
-
-
- ###########################################################################
- # #
- # Lists and raw lists. #
- # #
- ###########################################################################
-
-
- def @ItemPlace { @Galley }
- def @ParagraphItemPlace { @Galley }
- def @InterruptItemPlace { @Galley }
- def @NewPageItemPlace { @Galley }
- def @TagPlace { @Galley }
- def @EndListPlace { @Galley }
-
- def @RawList
- named style right num { num }
- named type right num { num }
- named gap { @ListGap }
- named indent { @ListIndent }
- named itemindent { 0c }
- named rightindent { @ListRightIndent }
- named labelwidth { @ListLabelWidth }
- named labelright { @ListLabelRight }
- named labelrightgap { @ListLabelRightGap }
- named start { 1 }
- named font { @ListFont }
- named break { @ListBreak }
- named colnum { 1 }
- named colgap { 1.0c }
- named colheight { 5.0c }
- {
- def @MakeList right num
- {
- def @NormalItem
- {
- def @Align right x
- {
- labelright @Case {
- { Yes yes } @Yield { labelwidth @Wide { |1rt @OneCol { x |labelrightgap } } }
- else @Yield x
- }
- }
-
- |indent
- labelwidth @Wide {
- # @NumberMarker @Value {style num} {style num} &0io
- # @NumberMarker @Value {num} {style type num} &0io
- @NumberMarker @Value {type num} {@Align style type num} &0io
- }
- |itemindent break @Break font @Font @ItemPlace |rightindent
- //gap @MakeList @NotRevealed @Next num
- }
-
- def @ParagraphItem
- {
- @NumberMarker @Value {num} {style type num} &0io
- |indent break @Break font @Font @ParagraphItemPlace |rightindent
- //gap @MakeList @NotRevealed @Next num
- }
-
- def @InterruptItem
- {
- @InterruptItemPlace
- //gap @MakeList @NotRevealed num
- }
-
- def @NewPageItem
- {
- @NewPageItemPlace
- //1.1b @MakeList @NotRevealed num
- }
-
- @OneOf
- {
- @NormalItem
- @ParagraphItem
- @InterruptItem
- @NewPageItem
- }
- }
-
- def @ListGalleyPlace { @Galley }
-
- def @ListGalley into { @ListGalleyPlace&&preceding }
- {
- @MakeList start // @EndListPlace
- }
-
- def @ColPieceTwo
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceThree
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceFour
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceFive
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- colnum @Case
- {
- 1 @Yield @ListGalleyPlace
- 2 @Yield @ColPieceTwo
- 3 @Yield @ColPieceThree
- 4 @Yield @ColPieceFour
- 5 @Yield @ColPieceFive
- else @Yield @ListGalleyPlace
- }
- //
- @ListGalley
- }
-
- def listitem into { @ItemPlace&&preceding }
- named @Tag {}
- right x
- {
- @NumberMarker&&preceding @Tagged @Tag
- // x
- // @PageMark @Tag # weird placement, but @PageMark is definite now
- }
-
- def paragraphitem
- named @Tag {}
- named style right tag { @ParaIndent @Wide & tag. &2s }
- right x
- {
-
- def sendparagraphitem into { @ParagraphItemPlace&&preceding }
- named tag { @Tag }
- {
- @NumberMarker&&preceding @Tagged @Tag
- // { style @NumberMarker&&@Tag @Open { @Value } } @Insert x
- // @PageMark @Tag
- }
-
- sendparagraphitem
- }
-
- def droplistitem into { @ItemPlace&&preceding }
- named @Tag {}
- right x
- {
- @NumberMarker&&preceding @Tagged @Tag
- // @PageMark @Tag
- //1vx x
- }
-
- def tagitem into { @ItemPlace&&preceding }
- named tag {}
- right x
- {
- def sendtag into { @TagPlace&&preceding } { tag }
-
- sendtag // x
- }
-
- def droptagitem into { @ItemPlace&&preceding }
- named tag {}
- right x
- {
- def sendtag into { @TagPlace&&preceding } { tag }
-
- sendtag // //1vxu x
- }
-
- def endlist force into { @EndListPlace&&preceding } {}
-
- def listnewpage into { @NewPageItemPlace&&preceding } {}
-
- def listinterruptitem into { @InterruptItemPlace&&preceding }
- right x
- {
- x
- }
-
-
- macro @LI @ListItem { // listitem }
- macro @PI @ParagraphItem { // paragraphitem }
- macro @LII @ListInterruptItem { // listinterruptitem }
- macro @LNP @ListNewPage { // listnewpage }
- macro @DLI @DropListItem { // droplistitem }
- macro @TI @TagItem { // tagitem tag }
- macro @DTI @DropTagItem { // droptagitem tag }
- macro @REL @RawEndList { // & endlist // }
- macro @EL @EndList { // & endlist @LOP }
-
-
- macro @RLL @RawLeftList { @RawList style {}
- labelwidth { 0c } }
- macro @RIL @RawIndentedList { @RawList style {} }
- macro @RQL @RawQuotedList { @RawList style {}
- rightindent {@DisplayIndent}}
- macro @RCL @RawCentredList { @RawList style {}
- labelwidth {0c}
- itemindent {0.5rt} }
- macro @RawCenteredList { @RawCentredList }
- macro @RNL @RawNumberedList { @RawList style { num. } }
- macro @RPNL @RawParenNumberedList { @RawList style { (num) } }
- macro @RRL @RawRomanList { @RawList type { @Roman&&num }
- style { num. } }
- macro @RPRL @RawParenRomanList { @RawList type { @Roman&&num }
- style { (num) } }
- macro @RUCRL @RawUCRomanList { @RawList type { @UCRoman&&num }
- style { num. } }
- macro @RPUCRL @RawParenUCRomanList { @RawList type { @UCRoman&&num }
- style { (num) } }
- macro @RAL @RawAlphaList { @RawList type { @Alpha&&num }
- style { num. } }
- macro @RPAL @RawParenAlphaList { @RawList type { @Alpha&&num }
- style { (num) } }
- macro @RUCAL @RawUCAlphaList { @RawList type { @UCAlpha&&num }
- style { num. } }
- macro @RPUCAL @RawParenUCAlphaList { @RawList type { @UCAlpha&&num }
- style { (num) } }
- macro @RBL @RawBulletList { @RawList style { @Bullet } }
- macro @RSL @RawStarList { @RawList style { @Star } }
- macro @RDL @RawDashList { @RawList style { -- } }
- macro @RTL @RawTaggedList { @RawList type { @TagPlace } }
- macro @RWTL @RawWideTaggedList { @RawList type { @TagPlace }
- labelwidth { @WideIndent } }
- macro @RVWTL @RawVeryWideTaggedList{ @RawList type { @TagPlace }
- labelwidth { @VeryWideIndent } }
-
-
- macro @L @List { @LOP @RawList }
- macro @LL @LeftList { @LOP @RawLeftList }
- macro @IL @IndentedList { @LOP @RawIndentedList }
- macro @QL @QuotedList { @LOP @RawQuotedList }
- macro @CL @CentredList { @LOP @RawCentredList }
- macro @CenteredList { @LOP @RawCenteredList }
- macro @NL @NumberedList { @LOP @RawNumberedList }
- macro @PNL @ParenNumberedList { @LOP @RawParenNumberedList }
- macro @RL @RomanList { @LOP @RawRomanList }
- macro @PRL @ParenRomanList { @LOP @RawParenRomanList }
- macro @UCRL @UCRomanList { @LOP @RawUCRomanList }
- macro @PUCRL @ParenUCRomanList { @LOP @RawParenUCRomanList }
- macro @AL @AlphaList { @LOP @RawAlphaList }
- macro @PAL @ParenAlphaList { @LOP @RawParenAlphaList }
- macro @UCAL @UCAlphaList { @LOP @RawUCAlphaList }
- macro @PUCAL @ParenUCAlphaList { @LOP @RawParenUCAlphaList }
- macro @BL @BulletList { @LOP @RawBulletList }
- macro @SL @StarList { @LOP @RawStarList }
- macro @DL @DashList { @LOP @RawDashList }
- macro @TL @TaggedList { @LOP @RawTaggedList }
- macro @WTL @WideTaggedList { @LOP @RawWideTaggedList }
- macro @VWTL @VeryWideTaggedList { @LOP @RawVeryWideTaggedList }
-
-@End @BasicSetup
diff --git a/include/include/bsf.lpg b/include/include/bsf.lpg
deleted file mode 100644
index 94a3ba8..0000000
--- a/include/include/bsf.lpg
+++ /dev/null
@@ -1,147 +0,0 @@
-%%BeginResource: procset LoutBasicSetup
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @BasicSetup %
-% %
-% This file has been placed in the public domain by its author, %
-% Jeffrey H. Kingston %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% width height linethickness louteuro -
-% draw a Euro symbol of this width and height with this line thickness
-/louteuro {
- 20 dict begin
- /eurothick exch def
- /euroheight exch def
- /eurowidth exch def
- /eurostrokewidth euroheight 0.8 mul def
- /eurostep eurothick 60 cos mul 60 sin div def
- /eurotheta 40 def
-
- % llx lly width thickness louteurobox -
- % draw angled box starting at (llx, lly) with given width and thickness
- /louteurobox
- {
- /euroboxthick exch def
- /euroboxwidth exch def
- newpath moveto euroboxwidth 0 rlineto
- eurostep euroboxthick rlineto
- euroboxwidth neg 0 rlineto closepath fill
- } def
-
- % lower cross stroke
- 0 euroheight 2 div eurothick 1.5 mul sub
- eurostrokewidth eurothick louteurobox
-
- % upper cross stroke
- 0 euroheight 2 div eurothick 0.5 mul add
- eurostrokewidth eurostep 2 mul add eurothick louteurobox
-
- % circular part
- /eurohctr eurowidth euroheight 2 div eurotheta cos mul sub def
- /eurovctr euroheight 2 div def
- newpath
- eurohctr eurovctr eurovctr eurotheta 350 eurotheta sub arc
- eurohctr eurovctr eurovctr eurothick sub 365 eurotheta sub eurotheta arcn
- closepath fill
- end
-} def
-
-% path for @FullWidthRule symbol
-/LoutRule
-{ 0 0 moveto xsize 0 lineto
-} def
-
-% path for @Box symbol
-/LoutBox
-{ 0 0 moveto xsize 0 lineto
- xsize ysize lineto 0 ysize lineto
- closepath
-} def
-
-% path for @CurveBox symbol
-/LoutCurveBox
-{ xmark 0 moveto
- xsize xmark sub xmark xmark 270 360 arc
- xsize xmark sub ysize xmark sub xmark 0 90 arc
- xmark ysize xmark sub xmark 90 180 arc
- xmark xmark xmark 180 270 arc
- closepath
-} def
-
-% path for @ShadowBox symbol
-/LoutShadowBox
-{ xmark 2 mul 0 moveto xsize 0 lineto
- xsize ysize xmark 2 mul sub lineto
- xsize xmark sub ysize xmark 2 mul sub lineto
- xsize xmark sub xmark lineto
- xmark 2 mul xmark lineto
- closepath
-} def
-
-% set up dictionary containing margin note data: parity LoutMargSet -
-/LoutMargSet
-{ /LoutMargDict 12 dict def
- LoutMargDict begin
- /parity exch def
- /matr matrix currentmatrix def
- /rightx xsize def
- /lefty ysize def % highest allowable point for top of next left note
- /righty ysize def % highest allowable point for top of next right note
- /max { 2 copy gt { pop } { exch pop } ifelse } def
- /min { 2 copy lt { pop } { exch pop } ifelse } def
- end
-} def
-
-%translate coordinate system for marginal notes: type LoutMargShift -
-% where type 0 is left margin, 1 is right margin, 2 is outer, 3 is inner
-/LoutMargShift
-{ LoutMargDict begin
-
- % y coordinate of top of note, in margin coords, before vertical adjust
- 0 ysize transform matr itransform exch pop
-
- % decide whether left or right margin based on type and parity
- exch [ 0 1 parity 1 parity sub ] exch get 0 eq
- {
- % left margin: adjust top of note downwards if overlaps previous note
- lefty min
-
- % bottom of note is new lefty position and also translate position
- ysize sub dup /lefty exch def
-
- % want right edge of note at coordinate zero
- xsize neg exch
- }
- {
- % right margin: adjust top of note downwards if overlaps previous note
- righty min
-
- % bottom of note is new righty position and also translate position
- ysize sub dup /righty exch def
-
- % want left edge of note at coordinate rightx
- rightx exch
- } ifelse
-
- % stack now contains coord of bottom left corner in margin coordinates
- matr setmatrix translate
- end
-} def
-
-% create LoutPageDict with left, right, foot, top for @Place symbol users
-/LoutPageSet
-{
- /LoutPageDict 5 dict def
- LoutPageDict begin
- /matr matrix currentmatrix def
- /left 0 def
- /right xsize def
- /foot 0 def
- /top ysize def
- end
-
-} def
-
-%%EndResource
diff --git a/include/include/coltex b/include/include/coltex
deleted file mode 100644
index 079b759..0000000
--- a/include/include/coltex
+++ /dev/null
@@ -1,434 +0,0 @@
-
-###########################################################################
-# #
-# coltex #
-# #
-# Jeffrey H. Kingston #
-# 30 October 2002 #
-# #
-# Include file providing @ColourCommand and @TextureCommand symbols. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-@SysInclude { lengths } # @PSLengths (needed for @TextureCommand)
-
-
-###########################################################################
-# #
-# @ColourCommand #
-# #
-# Jeff Kingston #
-# 19 October 2001 #
-# Updated for compatibility with textures 28 October 2002. #
-# #
-# @ColourCommand converts a colour expressed in a manner that the #
-# ordinary user can comprehend into the PostScript or PDF command #
-# needed to obtain that colour, suitable for passing to @SetColour #
-# or including in the left parameter of @Graphic. #
-# #
-# This symbol is needed in various places so I've taken the coward's #
-# way out and @SysIncluded it at those places. #
-# #
-# Examples of behaviour for the PostScript back end: #
-# #
-# Parameter Result #
-# ------------------------------------------------------------ #
-# black "0.0 0.0 0.0 LoutSetRGBColor" #
-# darkblue "0.0 0.0 0.5 LoutSetRGBColor" #
-# white "1.0 1.0 1.0 LoutSetRGBColor" #
-# none "" #
-# nochange "" #
-# "" "" #
-# rgb <red> <blue> <green> "<red> <blue> <green> LoutSetRGBColor" #
-# cmyk <c> <m> <y> <k> "<c> <m> <y> <k> LoutSetCMYKColor" #
-# ------------------------------------------------------------ #
-# #
-# See the Expert's Guide for the use of LoutSetRGBColor and #
-# LoutSetCMYKColor rather than setrgbcolor and setcmykcolor. #
-# #
-# @ColourCommand also does the right thing for the PDF back end; #
-# its result is always empty for the PlainText back end. #
-# #
-###########################################################################
-
-def @ColourCommand right @Body
-{
- def @RGB right coords
- {
- @BackEnd @Case {
- PostScript @Yield { coords "LoutSetRGBColor" }
- PDF @Yield { coords "rg" coords "RG" }
- PlainText @Yield ""
- }
- }
-
- def @CMYK right coords
- {
- @BackEnd @Case {
- PostScript @Yield { coords "LoutSetCMYKColor" }
- PDF @Yield { coords "k" coords "K" }
- PlainText @Yield ""
- }
- }
-
- def @RGBElse right alt
- {
- { "rgb" @Common @Body } @Case {
- "rgb" @Yield @RGB { "rgb" @Rump @Body }
- else @Yield alt
- }
- }
-
- def @CMYKElse right alt
- {
- { "cmyk" @Common @Body } @Case {
- "cmyk" @Yield @CMYK { "cmyk" @Rump @Body }
- else @Yield alt
- }
- }
-
- def @NoChangeElse right alt
- {
- @Body @Case {
- { "nochange" "none" "" } @Yield ""
- else @Yield alt
- }
- }
-
- def @RGBCoords
- {
- @Body @Case {
- black @Yield { 0.0 0.0 0.0 }
- darkblue @Yield { 0.0 0.0 0.5 }
- blue @Yield { 0.0 0.0 1.0 }
- lightblue @Yield { 0.5 0.5 1.0 }
- darkgreen @Yield { 0.0 0.5 0.0 }
- green @Yield { 0.0 1.0 0.0 }
- lightgreen @Yield { 0.5 1.0 0.5 }
- darkred @Yield { 0.5 0.0 0.0 }
- red @Yield { 1.0 0.0 0.0 }
- lightred @Yield { 1.0 0.5 0.5 }
- darkcyan @Yield { 0.0 0.5 0.5 }
- cyan @Yield { 0.0 1.0 1.0 }
- lightcyan @Yield { 0.5 1.0 1.0 }
- darkmagenta @Yield { 0.5 0.0 0.5 }
- magenta @Yield { 1.0 0.0 1.0 }
- lightmagenta @Yield { 1.0 0.5 1.0 }
- darkyellow @Yield { 0.5 0.5 0.0 }
- yellow @Yield { 1.0 1.0 0.0 }
- lightyellow @Yield { 1.0 1.0 0.5 }
- darkgray @Yield { 0.2 0.2 0.2 }
- gray @Yield { 0.5 0.5 0.5 }
- lightgray @Yield { 0.8 0.8 0.8 }
- darkgrey @Yield { 0.2 0.2 0.2 }
- grey @Yield { 0.5 0.5 0.5 }
- lightgrey @Yield { 0.8 0.8 0.8 }
- white @Yield { 1.0 1.0 1.0 }
- }
- }
-
- @RGBElse @CMYKElse @NoChangeElse @RGB @RGBCoords
-}
-
-
-###########################################################################
-# #
-# @TextureCommand #
-# #
-# @TextureCommand converts a texture expressed in a manner that the #
-# ordinary user can comprehend into the PostScript texture dictionary #
-# needed to obtain that texture, suitable for passing to @SetTexture #
-# or including in the left parameter of @Graphic. #
-# #
-###########################################################################
-
-def @TextureCommand
- left type
- named scale { 1 }
- named hscale { 1 }
- named vscale { 1 }
- import @PSLengths named angle { 0d }
- import @PSLengths named hshift { 0i }
- import @PSLengths named vshift { 0i }
- import @PSLengths named width { "dft" }
- import @PSLengths named height { "dft" }
- import @PSLengths named gap { "dft" }
- import @PSLengths named radius { "dft" }
- import @PSLengths named linewidth { "dft" }
- named font { "dft" }
- import @PSLengths named size { "dft" }
- named value { "dft" }
-{
- def @Dft left x right y
- {
- y @Case {
- "dft" @Yield x
- else @Yield y
- }
- }
-
- def @SolidTexture
- {
- "null LoutSetTexture"
- }
-
- def @StripedTexture
- {
- def @Width { "1 pt" @Dft width }
- def @Gap { "1 pt" @Dft gap }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Width @Gap "add dup ]"
- @Width @Gap "add dup"
- "{"
- "pop 0 0 moveto"
- @Width @Gap "add 0 lineto"
- "0" @Width "rlineto"
- "0" @Width "lineto"
- "closepath fill"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @GridTexture
- {
- def @Width { "1 pt" @Dft width }
- def @Gap { "1 pt" @Dft gap }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Width @Gap "add dup ]"
- @Width @Gap "add dup"
- "{"
- "pop 0 0 moveto"
- @Width @Gap "add 0 lineto"
- "0" @Width "rlineto"
- @Gap "neg 0 rlineto"
- "0" @Gap "rlineto"
- @Width "neg 0 rlineto"
- "closepath fill"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @DottedTexture
- {
- def @Radius { "0.5 pt" @Dft radius }
- def @Gap { "2 pt" @Dft gap }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Gap "dup ]"
- @Gap "dup"
- "{"
- "pop" @Gap "2 div dup" @Radius "0 360 arc fill"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @ChessboardTexture
- {
- def @Width { "2 pt" @Dft width }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Width "2 mul dup ]"
- @Width "2 mul dup"
- "{"
- "pop 0 0 moveto"
- @Width "0 rlineto"
- "0" @Width "rlineto"
- @Width "neg 0 rlineto"
- closepath
- @Width @Width "moveto"
- @Width "0 rlineto"
- "0" @Width "rlineto"
- @Width "neg 0 rlineto"
- "closepath fill"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @BrickworkTexture
- {
- def @Width { "6 pt" @Dft width }
- def @Height { "2 pt" @Dft height }
- def @Linewidth { "0.5 pt" @Dft linewidth }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Width @Height "2 mul ]"
- @Width @Height "2 mul"
- "{"
- "pop 0 0 moveto" @Width "0 rlineto"
- "0" @Height "moveto" @Width "0 rlineto"
- "0" @Height "2 mul moveto" @Width "0 rlineto"
- "0 0 moveto 0" @Height "rlineto"
- @Width "0 moveto 0" @Height "rlineto"
- @Width "2 div" @Height "moveto 0" @Height "rlineto"
- "[] 0 setdash" @Linewidth "setlinewidth stroke"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @HoneycombTexture
- {
- def @R { "2.0 pt" @Dft radius }
- def @Linewidth { "0.5 pt" @Dft linewidth }
-
- def @X { @R "0.5 mul" }
- def @Y { @R "0.886 mul" }
- def @NegX { @X "neg" }
- def @NegY { @Y "neg" }
- def @NegR { @R "neg" }
- def @BoxWidth { @R @X "add 2 mul" }
- def @BoxHeight { @Y "2 mul" }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @BoxWidth @BoxHeight "]"
- @BoxWidth @BoxHeight
- "{"
- "pop"
- @X "0 moveto"
- @R "0 rlineto"
- @X @Y "rlineto"
- @R "0 rlineto"
- @NegR "0 rlineto"
- @NegX @Y "rlineto"
- @NegR "0 rlineto"
- @NegX @NegY "rlineto"
- "closepath"
- "[] 0 setdash" @Linewidth "setlinewidth stroke"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @TriangularTexture
- {
- def @R { "4.0 pt" @Dft radius }
- def @Linewidth { "0.5 pt" @Dft linewidth }
-
- def @X { @R "0.5 mul" }
- def @Y { @R "0.886 mul" }
- def @BoxWidth { @R }
- def @BoxHeight { @Y "2 mul" }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @BoxWidth @BoxHeight "]"
- @BoxWidth @BoxHeight
- "{"
- "pop"
- "0 0 moveto"
- @R "0 lineto"
- "0" @Y "2 mul lineto"
- @R "0 rlineto"
- "closepath"
- "0" @Y "moveto"
- @R "0 rlineto"
- "[] 0 setdash" @Linewidth "setlinewidth stroke"
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- def @StringTexture
- {
- def @Width { "12 pt" @Dft width }
- def @Height { "12 pt" @Dft height }
- def @Font { "Times-Roman" @Dft font }
- def @Size { "10 pt" @Dft size }
- def @Value { "*" @Dft value }
-
- scale hscale vscale angle hshift vshift
- "2"
- "[ 0 0" @Width @Height "]"
- @Width @Height
- "{"
- "pop /"@Font "findfont" @Size "scalefont setfont"
- "("@Value") dup false 0 0 moveto charpath flattenpath"
- "pathbbox pop pop neg exch neg exch moveto show"
-
- "}"
- "LoutMakeTexture LoutSetTexture"
- }
-
- type @Case
- {
- "solid" @Yield @SolidTexture
- "striped" @Yield @StripedTexture
- "grid" @Yield @GridTexture
- "dotted" @Yield @DottedTexture
- "chessboard" @Yield @ChessboardTexture
- "brickwork" @Yield @BrickworkTexture
- "honeycomb" @Yield @HoneycombTexture
- "triangular" @Yield @TriangularTexture
- "string" @Yield @StringTexture
- else @Yield type
- }
-}
-
-###########################################################################
-# #
-# @TextureImport #
-# #
-# Used as an import for texture options. #
-# #
-# We cleverly replace @Texture by nothing inside those options, #
-# and replace the known types by themselves plus @TextureCommand. #
-# This allows the user to type #
-# #
-# texture { striped } #
-# texture { striped @Texture } #
-# texture { striped angle { 45d } } #
-# texture { striped @Texture angle { 45d } } #
-# #
-# and it all winds up being a call to @TextureCommand. #
-# #
-###########################################################################
-
-export
-
- solid
- striped
- grid
- dotted
- chessboard
- brickwork
- honeycomb
- triangular
- string
- @Texture
-
-def @TextureImport
-{
- macro solid { "solid" @TextureCommand }
- macro striped { "striped" @TextureCommand }
- macro grid { "grid" @TextureCommand }
- macro dotted { "dotted" @TextureCommand }
- macro chessboard { "chessboard" @TextureCommand }
- macro brickwork { "brickwork" @TextureCommand }
- macro honeycomb { "honeycomb" @TextureCommand }
- macro triangular { "triangular" @TextureCommand }
- macro string { "string" @TextureCommand }
-
- macro @Texture { }
-}
diff --git a/include/include/cprint b/include/include/cprint
deleted file mode 100644
index 95eb57f..0000000
--- a/include/include/cprint
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for C and C++ program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { cprintf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @CPSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # blanknumbered { Yes } # No, NoPrint, or Yes
- # style { fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # varying mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/cprintf b/include/include/cprintf
deleted file mode 100644
index 4c2b77e..0000000
--- a/include/include/cprintf
+++ /dev/null
@@ -1,446 +0,0 @@
-
-###############################################################################
-# #
-# Lout @CPSetup package for formatting C and C++ programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @CP
-def @CPSetup
- named pipe { } # pipe through this
- named numbered { No } # numbered lines?
- named blanknumbered { Yes } # blanks numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @CP
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lC" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lC" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @CP
-
-@End @CPSetup
diff --git a/include/include/diag b/include/include/diag
deleted file mode 100644
index fd0fe4a..0000000
--- a/include/include/diag
+++ /dev/null
@@ -1,669 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for diagram printing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { diagf } line #
-# #
-# This line causes Lout to read the definitions for diagrams, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { diagf }
-
-
-###############################################################################
-# #
-# The @DiagSetup @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DiagSetup
- # save { no }
- # maxlabels { 200 }
- # title { (none) }
- # titleformat { Slope @Font @Title //0.7f ||0.35f @Body }
-
- #############################################################################
- # #
- # Node options #
- # #
- #############################################################################
-
- # outline { box }
- # margin { 0.6f }
- # shadow { 0.4f }
- # sides { 3 }
- # angle { "dup 180 exch div" } # 180d / sides
- # translate { }
- # outlinestyle { solid }
- # outlinedashlength { 0.2f }
- # outlinewidth { thin }
- # outlinecolour { nochange }
- # paint { none }
- # texture { solid }
- # font { }
- # break { }
- # format { @Body }
- # valign { ctr }
- # vsize { }
- # vindent { ctr }
- # vstrut { no }
- # vmargin { }
- # topmargin { }
- # footmargin { }
- # halign { ctr }
- # hsize { }
- # hindent { ctr }
- # hstrut { no }
- # hmargin { }
- # leftmargin { }
- # rightmargin { }
- # nodelabel { }
- # nodelabelmargin { 0.2f }
- # nodelabelfont { "-2p" }
- # nodelabelbreak { ragged nohyphen }
- # nodelabelformat { @Body }
- # nodelabelpos { }
- # nodelabelangle { horizontal }
- # nodelabelprox { outside }
- # nodelabelctr { no }
- # nodelabeladjust { 0 0 }
- # alabel { }
- # alabelmargin { }
- # alabelfont { }
- # alabelbreak { }
- # alabelformat { }
- # alabelpos { NE }
- # alabelangle { }
- # alabelprox { }
- # alabelctr { }
- # alabeladjust { }
- # blabel { }
- # blabelmargin { }
- # blabelfont { }
- # blabelbreak { }
- # blabelformat { }
- # blabelpos { NW }
- # blabelangle { }
- # blabelprox { }
- # blabelctr { }
- # blabeladjust { }
- # clabel { }
- # clabelmargin { }
- # clabelfont { }
- # clabelbreak { }
- # clabelformat { }
- # clabelpos { SW }
- # clabelangle { }
- # clabelprox { }
- # clabelctr { }
- # clabeladjust { }
- # dlabel { }
- # dlabelmargin { }
- # dlabelfont { }
- # dlabelbreak { }
- # dlabelformat { }
- # dlabelpos { SE }
- # dlabelangle { }
- # dlabelprox { }
- # dlabelctr { }
- # dlabeladjust { }
-
- #############################################################################
- # #
- # @ANode options #
- # #
- #############################################################################
-
- # aoutline { box }
- # amargin { 0.6f }
- # ashadow { 0.4f }
- # asides { 3 }
- # aangle { "dup 180 exch div" } # 180d / sides
- # atranslate { }
- # aoutlinestyle { solid }
- # aoutlinedashlength { 0.2f }
- # aoutlinewidth { thin }
- # aoutlinecolour { nochange }
- # apaint { none }
- # atexture { solid }
- # afont { }
- # abreak { }
- # aformat { @Body }
- # avalign { ctr }
- # avsize { }
- # avindent { ctr }
- # avstrut { no }
- # avmargin { }
- # atopmargin { }
- # afootmargin { }
- # ahalign { ctr }
- # ahsize { }
- # ahindent { ctr }
- # ahstrut { no }
- # ahmargin { }
- # aleftmargin { }
- # arightmargin { }
- # anodelabel { }
- # anodelabelmargin { 0.2f }
- # anodelabelfont { "-2p" }
- # anodelabelbreak { ragged nohyphen }
- # anodelabelformat { @Body }
- # anodelabelpos { }
- # anodelabelangle { horizontal }
- # anodelabelprox { outside }
- # anodelabelctr { no }
- # anodelabeladjust { 0 0 }
- # aalabel { }
- # aalabelmargin { }
- # aalabelfont { }
- # aalabelbreak { }
- # aalabelformat { }
- # aalabelpos { NE }
- # aalabelangle { }
- # aalabelprox { }
- # aalabelctr { }
- # aalabeladjust { }
- # ablabel { }
- # ablabelmargin { }
- # ablabelfont { }
- # ablabelbreak { }
- # ablabelformat { }
- # ablabelpos { NW }
- # ablabelangle { }
- # ablabelprox { }
- # ablabelctr { }
- # ablabeladjust { }
- # aclabel { }
- # aclabelmargin { }
- # aclabelfont { }
- # aclabelbreak { }
- # aclabelformat { }
- # aclabelpos { SW }
- # aclabelangle { }
- # aclabelprox { }
- # aclabelctr { }
- # aclabeladjust { }
- # adlabel { }
- # adlabelmargin { }
- # adlabelfont { }
- # adlabelbreak { }
- # adlabelformat { }
- # adlabelpos { SE }
- # adlabelangle { }
- # adlabelprox { }
- # adlabelctr { }
- # adlabeladjust { }
-
- #############################################################################
- # #
- # @BNode options #
- # #
- #############################################################################
-
- # boutline { box }
- # bmargin { 0.6f }
- # bshadow { 0.4f }
- # bsides { 3 }
- # bangle { "dup 180 exch div" } # 180d / sides
- # btranslate { }
- # boutlinestyle { solid }
- # boutlinedashlength { 0.2f }
- # boutlinewidth { thin }
- # boutlinecolour { nochange }
- # bpaint { none }
- # btexture { solid }
- # bfont { }
- # bbreak { }
- # bformat { @Body }
- # bvalign { ctr }
- # bvsize { }
- # bvindent { ctr }
- # bvstrut { no }
- # bvmargin { }
- # btopmargin { }
- # bfootmargin { }
- # bhalign { ctr }
- # bhsize { }
- # bhindent { ctr }
- # bhstrut { no }
- # bhmargin { }
- # bleftmargin { }
- # brightmargin { }
- # bnodelabel { }
- # bnodelabelmargin { 0.2f }
- # bnodelabelfont { "-2p" }
- # bnodelabelbreak { ragged nohyphen }
- # bnodelabelformat { @Body }
- # bnodelabelpos { }
- # bnodelabelangle { horizontal }
- # bnodelabelprox { outside }
- # bnodelabelctr { no }
- # bnodelabeladjust { 0 0 }
- # balabel { }
- # balabelmargin { }
- # balabelfont { }
- # balabelbreak { }
- # balabelformat { }
- # balabelpos { NE }
- # balabelangle { }
- # balabelprox { }
- # balabelctr { }
- # balabeladjust { }
- # bblabel { }
- # bblabelmargin { }
- # bblabelfont { }
- # bblabelbreak { }
- # bblabelformat { }
- # bblabelpos { NW }
- # bblabelangle { }
- # bblabelprox { }
- # bblabelctr { }
- # bblabeladjust { }
- # bclabel { }
- # bclabelmargin { }
- # bclabelfont { }
- # bclabelbreak { }
- # bclabelformat { }
- # bclabelpos { SW }
- # bclabelangle { }
- # bclabelprox { }
- # bclabelctr { }
- # bclabeladjust { }
- # bdlabel { }
- # bdlabelmargin { }
- # bdlabelfont { }
- # bdlabelbreak { }
- # bdlabelformat { }
- # bdlabelpos { SE }
- # bdlabelangle { }
- # bdlabelprox { }
- # bdlabelctr { }
- # bdlabeladjust { }
-
- #############################################################################
- # #
- # @CNode options #
- # #
- #############################################################################
-
- # coutline { box }
- # cmargin { 0.6f }
- # cshadow { 0.4f }
- # csides { 3 }
- # cangle { "dup 180 exch div" } # 180d / sides
- # ctranslate { }
- # coutlinestyle { solid }
- # coutlinedashlength { 0.2f }
- # coutlinewidth { thin }
- # coutlinecolour { nochange }
- # cpaint { none }
- # ctexture { solid }
- # cfont { }
- # cbreak { }
- # cformat { @Body }
- # cvalign { ctr }
- # cvsize { }
- # cvindent { ctr }
- # cvstrut { no }
- # cvmargin { }
- # ctopmargin { }
- # cfootmargin { }
- # chalign { ctr }
- # chsize { }
- # chindent { ctr }
- # chstrut { no }
- # chmargin { }
- # cleftmargin { }
- # crightmargin { }
- # cnodelabel { }
- # cnodelabelmargin { 0.2f }
- # cnodelabelfont { "-2p" }
- # cnodelabelbreak { ragged nohyphen }
- # cnodelabelformat { @Body }
- # cnodelabelpos { }
- # cnodelabelangle { horizontal }
- # cnodelabelprox { outside }
- # cnodelabelctr { no }
- # cnodelabeladjust { 0 0 }
- # calabel { }
- # calabelmargin { }
- # calabelfont { }
- # calabelbreak { }
- # calabelformat { }
- # calabelpos { NE }
- # calabelangle { }
- # calabelprox { }
- # calabelctr { }
- # calabeladjust { }
- # cblabel { }
- # cblabelmargin { }
- # cblabelfont { }
- # cblabelbreak { }
- # cblabelformat { }
- # cblabelpos { NW }
- # cblabelangle { }
- # cblabelprox { }
- # cblabelctr { }
- # cblabeladjust { }
- # cclabel { }
- # cclabelmargin { }
- # cclabelfont { }
- # cclabelbreak { }
- # cclabelformat { }
- # cclabelpos { SW }
- # cclabelangle { }
- # cclabelprox { }
- # cclabelctr { }
- # cclabeladjust { }
- # cdlabel { }
- # cdlabelmargin { }
- # cdlabelfont { }
- # cdlabelbreak { }
- # cdlabelformat { }
- # cdlabelpos { SE }
- # cdlabelangle { }
- # cdlabelprox { }
- # cdlabelctr { }
- # cdlabeladjust { }
-
- #############################################################################
- # #
- # @DNode options #
- # #
- #############################################################################
-
- # doutline { box }
- # dmargin { 0.6f }
- # dshadow { 0.4f }
- # dsides { 3 }
- # dangle { "dup 180 exch div" } # 180d / sides
- # dtranslate { }
- # doutlinestyle { solid }
- # doutlinedashlength { 0.2f }
- # doutlinewidth { thin }
- # doutlinecolour { nochange }
- # dpaint { none }
- # dtexture { solid }
- # dfont { }
- # dbreak { }
- # dformat { @Body }
- # dvalign { ctr }
- # dvsize { }
- # dvindent { ctr }
- # dvstrut { no }
- # dvmargin { }
- # dtopmargin { }
- # dfootmargin { }
- # dhalign { ctr }
- # dhsize { }
- # dhindent { ctr }
- # dhstrut { no }
- # dhmargin { }
- # dleftmargin { }
- # drightmargin { }
- # dnodelabel { }
- # dnodelabelmargin { 0.2f }
- # dnodelabelfont { "-2p" }
- # dnodelabelbreak { ragged nohyphen }
- # dnodelabelformat { @Body }
- # dnodelabelpos { }
- # dnodelabelangle { horizontal }
- # dnodelabelprox { outside }
- # dnodelabelctr { no }
- # dnodelabeladjust { 0 0 }
- # dalabel { }
- # dalabelmargin { }
- # dalabelfont { }
- # dalabelbreak { }
- # dalabelformat { }
- # dalabelpos { NE }
- # dalabelangle { }
- # dalabelprox { }
- # dalabelctr { }
- # dalabeladjust { }
- # dblabel { }
- # dblabelmargin { }
- # dblabelfont { }
- # dblabelbreak { }
- # dblabelformat { }
- # dblabelpos { NW }
- # dblabelangle { }
- # dblabelprox { }
- # dblabelctr { }
- # dblabeladjust { }
- # dclabel { }
- # dclabelmargin { }
- # dclabelfont { }
- # dclabelbreak { }
- # dclabelformat { }
- # dclabelpos { SW }
- # dclabelangle { }
- # dclabelprox { }
- # dclabelctr { }
- # dclabeladjust { }
- # ddlabel { }
- # ddlabelmargin { }
- # ddlabelfont { }
- # ddlabelbreak { }
- # ddlabelformat { }
- # ddlabelpos { SE }
- # ddlabelangle { }
- # ddlabelprox { }
- # ddlabelctr { }
- # ddlabeladjust { }
-
- #############################################################################
- # #
- # @ENode options #
- # #
- #############################################################################
-
- # eoutline { box }
- # emargin { 0.6f }
- # eshadow { 0.4f }
- # esides { 3 }
- # eangle { "dup 180 exch div" } # 180d / sides
- # etranslate { }
- # eoutlinestyle { solid }
- # eoutlinedashlength { 0.2f }
- # eoutlinewidth { thin }
- # eoutlinecolour { nochange }
- # epaint { none }
- # etexture { solid }
- # efont { }
- # ebreak { }
- # eformat { @Body }
- # evalign { ctr }
- # evsize { }
- # evindent { ctr }
- # evstrut { no }
- # evmargin { }
- # etopmargin { }
- # efootmargin { }
- # ehalign { ctr }
- # ehsize { }
- # ehindent { ctr }
- # ehstrut { no }
- # ehmargin { }
- # eleftmargin { }
- # erightmargin { }
- # enodelabel { }
- # enodelabelmargin { 0.2f }
- # enodelabelfont { "-2p" }
- # enodelabelbreak { ragged nohyphen }
- # enodelabelformat { @Body }
- # enodelabelpos { }
- # enodelabelangle { horizontal }
- # enodelabelprox { outside }
- # enodelabelctr { no }
- # enodelabeladjust { 0 0 }
- # ealabel { }
- # ealabelmargin { }
- # ealabelfont { }
- # ealabelbreak { }
- # ealabelformat { }
- # ealabelpos { NE }
- # ealabelangle { }
- # ealabelprox { }
- # ealabelctr { }
- # ealabeladjust { }
- # eblabel { }
- # eblabelmargin { }
- # eblabelfont { }
- # eblabelbreak { }
- # eblabelformat { }
- # eblabelpos { NW }
- # eblabelangle { }
- # eblabelprox { }
- # eblabelctr { }
- # eblabeladjust { }
- # eclabel { }
- # eclabelmargin { }
- # eclabelfont { }
- # eclabelbreak { }
- # eclabelformat { }
- # eclabelpos { SW }
- # eclabelangle { }
- # eclabelprox { }
- # eclabelctr { }
- # eclabeladjust { }
- # edlabel { }
- # edlabelmargin { }
- # edlabelfont { }
- # edlabelbreak { }
- # edlabelformat { }
- # edlabelpos { SE }
- # edlabelangle { }
- # edlabelprox { }
- # edlabelctr { }
- # edlabeladjust { }
-
- #############################################################################
- # #
- # Link options #
- # #
- #############################################################################
-
- # path { line }
- # from { 0, 0 }
- # to { 1, 1 }
- # bias { 2.0f }
- # fbias { 2.0f }
- # tbias { 2.0f }
- # hfrac { 0.5 }
- # hbias { 0.0f }
- # radius { 1.0f }
- # xindent { 0.8f }
- # zindent { 0.8f }
- # frompt { 0 0 }
- # topt { 0 0 }
- # pathstyle { solid }
- # pathdashlength { 0.2f }
- # pathwidth { thin }
- # pathcolour { nochange }
- # pathgap { thin }
- # arrow { no }
- # arrowstyle { solid }
- # arrowwidth { 0.3f }
- # arrowlength { 0.5f }
- # backarrowstyle { solid }
- # backarrowwidth { 0.3f }
- # backarrowlength { 0.5f }
- # linklabel { }
- # linklabelmargin { 0.2f }
- # linklabelfont { "-2p" }
- # linklabelbreak { ragged nohyphen }
- # linklabelformat { @Body }
- # linklabelpos { }
- # linklabelangle { horizontal }
- # linklabelprox { above }
- # linklabelctr { no }
- # linklabeladjust { 0 0 }
- # xlabel { }
- # xlabelmargin { }
- # xlabelfont { }
- # xlabelbreak { }
- # xlabelformat { }
- # xlabelpos { LFROM }
- # xlabelangle { }
- # xlabelprox { }
- # xlabelctr { }
- # xlabeladjust { }
- # ylabel { }
- # ylabelmargin { }
- # ylabelfont { }
- # ylabelbreak { }
- # ylabelformat { }
- # ylabelpos { LMID }
- # ylabelangle { }
- # ylabelprox { }
- # ylabelctr { yes }
- # ylabeladjust { }
- # zlabel { }
- # zlabelmargin { }
- # zlabelfont { }
- # zlabelbreak { }
- # zlabelformat { }
- # zlabelpos { LTO }
- # zlabelangle { }
- # zlabelprox { }
- # zlabelctr { }
- # zlabeladjust { }
- # fromlabel { }
- # fromlabelmargin { 0f }
- # fromlabelfont { "-2p" }
- # fromlabelbreak { ragged nohyphen }
- # fromlabelformat { @Body }
- # fromlabelpos { FROM }
- # fromlabelangle { antiparallel }
- # fromlabelprox { W }
- # fromlabelctr { no }
- # fromlabeladjust { 0 0 }
- # tolabel { }
- # tolabelmargin { 0f }
- # tolabelfont { "-2p" }
- # tolabelbreak { ragged nohyphen }
- # tolabelformat { @Body }
- # tolabelpos { TO }
- # tolabelangle { parallel }
- # tolabelprox { W }
- # tolabelctr { no }
- # tolabeladjust { 0 0 }
-
- #############################################################################
- # #
- # Tree options #
- # #
- #############################################################################
-
- # treehsep { 0.5f }
- # treevsep { 0.5f }
- # treehindent { ctr }
- # treevindent { ctr }
-
- #############################################################################
- # #
- # Syntax diagram options #
- # #
- #############################################################################
-
- # syntaxgap { 0.35f }
- # syntaxbias { 1.0f }
- # syntaxradius { 0.3f }
-
-}
diff --git a/include/include/diagf b/include/include/diagf
deleted file mode 100644
index f58b37d..0000000
--- a/include/include/diagf
+++ /dev/null
@@ -1,8217 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Diag package for drawing diagrams #
-# Version 1.1 (February 2000) #
-# Jeffrey H. Kingston #
-# #
-# Version 1.0 (July 1996) #
-# Based on Version 2.0 of the @Fig package (Jeffrey H. Kingston, Dec 1992). #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysInclude { diagf.etc } # @Geometry
-@SysInclude { coltex } # @ColourCommand and @TextureCommand
-@SysPrependGraphic { diagf.lpg }
-
-
-###############################################################################
-# #
-# @DiagSetup symbol #
-# #
-###############################################################################
-
-export @Diag @SyntaxDiag
-def @DiagSetup
- named save { no }
- named maxlabels { 200 }
- named title { "--titledft--" }
- named titleformat
- left @Title
- right @Body
- { Slope @Font @Title //0.7f ||0.35f @Body }
-
- ###########################################################################
- # #
- # @Node options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named margin { 0.6f }
- import @Geometry named shadow { 0.4f }
- import @Geometry named sides { 3 }
- import @Geometry named angle { "dup 180 exch div" }
- named translate { }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named outlinedashlength { 0.2f }
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named outlinecolour outlinecolor { nochange }
- named paint { none }
- import @TextureImport named texture { solid }
- named font { }
- named break { }
- named format right @Body { @Body }
-
- named valign { ctr }
- named vsize { }
- named vindent { ctr }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named vmargin { }
- named topmargin { }
- named footmargin { }
-
- named halign { ctr }
- named hsize { }
- named hindent { ctr }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named hmargin { }
- named leftmargin { }
- named rightmargin { }
-
- named nodelabel { }
- named nodelabelmargin { 0.2f }
- named nodelabelfont { -2p }
- named nodelabelbreak { ragged nohyphen }
- named nodelabelformat right @Body { @Body }
- import @Geometry named nodelabelpos { }
- import @Geometry named nodelabelangle { horizontal }
- named nodelabelprox { outside }
- named nodelabelctr { no }
- import @Geometry named nodelabeladjust { 0 0 }
-
- named alabel { }
- named alabelmargin { }
- named alabelfont { }
- named alabelbreak { }
- named alabelformat right @Body { }
- import @Geometry named alabelpos { NE }
- import @Geometry named alabelangle { }
- named alabelprox { }
- named alabelctr { }
- import @Geometry named alabeladjust { }
-
- named blabel { }
- named blabelmargin { }
- named blabelfont { }
- named blabelbreak { }
- named blabelformat right @Body { }
- import @Geometry named blabelpos { NW }
- import @Geometry named blabelangle { }
- named blabelprox { }
- named blabelctr { }
- import @Geometry named blabeladjust { }
-
- named clabel { }
- named clabelmargin { }
- named clabelfont { }
- named clabelbreak { }
- named clabelformat right @Body { }
- import @Geometry named clabelpos { SW }
- import @Geometry named clabelangle { }
- named clabelprox { }
- named clabelctr { }
- import @Geometry named clabeladjust { }
-
- named dlabel { }
- named dlabelmargin { }
- named dlabelfont { }
- named dlabelbreak { }
- named dlabelformat right @Body { }
- import @Geometry named dlabelpos { SE }
- import @Geometry named dlabelangle { }
- named dlabelprox { }
- named dlabelctr { }
- import @Geometry named dlabeladjust { }
-
- ###########################################################################
- # #
- # @ANode options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named aoutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named amargin { 0.6f }
- import @Geometry named ashadow { 0.4f }
- import @Geometry named asides { 3 }
- import @Geometry named aangle { "dup 180 exch div" }
- named atranslate { }
- named aoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named aoutlinedashlength { 0.2f }
- import @Geometry named aoutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named aoutlinecolour aoutlinecolor { nochange }
- named apaint { none }
- import @TextureImport named atexture{ solid }
- named afont { }
- named abreak { }
- named aformat right @Body { @Body }
-
- named avalign { ctr }
- named avsize { }
- named avindent { ctr }
- named avstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named avmargin { }
- named atopmargin { }
- named afootmargin { }
-
- named ahalign { ctr }
- named ahsize { }
- named ahindent { ctr }
- named ahstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named ahmargin { }
- named aleftmargin { }
- named arightmargin { }
-
- named anodelabel { }
- named anodelabelmargin { 0.2f }
- named anodelabelfont { -2p }
- named anodelabelbreak { ragged nohyphen }
- named anodelabelformat right @Body { @Body }
- import @Geometry named anodelabelpos{ }
- import @Geometry named anodelabelangle { horizontal }
- named anodelabelprox { outside }
- named anodelabelctr { no }
- import @Geometry named anodelabeladjust { 0 0 }
-
- named aalabel { }
- named aalabelmargin { }
- named aalabelfont { }
- named aalabelbreak { }
- named aalabelformat right @Body { }
- import @Geometry named aalabelpos { NE }
- import @Geometry named aalabelangle { }
- named aalabelprox { }
- named aalabelctr { }
- import @Geometry named aalabeladjust{ }
-
- named ablabel { }
- named ablabelmargin { }
- named ablabelfont { }
- named ablabelbreak { }
- named ablabelformat right @Body { }
- import @Geometry named ablabelpos { NW }
- import @Geometry named ablabelangle { }
- named ablabelprox { }
- named ablabelctr { }
- import @Geometry named ablabeladjust{ }
-
- named aclabel { }
- named aclabelmargin { }
- named aclabelfont { }
- named aclabelbreak { }
- named aclabelformat right @Body { }
- import @Geometry named aclabelpos { SW }
- import @Geometry named aclabelangle { }
- named aclabelprox { }
- named aclabelctr { }
- import @Geometry named aclabeladjust{ }
-
- named adlabel { }
- named adlabelmargin { }
- named adlabelfont { }
- named adlabelbreak { }
- named adlabelformat right @Body { }
- import @Geometry named adlabelpos { SE }
- import @Geometry named adlabelangle { }
- named adlabelprox { }
- named adlabelctr { }
- import @Geometry named adlabeladjust{ }
-
- ###########################################################################
- # #
- # @BNode options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named boutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named bmargin { 0.6f }
- import @Geometry named bshadow { 0.4f }
- import @Geometry named bsides { 3 }
- import @Geometry named bangle { "dup 180 exch div" }
- named btranslate { }
- named boutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named boutlinedashlength { 0.2f }
- import @Geometry named boutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named boutlinecolour boutlinecolor { nochange }
- named bpaint { none }
- import @TextureImport named btexture{ solid }
- named bfont { }
- named bbreak { }
- named bformat right @Body { @Body }
-
- named bvalign { ctr }
- named bvsize { }
- named bvindent { ctr }
- named bvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named bvmargin { }
- named btopmargin { }
- named bfootmargin { }
-
- named bhalign { ctr }
- named bhsize { }
- named bhindent { ctr }
- named bhstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named bhmargin { }
- named bleftmargin { }
- named brightmargin { }
-
- named bnodelabel { }
- named bnodelabelmargin { 0.2f }
- named bnodelabelfont { -2p }
- named bnodelabelbreak { ragged nohyphen }
- named bnodelabelformat right @Body { @Body }
- import @Geometry named bnodelabelpos{ }
- import @Geometry named bnodelabelangle { horizontal }
- named bnodelabelprox { outside }
- named bnodelabelctr { no }
- import @Geometry named bnodelabeladjust { 0 0 }
-
- named balabel { }
- named balabelmargin { }
- named balabelfont { }
- named balabelbreak { }
- named balabelformat right @Body { }
- import @Geometry named balabelpos { NE }
- named balabelprox { }
- import @Geometry named balabelangle { }
- named balabelctr { }
- import @Geometry named balabeladjust{ }
-
- named bblabel { }
- named bblabelmargin { }
- named bblabelfont { }
- named bblabelbreak { }
- named bblabelformat right @Body { }
- import @Geometry named bblabelpos { NW }
- named bblabelprox { }
- import @Geometry named bblabelangle { }
- named bblabelctr { }
- import @Geometry named bblabeladjust{ }
-
- named bclabel { }
- named bclabelmargin { }
- named bclabelfont { }
- named bclabelbreak { }
- named bclabelformat right @Body { }
- import @Geometry named bclabelpos { SW }
- named bclabelprox { }
- import @Geometry named bclabelangle { }
- named bclabelctr { }
- import @Geometry named bclabeladjust{ }
-
- named bdlabel { }
- named bdlabelmargin { }
- named bdlabelfont { }
- named bdlabelbreak { }
- named bdlabelformat right @Body { }
- import @Geometry named bdlabelpos { SE }
- named bdlabelprox { }
- import @Geometry named bdlabelangle { }
- named bdlabelctr { }
- import @Geometry named bdlabeladjust{ }
-
- ###########################################################################
- # #
- # @CNode options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named coutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named cmargin { 0.6f }
- import @Geometry named cshadow { 0.4f }
- import @Geometry named csides { 3 }
- import @Geometry named cangle { "dup 180 exch div" }
- named ctranslate { }
- named coutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named coutlinedashlength { 0.2f }
- import @Geometry named coutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named coutlinecolour coutlinecolor { nochange }
- named cpaint { none }
- import @TextureImport named ctexture{ solid }
- named cfont { }
- named cbreak { }
- named cformat right @Body { @Body }
-
- named cvalign { ctr }
- named cvsize { }
- named cvindent { ctr }
- named cvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named cvmargin { }
- named ctopmargin { }
- named cfootmargin { }
-
- named chalign { ctr }
- named chsize { }
- named chindent { ctr }
- named chstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named chmargin { }
- named cleftmargin { }
- named crightmargin { }
-
- named cnodelabel { }
- named cnodelabelmargin { 0.2f }
- named cnodelabelfont { -2p }
- named cnodelabelbreak { ragged nohyphen }
- named cnodelabelformat right @Body { @Body }
- import @Geometry named cnodelabelpos{ }
- import @Geometry named cnodelabelangle { horizontal }
- named cnodelabelprox { outside }
- named cnodelabelctr { no }
- import @Geometry named cnodelabeladjust { 0 0 }
-
- named calabel { }
- named calabelmargin { }
- named calabelfont { }
- named calabelbreak { }
- named calabelformat right @Body { }
- import @Geometry named calabelpos { NE }
- import @Geometry named calabelangle { }
- named calabelprox { }
- named calabelctr { }
- import @Geometry named calabeladjust{ }
-
- named cblabel { }
- named cblabelmargin { }
- named cblabelfont { }
- named cblabelbreak { }
- named cblabelformat right @Body { }
- import @Geometry named cblabelpos { NW }
- import @Geometry named cblabelangle { }
- named cblabelprox { }
- named cblabelctr { }
- import @Geometry named cblabeladjust{ }
-
- named cclabel { }
- named cclabelmargin { }
- named cclabelfont { }
- named cclabelbreak { }
- named cclabelformat right @Body { }
- import @Geometry named cclabelpos { SW }
- import @Geometry named cclabelangle { }
- named cclabelprox { }
- named cclabelctr { }
- import @Geometry named cclabeladjust{ }
-
- named cdlabel { }
- named cdlabelmargin { }
- named cdlabelfont { }
- named cdlabelbreak { }
- named cdlabelformat right @Body { }
- import @Geometry named cdlabelpos { SE }
- import @Geometry named cdlabelangle { }
- named cdlabelprox { }
- named cdlabelctr { }
- import @Geometry named cdlabeladjust{ }
-
- ###########################################################################
- # #
- # @DNode options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named doutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named dmargin { 0.6f }
- import @Geometry named dshadow { 0.4f }
- import @Geometry named dsides { 3 }
- import @Geometry named dangle { "dup 180 exch div" }
- named dtranslate { }
- named doutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named doutlinedashlength { 0.2f }
- import @Geometry named doutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named doutlinecolour doutlinecolor { nochange }
- named dpaint { none }
- import @TextureImport named dtexture{ solid }
- named dfont { }
- named dbreak { }
- named dformat right @Body { @Body }
-
- named dvalign { ctr }
- named dvsize { }
- named dvindent { ctr }
- named dvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named dvmargin { }
- named dtopmargin { }
- named dfootmargin { }
-
- named dhalign { ctr }
- named dhsize { }
- named dhindent { ctr }
- named dhstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named dhmargin { }
- named dleftmargin { }
- named drightmargin { }
-
- named dnodelabel { }
- named dnodelabelmargin { 0.2f }
- named dnodelabelfont { -2p }
- named dnodelabelbreak { ragged nohyphen }
- named dnodelabelformat right @Body { @Body }
- import @Geometry named dnodelabelpos{ }
- import @Geometry named dnodelabelangle { horizontal }
- named dnodelabelprox { outside }
- named dnodelabelctr { no }
- import @Geometry named dnodelabeladjust { 0 0 }
-
- named dalabel { }
- named dalabelmargin { }
- named dalabelfont { }
- named dalabelbreak { }
- named dalabelformat right @Body { }
- import @Geometry named dalabelpos { NE }
- import @Geometry named dalabelangle { }
- named dalabelprox { }
- named dalabelctr { }
- import @Geometry named dalabeladjust{ }
-
- named dblabel { }
- named dblabelmargin { }
- named dblabelfont { }
- named dblabelbreak { }
- named dblabelformat right @Body { }
- import @Geometry named dblabelpos { NW }
- import @Geometry named dblabelangle { }
- named dblabelprox { }
- named dblabelctr { }
- import @Geometry named dblabeladjust{ }
-
- named dclabel { }
- named dclabelmargin { }
- named dclabelfont { }
- named dclabelbreak { }
- named dclabelformat right @Body { }
- import @Geometry named dclabelpos { SW }
- import @Geometry named dclabelangle { }
- named dclabelprox { }
- named dclabelctr { }
- import @Geometry named dclabeladjust{ }
-
- named ddlabel { }
- named ddlabelmargin { }
- named ddlabelfont { }
- named ddlabelbreak { }
- named ddlabelformat right @Body { }
- import @Geometry named ddlabelpos { SE }
- import @Geometry named ddlabelangle { }
- named ddlabelprox { }
- named ddlabelctr { }
- import @Geometry named ddlabeladjust{ }
-
- ###########################################################################
- # #
- # @ENode options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named eoutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { box }
- named emargin { 0.6f }
- import @Geometry named eshadow { 0.4f }
- import @Geometry named esides { 3 }
- import @Geometry named eangle { "dup 180 exch div" }
- named etranslate { }
- named eoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named eoutlinedashlength { 0.2f }
- import @Geometry named eoutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named eoutlinecolour eoutlinecolor { nochange }
- named epaint { none }
- import @TextureImport named etexture{ solid }
- named efont { }
- named ebreak { }
- named eformat right @Body { @Body }
-
- named evalign { ctr }
- named evsize { }
- named evindent { ctr }
- named evstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named evmargin { }
- named etopmargin { }
- named efootmargin { }
-
- named ehalign { ctr }
- named ehsize { }
- named ehindent { ctr }
- named ehstrut
- named no { 0.0f }
- named yes { 1.0f }
- { no }
- named ehmargin { }
- named eleftmargin { }
- named erightmargin { }
-
- named enodelabel { }
- named enodelabelmargin { 0.2f }
- named enodelabelfont { -2p }
- named enodelabelbreak { ragged nohyphen }
- named enodelabelformat right @Body { @Body }
- import @Geometry named enodelabelpos{ }
- import @Geometry named enodelabelangle { horizontal }
- named enodelabelprox { outside }
- named enodelabelctr { no }
- import @Geometry named enodelabeladjust { 0 0 }
-
- named ealabel { }
- named ealabelmargin { }
- named ealabelfont { }
- named ealabelbreak { }
- named ealabelformat right @Body { }
- import @Geometry named ealabelpos { NE }
- import @Geometry named ealabelangle { }
- named ealabelprox { }
- named ealabelctr { }
- import @Geometry named ealabeladjust{ }
-
- named eblabel { }
- named eblabelmargin { }
- named eblabelfont { }
- named eblabelbreak { }
- named eblabelformat right @Body { }
- import @Geometry named eblabelpos { NW }
- import @Geometry named eblabelangle { }
- named eblabelprox { }
- named eblabelctr { }
- import @Geometry named eblabeladjust{ }
-
- named eclabel { }
- named eclabelmargin { }
- named eclabelfont { }
- named eclabelbreak { }
- named eclabelformat right @Body { }
- import @Geometry named eclabelpos { SW }
- import @Geometry named eclabelangle { }
- named eclabelprox { }
- named eclabelctr { }
- import @Geometry named eclabeladjust{ }
-
- named edlabel { }
- named edlabelmargin { }
- named edlabelfont { }
- named edlabelbreak { }
- named edlabelformat right @Body { }
- import @Geometry named edlabelpos { SE }
- import @Geometry named edlabelangle { }
- named edlabelprox { }
- named edlabelctr { }
- import @Geometry named edlabeladjust{ }
-
- ###########################################################################
- # #
- # @Link options of @DiagSetup #
- # #
- ###########################################################################
-
- import @Geometry named path
- named from {}
- named to {}
- named bias {}
- named fbias {}
- named tbias {}
- named hfrac {}
- named hbias {}
- named radius {}
- named xindent {}
- named zindent {}
- named frompt {}
- named topt {}
- named arrow {}
- named arrowlength {}
- named backarrowlength {}
- { line }
- import @Geometry named from { 0,0 }
- import @Geometry named to { 1,1 }
- import @Geometry named bias { 2.0f }
- import @Geometry named fbias { 2.0f }
- import @Geometry named tbias { 2.0f }
- import @Geometry named hfrac { 0.5 }
- import @Geometry named hbias { 0.0f }
- import @Geometry named radius { 1.0f }
- import @Geometry named xindent { 0.8f }
- import @Geometry named zindent { 0.8f }
- import @Geometry named frompt { 0 0 }
- import @Geometry named topt { 0 0 }
- named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { solid }
- import @Geometry named pathdashlength { 0.2f }
- import @Geometry named pathwidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { thin }
- named pathcolour pathcolor { nochange }
- import @Geometry named pathgap
- named thin { 0.08 ft }
- named medium { 0.16 ft }
- named thick { 0.24 ft }
- { thin }
- named arrow { no }
- named arrowstyle { solid }
- named arrowwidth { 0.3f }
- named arrowlength { 0.5f }
- named backarrowstyle { solid }
- named backarrowwidth { 0.3f }
- named backarrowlength { 0.5f }
-
- named linklabel { }
- named linklabelmargin { 0.2f }
- named linklabelfont { -2p }
- named linklabelbreak { ragged nohyphen }
- named linklabelformat right @Body { @Body }
- import @Geometry named linklabelpos { }
- import @Geometry named linklabelangle { horizontal }
- named linklabelprox { above }
- named linklabelctr { no }
- import @Geometry named linklabeladjust { 0 0 }
-
- named xlabel { }
- named xlabelmargin { }
- named xlabelfont { }
- named xlabelbreak { }
- named xlabelformat right @Body { }
- import @Geometry named xlabelpos { LFROM }
- import @Geometry named xlabelangle { }
- named xlabelprox { }
- named xlabelctr { }
- import @Geometry named xlabeladjust { }
-
- named ylabel { }
- named ylabelmargin { }
- named ylabelfont { }
- named ylabelbreak { }
- named ylabelformat right @Body { }
- import @Geometry named ylabelpos { LMID }
- import @Geometry named ylabelangle { }
- named ylabelprox { }
- named ylabelctr { yes }
- import @Geometry named ylabeladjust { }
-
- named zlabel { }
- named zlabelmargin { }
- named zlabelfont { }
- named zlabelbreak { }
- named zlabelformat right @Body { }
- import @Geometry named zlabelpos { LTO }
- import @Geometry named zlabelangle { }
- named zlabelprox { }
- named zlabelctr { }
- import @Geometry named zlabeladjust { }
-
- named fromlabel { }
- named fromlabelmargin { 0f }
- named fromlabelfont { }
- named fromlabelbreak { ragged nohyphen }
- named fromlabelformat right @Body { @Body }
- import @Geometry named fromlabelpos { FROM }
- import @Geometry named fromlabelangle { antiparallel }
- named fromlabelprox { W }
- named fromlabelctr { no }
- import @Geometry named fromlabeladjust { 0 0 }
-
- named tolabel { }
- named tolabelmargin { 0f }
- named tolabelfont { }
- named tolabelbreak { ragged nohyphen }
- named tolabelformat right @Body { @Body }
- import @Geometry named tolabelpos { TO }
- import @Geometry named tolabelangle { parallel }
- named tolabelprox { W }
- named tolabelctr { no }
- import @Geometry named tolabeladjust { 0 0 }
-
- ###########################################################################
- # #
- # Tree and syntax diagram options of @DiagSetup #
- # #
- ###########################################################################
-
- named treehsep { 0.5f }
- named treevsep { 0.5f }
- named treehindent
- named left { 0.0rt }
- named ctr { 0.5rt }
- named right { 1.0rt }
- { ctr }
- named treevindent
- named top { 0.0rt }
- named ctr { 0.5rt }
- named foot { 1.0rt }
- { ctr }
-
- named syntaxgap { 0.35f }
- named syntaxbias { 1.0f }
- named syntaxradius { 0.3f }
-{
-
-
- ###########################################################################
- # #
- # @Diag symbol #
- # #
- ###########################################################################
-
- export "::" @ShowPoints @ShowTags @ShowDirections @CatchTags @Transform
-
- @Node @ANode @BNode @CNode @DNode @ENode
- @Box @CurveBox @ShadowBox @Square @Diamond @Polygon
- @Isosceles @Ellipse @Circle
- @ArrowHead @SolidArrowHead @SolidWithBarArrowHead @OpenArrowHead
- @HalfOpenArrowHead @SolidCurvedArrowHead @OpenCurvedArrowHead
- @HalfOpenCurvedArrowHead @CircleArrowHead @BoxArrowHead
- @ManyArrowHead
-
- @Link
- @Line @DoubleLine @Arrow @DoubleArrow @Curve @CurveArrow
- @ACurve @ACurveArrow @CCurve @CCurveArrow
- @Bezier @BezierArrow
- @HVLine @HVArrow @VHLine @VHArrow
- @HVCurve @HVCurveArrow @VHCurve @VHCurveArrow
- @LVRLine @LVRArrow @RVLLine @RVLArrow
- @DHULine @DHUArrow @UHDLine @UHDArrow
- @LVRCurve @LVRCurveArrow @RVLCurve @RVLCurveArrow
- @DHUCurve @DHUCurveArrow @UHDCurve @UHDCurveArrow
- @HVHLine @HVHArrow @VHVLine @VHVArrow
- @HVHCurve @HVHCurveArrow @VHVCurve @VHVCurveArrow
- @DWrapLine @DWrapArrow @UWrapLine @UWrapArrow
- @DWrapCurve @DWrapCurveArrow @UWrapCurve @UWrapCurveArrow
-
- @Tree @HTree
-
- @StartRight @StartUp @StartLeft @StartDown
- @StartRightRight @StartRightRightRight @StartRightDown
- @Skip @XCell @ACell @BCell @CCell @DCell @ECell
- @Sequence @OneOrBoth @Select @Optional @OptionalDiverted @Diverted
- @Loop @LoopOpposite @Repeat @RepeatOpposite @RepeatDiverted
-
- def @Diag
- named save { save }
- named maxlabels { maxlabels }
- named title { title }
- named titleformat
- left @Title
- right @Body
- { @Title titleformat @Body }
-
- #######################################################################
- # #
- # @Node options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { outline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { margin }
- import @Geometry named shadow { shadow }
- import @Geometry named sides { sides }
- import @Geometry named angle { angle }
- named translate { translate }
- named nodetag { }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { outlinestyle }
- import @Geometry named outlinedashlength{ outlinedashlength }
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { outlinewidth }
- named outlinecolour outlinecolor { outlinecolour }
- named paint { paint }
- import @TextureImport named texture { texture }
- named font { font }
- named break { break }
- named format right @Body { format @Body }
- named valign { valign }
- named vsize { vsize }
- named vindent { vindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { vstrut }
- named vmargin { vmargin }
- named topmargin { topmargin }
- named footmargin { footmargin }
- named halign { halign }
- named hsize { hsize }
- named hindent { hindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { hstrut }
- named hmargin { hmargin }
- named leftmargin { leftmargin }
- named rightmargin { rightmargin }
-
- #######################################################################
- # #
- # @ANode options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named aoutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { aoutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named amargin { amargin }
- import @Geometry named ashadow { ashadow }
- import @Geometry named asides { asides }
- import @Geometry named aangle { aangle }
- named atranslate { atranslate }
- named anodetag { }
- named aoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { aoutlinestyle }
- import @Geometry named aoutlinedashlength{ aoutlinedashlength }
- import @Geometry named aoutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { aoutlinewidth }
- named aoutlinecolour aoutlinecolor { aoutlinecolour }
- named apaint { apaint }
- import @TextureImport named atexture { atexture }
- named afont { afont }
- named abreak { abreak }
- named aformat right @Body { aformat @Body }
- named avalign { avalign }
- named avsize { avsize }
- named avindent { avindent }
- named avstrut
- named no { 0.0f }
- named yes { 1.0f }
- { avstrut }
- named avmargin { avmargin }
- named atopmargin { atopmargin }
- named afootmargin { afootmargin }
- named ahalign { ahalign }
- named ahsize { ahsize }
- named ahindent { ahindent }
- named ahstrut
- named no { 0.0f }
- named yes { 1.0f }
- { ahstrut }
- named ahmargin { ahmargin }
- named aleftmargin { aleftmargin }
- named arightmargin { arightmargin }
-
- #######################################################################
- # #
- # @BNode options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named boutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { boutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named bmargin { bmargin }
- import @Geometry named bshadow { bshadow }
- import @Geometry named bsides { bsides }
- import @Geometry named bangle { bangle }
- named btranslate { btranslate }
- named bnodetag { }
- named boutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { boutlinestyle }
- import @Geometry named boutlinedashlength{ boutlinedashlength }
- import @Geometry named boutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { boutlinewidth }
- named boutlinecolour boutlinecolor { boutlinecolour }
- named bpaint { bpaint }
- import @TextureImport named btexture { btexture }
- named bfont { bfont }
- named bbreak { bbreak }
- named bformat right @Body { bformat @Body }
- named bvalign { bvalign }
- named bvsize { bvsize }
- named bvindent { bvindent }
- named bvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { bvstrut }
- named bvmargin { bvmargin }
- named btopmargin { btopmargin }
- named bfootmargin { bfootmargin }
- named bhalign { bhalign }
- named bhsize { bhsize }
- named bhindent { bhindent }
- named bhstrut
- named no { 0.0f }
- named yes { 1.0f }
- { bhstrut }
- named bhmargin { bhmargin }
- named bleftmargin { bleftmargin }
- named brightmargin { brightmargin }
-
- #######################################################################
- # #
- # @CNode options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named coutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { coutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named cmargin { cmargin }
- import @Geometry named cshadow { cshadow }
- import @Geometry named csides { csides }
- import @Geometry named cangle { cangle }
- named ctranslate { ctranslate }
- named cnodetag { }
- named coutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { coutlinestyle }
- import @Geometry named coutlinedashlength{ coutlinedashlength }
- import @Geometry named coutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { coutlinewidth }
- named coutlinecolour coutlinecolor { coutlinecolour }
- named cpaint { cpaint }
- import @TextureImport named ctexture { ctexture }
- named cfont { cfont }
- named cbreak { cbreak }
- named cformat right @Body { cformat @Body }
- named cvalign { cvalign }
- named cvsize { cvsize }
- named cvindent { cvindent }
- named cvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { cvstrut }
- named cvmargin { cvmargin }
- named ctopmargin { ctopmargin }
- named cfootmargin { cfootmargin }
- named chalign { chalign }
- named chsize { chsize }
- named chindent { chindent }
- named chstrut
- named no { 0.0f }
- named yes { 1.0f }
- { chstrut }
- named chmargin { chmargin }
- named cleftmargin { cleftmargin }
- named crightmargin { crightmargin }
-
- #######################################################################
- # #
- # @DNode options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named doutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { doutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named dmargin { dmargin }
- import @Geometry named dshadow { dshadow }
- import @Geometry named dsides { dsides }
- import @Geometry named dangle { dangle }
- named dtranslate { dtranslate }
- named dnodetag { }
- named doutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { doutlinestyle }
- import @Geometry named doutlinedashlength{ doutlinedashlength }
- import @Geometry named doutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { doutlinewidth }
- named doutlinecolour doutlinecolor { doutlinecolour }
- named dpaint { dpaint }
- import @TextureImport named dtexture { dtexture }
- named dfont { dfont }
- named dbreak { dbreak }
- named dformat right @Body { dformat @Body }
- named dvalign { dvalign }
- named dvsize { dvsize }
- named dvindent { dvindent }
- named dvstrut
- named no { 0.0f }
- named yes { 1.0f }
- { dvstrut }
- named dvmargin { dvmargin }
- named dtopmargin { dtopmargin }
- named dfootmargin { dfootmargin }
- named dhalign { dhalign }
- named dhsize { dhsize }
- named dhindent { dhindent }
- named dhstrut
- named no { 0.0f }
- named yes { 1.0f }
- { dhstrut }
- named dhmargin { dhmargin }
- named dleftmargin { dleftmargin }
- named drightmargin { drightmargin }
-
- #######################################################################
- # #
- # @ENode options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named eoutline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { eoutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named emargin { emargin }
- import @Geometry named eshadow { eshadow }
- import @Geometry named esides { esides }
- import @Geometry named eangle { eangle }
- named etranslate { etranslate }
- named enodetag { }
- named eoutlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { eoutlinestyle }
- import @Geometry named eoutlinedashlength{ eoutlinedashlength }
- import @Geometry named eoutlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { eoutlinewidth }
- named eoutlinecolour eoutlinecolor { eoutlinecolour }
- named epaint { epaint }
- import @TextureImport named etexture { etexture }
- named efont { efont }
- named ebreak { ebreak }
- named eformat right @Body { eformat @Body }
- named evalign { evalign }
- named evsize { evsize }
- named evindent { evindent }
- named evstrut
- named no { 0.0f }
- named yes { 1.0f }
- { evstrut }
- named evmargin { evmargin }
- named etopmargin { etopmargin }
- named efootmargin { efootmargin }
- named ehalign { ehalign }
- named ehsize { ehsize }
- named ehindent { ehindent }
- named ehstrut
- named no { 0.0f }
- named yes { 1.0f }
- { ehstrut }
- named ehmargin { ehmargin }
- named eleftmargin { eleftmargin }
- named erightmargin { erightmargin }
-
- #######################################################################
- # #
- # @Link options of @Diag #
- # #
- #######################################################################
-
- import @Geometry named path
- named from {}
- named to {}
- named bias {}
- named fbias {}
- named tbias {}
- named hfrac {}
- named hbias {}
- named radius {}
- named xindent {}
- named zindent {}
- named frompt {}
- named topt {}
- named arrow {}
- named arrowlength {}
- named backarrowlength {}
- { path
- from { from }
- to { to }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- arrow { arrow }
- arrowlength { arrowlength }
- backarrowlength{ backarrowlength }
- }
- import @Geometry named from { from }
- import @Geometry named to { to }
- import @Geometry named bias { bias }
- import @Geometry named fbias { fbias }
- import @Geometry named tbias { tbias }
- import @Geometry named hfrac { hfrac }
- import @Geometry named hbias { hbias }
- import @Geometry named radius { radius }
- import @Geometry named xindent { xindent }
- import @Geometry named zindent { zindent }
- import @Geometry named frompt { frompt }
- import @Geometry named topt { topt }
- named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { pathstyle }
- import @Geometry named pathdashlength { pathdashlength }
- import @Geometry named pathwidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { pathwidth }
- named pathcolour pathcolor { pathcolour }
- import @Geometry named pathgap
- named thin { 0.08 ft }
- named medium { 0.16 ft }
- named thick { 0.24 ft }
- { pathgap }
- named arrow { arrow }
- named arrowstyle { arrowstyle }
- named arrowwidth { arrowwidth }
- named arrowlength { arrowlength }
- named backarrowstyle { backarrowstyle }
- named backarrowwidth { backarrowwidth }
- named backarrowlength { backarrowlength }
-
- named nodelabel { nodelabel }
- named nodelabelmargin { nodelabelmargin }
- named nodelabelfont { nodelabelfont }
- named nodelabelbreak { nodelabelbreak }
- named nodelabelformat right @Body { nodelabelformat @Body }
- import @Geometry named nodelabelpos { nodelabelpos }
- named nodelabelprox { nodelabelprox }
- import @Geometry named nodelabelangle { nodelabelangle }
- named nodelabelctr { nodelabelctr }
- import @Geometry named nodelabeladjust { nodelabeladjust }
-
- named alabel { alabel }
- named alabelmargin { alabelmargin }
- named alabelfont { alabelfont }
- named alabelbreak { alabelbreak }
- named alabelformat right @Body { alabelformat @Body }
- import @Geometry named alabelpos { alabelpos }
- named alabelprox { alabelprox }
- import @Geometry named alabelangle { alabelangle }
- named alabelctr { alabelctr }
- import @Geometry named alabeladjust { alabeladjust }
-
- named blabel { blabel }
- named blabelmargin { blabelmargin }
- named blabelfont { blabelfont }
- named blabelbreak { blabelbreak }
- named blabelformat right @Body { blabelformat @Body }
- import @Geometry named blabelpos { blabelpos }
- named blabelprox { blabelprox }
- import @Geometry named blabelangle { blabelangle }
- named blabelctr { blabelctr }
- import @Geometry named blabeladjust { blabeladjust }
-
- named clabel { clabel }
- named clabelmargin { clabelmargin }
- named clabelfont { clabelfont }
- named clabelbreak { clabelbreak }
- named clabelformat right @Body { clabelformat @Body }
- import @Geometry named clabelpos { clabelpos }
- named clabelprox { clabelprox }
- import @Geometry named clabelangle { clabelangle }
- named clabelctr { clabelctr }
- import @Geometry named clabeladjust { clabeladjust }
-
- named dlabel { dlabel }
- named dlabelmargin { dlabelmargin }
- named dlabelfont { dlabelfont }
- named dlabelbreak { dlabelbreak }
- named dlabelformat right @Body { dlabelformat @Body }
- import @Geometry named dlabelpos { dlabelpos }
- named dlabelprox { dlabelprox }
- import @Geometry named dlabelangle { dlabelangle }
- named dlabelctr { dlabelctr }
- import @Geometry named dlabeladjust { dlabeladjust }
-
- named fromlabel { fromlabel }
- named fromlabelmargin { fromlabelmargin }
- named fromlabelfont { fromlabelfont }
- named fromlabelbreak { fromlabelbreak }
- named fromlabelformat right @Body { fromlabelformat @Body }
- import @Geometry named fromlabelpos { fromlabelpos }
- named fromlabelprox { fromlabelprox }
- import @Geometry named fromlabelangle { fromlabelangle }
- named fromlabelctr { fromlabelctr }
- import @Geometry named fromlabeladjust { fromlabeladjust }
-
- named linklabel { linklabel }
- named linklabelmargin { linklabelmargin }
- named linklabelfont { linklabelfont }
- named linklabelbreak { linklabelbreak }
- named linklabelformat right @Body { linklabelformat @Body }
- import @Geometry named linklabelpos { linklabelpos }
- named linklabelprox { linklabelprox }
- import @Geometry named linklabelangle { linklabelangle }
- named linklabelctr { linklabelctr }
- import @Geometry named linklabeladjust { linklabeladjust }
-
- named xlabel { xlabel }
- named xlabelmargin { xlabelmargin }
- named xlabelfont { xlabelfont }
- named xlabelbreak { xlabelbreak }
- named xlabelformat right @Body { xlabelformat @Body }
- import @Geometry named xlabelpos { xlabelpos }
- named xlabelprox { xlabelprox }
- import @Geometry named xlabelangle { xlabelangle }
- named xlabelctr { xlabelctr }
- import @Geometry named xlabeladjust { xlabeladjust }
-
- named ylabel { ylabel }
- named ylabelmargin { ylabelmargin }
- named ylabelfont { ylabelfont }
- named ylabelbreak { ylabelbreak }
- named ylabelformat right @Body { ylabelformat @Body }
- import @Geometry named ylabelpos { ylabelpos }
- named ylabelprox { ylabelprox }
- import @Geometry named ylabelangle { ylabelangle }
- named ylabelctr { ylabelctr }
- import @Geometry named ylabeladjust { ylabeladjust }
-
- named zlabel { zlabel }
- named zlabelmargin { zlabelmargin }
- named zlabelfont { zlabelfont }
- named zlabelbreak { zlabelbreak }
- named zlabelformat right @Body { zlabelformat @Body }
- import @Geometry named zlabelpos { zlabelpos }
- named zlabelprox { zlabelprox }
- import @Geometry named zlabelangle { zlabelangle }
- named zlabelctr { zlabelctr }
- import @Geometry named zlabeladjust { zlabeladjust }
-
- named tolabel { tolabel }
- named tolabelmargin { tolabelmargin }
- named tolabelfont { tolabelfont }
- named tolabelbreak { tolabelbreak }
- named tolabelformat right @Body { tolabelformat @Body }
- import @Geometry named tolabelpos { tolabelpos }
- named tolabelprox { tolabelprox }
- import @Geometry named tolabelangle { tolabelangle }
- named tolabelctr { tolabelctr }
- import @Geometry named tolabeladjust { tolabeladjust }
-
- #######################################################################
- # #
- # Tree and syntax diagram options of @Diag #
- # #
- #######################################################################
-
- named treehsep { treehsep }
- named treevsep { treevsep }
- named treehindent
- named left { 0.0rt }
- named ctr { 0.5rt }
- named right { 1.0rt }
- { treehindent }
- named treevindent
- named top { 0.0rt }
- named ctr { 0.5rt }
- named foot { 1.0rt }
- { treevindent }
- named syntaxgap { syntaxgap }
- named syntaxbias { syntaxbias }
- named syntaxradius { syntaxradius }
- body @Body
- @Begin
-
-
- #######################################################################
- # #
- # Miscellaneous helper definitions #
- # #
- #######################################################################
-
- def @PSAddPaint left col right tex
- {
- col @Case {
- { "no" "none" "nopaint" } @Yield "{}"
- else @Yield { "{" @ColourCommand col tex "fill }" }
- }
- }
-
- # Like @Graphic, but affects the graphics state of right parameter
- def @InnerGraphic
- left ps
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- { ps gsave // grestore } @Graphic x
- }
- PDF @Yield {
- { ps q // Q } @Graphic x
- }
- }
- }
-
- def @BoxLabels right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- "[ ldiagbox ] pop" @Graphic x
- }
- PDF @Yield {}
- }
- }
-
- def @IfNonEmpty
- left x
- right y
- {
- x @Case {
- "" @Yield @Null
- else @Yield y
- }
- }
-
- def @Else
- precedence 20
- associativity right
- left x
- right y
- {
- x @Case {
- "" @Yield y
- else @Yield x
- }
- }
-
- def @ShowTags
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- {
- "() ldiagpushtagdict"
- // "ldiagshowtags ldiagpopuptagdict"
- } @Graphic x
- }
- PDF @Yield {}
- }
- }
-
- def @ShowPoints
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- {
- "() ldiagpushtagdict"
- // "ldiagshowpoints ldiagpopuptagdict"
- } @Graphic x
- }
- PDF @Yield {}
- }
- }
-
- def @ShowDirections
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- { "() ldiagpushtagdict"
- // "ldiagshowangles ldiagpopuptagdict" } @Graphic x
- }
- PDF @Yield {}
- }
- }
-
- def @ShowMarks right x
- {
- { "xmark -0.5 cm moveto xmark ysize 0.5 cm add lineto stroke" } @Graphic x
- }
-
-
- def "::"
- precedence 33
- associativity right
- left name
- named restrict {}
- right x
- {
-
- def @PushCommand
- {
- "("name") ldiagpushtagdict"
- }
-
- def @PopCommand
- {
- restrict @Case {
- "" @Yield "ldiagpopuptagdict"
- else @Yield { "[" restrict "] ldiagpopsometagdict" }
- }
- # "ldiagpopuptagdict"
- }
-
- @BackEnd @Case {
- PostScript @Yield { {@PushCommand // @PopCommand} @Graphic x }
- PDF @Yield {}
- }
- }
-
- def @CatchTags
- precedence 33
- associativity right
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- {
- "() ldiagpushtagdict"
- // "ldiagpoptagdict"
- }
- @Graphic x
- }
- PDF @Yield {}
- }
- }
-
- def @ZeroWidth right x
- {
- @HContract @VContract {
- ^|0io @HContract @VContract x |0io
- }
- }
-
- def @ZeroSize right x
- {
- @HContract @VContract {
- ^/0io ^|0io @HContract @VContract x |0io /0io
- }
- }
-
- def @FromArrowLength
- left arrow
- right arrowlength
- {
- @BackEnd @Case {
- PostScript @Yield {
- arrow @Case {
- { no yes forward } @Yield 0
- { back both } @Yield {"("arrowlength") ldiagdecodelength"}
- }
- }
- PDF @Yield {}
- }
- }
-
- def @ToArrowLength
- left arrow
- right arrowlength
- {
- @BackEnd @Case {
- PostScript @Yield {
- arrow @Case {
- { no back } @Yield 0
- { yes forward both } @Yield {"("arrowlength") ldiagdecodelength"}
- }
- }
- PDF @Yield {}
- }
- }
-
- def @AddMargins
- named mtop {}
- named mfoot {}
- named mleft {}
- named mright {}
- right x
- {
-
- @HContract @VContract {
- ^|mleft |mright
- ^/mtop | x |
- /mfoot | |
- }
- }
-
- def @Transform
- precedence 32
- import @Geometry named translate
-# named to precedence 10 left x right y { x y "ldiagpsub" }
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- named scale { 1 1 }
- right x
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- { rotate "rotate" scale "scale newpath clip" }
- @InnerGraphic
- {
- @ZeroSize x
- }
- //
- # { rotate "rotate" scale "scale" translate "translate" }
- { translate "translate" rotate "rotate" scale "scale" }
- @InnerGraphic
- {
- @ZeroSize x
- }
- }
-
- PDF @Yield { # presume that "rotate", "scale" and "translate" are not matrices
- { "__cos("rotate") __sin("rotate") __sub(0, __sin("rotate")) __cos("rotate") 0 0 cm"
- "__pick(1, "scale") 0 0 __pick(2, "scale") 0 0 cm n W" }
- @InnerGraphic
- {
- @ZeroSize x
- }
- //
- # { rotate "rotate" scale "scale" translate "translate" }
- { "1 0 0 1 "translate" cm"
- "__cos("rotate") __sin("rotate") __sub(0, __sin("rotate")) __cos("rotate") 0 0 cm"
- "__pick(1, "scale") 0 0 __pick(2, "scale") 0 0 cm" }
- @InnerGraphic
- {
- @ZeroSize x
- }
- }
-
- }
- }
-
-
- #######################################################################
- # #
- # @DoLabel definition for drawing one label #
- # #
- #######################################################################
-
- def @DoLabel
- named which {}
- named labeltag { LABEL }
- named label {}
- named labelmargin {}
- named labelfont {}
- named labelbreak {}
- named labelformat right @Body {}
- named labelpos {}
- named labelprox {}
- named labelangle {}
- named labelctr {}
- named labeladjust {}
- {
-
- import @Geometry
- def alignedangle
- {
- labelpos??"ANGLE" quadcase
- 0 { labelpos??"ANGLE" }
- 0-90 { labelpos??"ANGLE" }
- 90 { labelpos??"ANGLE" }
- 90-180 { labelpos??"ANGLE" + 180d }
- 180 { labelpos??"ANGLE" + 180d }
- 180-270 { labelpos??"ANGLE" + 180d }
- 270 { labelpos??"ANGLE" + 180d }
- 270-360 { labelpos??"ANGLE" }
- }
-
- import @Geometry
- def perpalignedangle
- {
- labelpos??"ANGLE" quadcase
- 0 { labelpos??"ANGLE" - 90d }
- 0-90 { labelpos??"ANGLE" - 90d }
- 90 { labelpos??"ANGLE" - 90d }
- 90-180 { labelpos??"ANGLE" - 90d }
- 180 { labelpos??"ANGLE" + 90d }
- 180-270 { labelpos??"ANGLE" + 90d }
- 270 { labelpos??"ANGLE" + 90d }
- 270-360 { labelpos??"ANGLE" + 90d }
-
- }
-
- import @Geometry
- def finalangle
- {
- labelangle @Case {
-
- "horizontal" @Yield { 0d }
- "aligned" @Yield { alignedangle }
- "perpendicular" @Yield { perpalignedangle }
- "parallel" @Yield { labelpos??"ANGLE" }
- "antiparallel" @Yield { labelpos??"ANGLE" + 180d }
- else @Yield labelangle
- }
- }
-
- import @Geometry
- def @AlignedAboveProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (SE) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (SE) }
- }
- else @Yield (S)
- }
- }
-
- import @Geometry
- def @AlignedBelowProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (NE) }
- 180 { (NE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (NW) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (NE) }
- }
- else @Yield (N)
- }
- }
-
- import @Geometry
- def @AlignedLeftProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (NE) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (NW) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (NE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (S) }
- 90 { (S) }
- 90-180 { (N) }
- 180 { (S) }
- 180-270 { (S) }
- 270 { (S) }
- 270-360 { (N) }
- }
- }
- }
-
- import @Geometry
- def @AlignedRightProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (SE) }
- 180 { (SE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (SE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (N) }
- 90 { (N) }
- 90-180 { (S) }
- 180 { (S) }
- 180-270 { (N) }
- 270 { (N) }
- 270-360 { (S) }
- }
- }
- }
-
- import @Geometry
- def @AlignedInsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (NE) }
- 180 { (NE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (NW) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (SE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (S) }
- 90 { (S) }
- 90-180 { (N) }
- 180 { (N) }
- 180-270 { (N) }
- 270 { (N) }
- 270-360 { (S) }
- }
- }
- }
-
- import @Geometry
- def @AlignedOutsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (SE) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (NE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (N) }
- 0-90 { (N) }
- 90 { (N) }
- 90-180 { (S) }
- 180 { (S) }
- 180-270 { (S) }
- 270 { (S) }
- 270-360 { (N) }
- }
- }
- }
-
-
- import @Geometry
- def @PerpendicularAboveProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (SW) }
- 180 { (NE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (NW) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (SW) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (E) }
- 0-90 { (E) }
- 90 { (E) }
- 90-180 { (W) }
- 180 { (E) }
- 180-270 { (E) }
- 270 { (E) }
- 270-360 { (W) }
- }
- }
- }
-
- import @Geometry
- def @PerpendicularBelowProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (SE) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (NE) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (SE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (W) }
- 0-90 { (W) }
- 90 { (W) }
- 90-180 { (E) }
- 180 { (W) }
- 180-270 { (W) }
- 270 { (W) }
- 270-360 { (E) }
- }
- }
- }
-
- import @Geometry
- def @PerpendicularLeftProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (SE) }
- 180 { (NE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (NE) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (SE) }
- }
- else @Yield (E)
- }
- }
-
- import @Geometry
- def @PerpendicularRightProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (SW) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (NW) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (SW) }
- }
- else @Yield (W)
- }
- }
-
- import @Geometry
- def @PerpendicularInsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (SE) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (NW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NE) }
- 90 { (NE) }
- 90-180 { (NE) }
- 180 { (SW) }
- 180-270 { (SW) }
- 270 { (SW) }
- 270-360 { (SW) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (E) }
- 0-90 { (E) }
- 90 { (E) }
- 90-180 { (E) }
- 180 { (W) }
- 180-270 { (W) }
- 270 { (W) }
- 270-360 { (W) }
- }
- }
- }
-
- import @Geometry
- def @PerpendicularOutsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SW) }
- 90 { (SW) }
- 90-180 { (SW) }
- 180 { (NE) }
- 180-270 { (NE) }
- 270 { (NE) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (NW) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (SE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (W) }
- 0-90 { (W) }
- 90 { (W) }
- 90-180 { (W) }
- 180 { (E) }
- 180-270 { (E) }
- 270 { (E) }
- 270-360 { (E) }
- }
- }
- }
-
-
- import @Geometry
- def @OtherAboveProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SE) }
- 90 { (SW) }
- 90-180 { (SW) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (NW) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (NW) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (SE) }
- 270 { (SW) }
- 270-360 { (SW) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (SE) }
- 90 { (W) }
- 90-180 { (SW) }
- 180 { (S) }
- 180-270 { (SE) }
- 270 { (W) }
- 270-360 { (SW) }
- }
- }
- }
-
- import @Geometry
- def @OtherBelowProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (SW) }
- 90-180 { (NE) }
- 180 { (NE) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (NE) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (SW) }
- 270-360 { (NE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (N) }
- 0-90 { (NW) }
- 90 { (W) }
- 90-180 { (NE) }
- 180 { (N) }
- 180-270 { (NW) }
- 270 { (W) }
- 270-360 { (NE) }
- }
- }
- }
-
- import @Geometry
- def @OtherLeftProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (NE) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (NE) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (NE) }
- 90-180 { (NE) }
- 180 { (SW) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (NE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (SE) }
- 90 { (E) }
- 90-180 { (NE) }
- 180 { (S) }
- 180-270 { (SE) }
- 270 { (E) }
- 270-360 { (NE) }
- }
- }
- }
-
- import @Geometry
- def @OtherRightProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (NW) }
- 90 { (SW) }
- 90-180 { (SW) }
- 180 { (SE) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (NW) }
- 270 { (SW) }
- 270-360 { (SW) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (NW) }
- 90 { (W) }
- 90-180 { (SW) }
- 180 { (S) }
- 180-270 { (NW) }
- 270 { (W) }
- 270-360 { (SW) }
- }
- }
- }
-
- import @Geometry
- def @OtherInsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (SW) }
- 0-90 { (SE) }
- 90 { (SE) }
- 90-180 { (NE) }
- 180 { (NE) }
- 180-270 { (NW) }
- 270 { (NW) }
- 270-360 { (SW) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (SE) }
- 0-90 { (SE) }
- 90 { (NE) }
- 90-180 { (NE) }
- 180 { (NW) }
- 180-270 { (NW) }
- 270 { (SW) }
- 270-360 { (SW) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (S) }
- 0-90 { (SE) }
- 90 { (E) }
- 90-180 { (NE) }
- 180 { (N) }
- 180-270 { (NW) }
- 270 { (W) }
- 270-360 { (SW) }
- }
- }
- }
-
- import @Geometry
- def @OtherOutsideProximity
- {
- which @Case {
- { x f } @Yield { labelpos??ANGLE quadcase
- 0 { (NW) }
- 0-90 { (NW) }
- 90 { (SW) }
- 90-180 { (SW) }
- 180 { (SE) }
- 180-270 { (SE) }
- 270 { (NE) }
- 270-360 { (NE) }
- }
- { z t } @Yield { labelpos??ANGLE quadcase
- 0 { (NE) }
- 0-90 { (NW) }
- 90 { (NW) }
- 90-180 { (SW) }
- 180 { (SW) }
- 180-270 { (SE) }
- 270 { (SE) }
- 270-360 { (NE) }
- }
- else @Yield { labelpos??ANGLE quadcase
- 0 { (N) }
- 0-90 { (NW) }
- 90 { (W) }
- 90-180 { (SW) }
- 180 { (S) }
- 180-270 { (SE) }
- 270 { (E) }
- 270-360 { (NE) }
- }
- }
- }
-
-
- import @Geometry
- def @AboveProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedAboveProximity
- "perpendicular" @Yield @PerpendicularAboveProximity
- else @Yield @OtherAboveProximity
- }
- }
-
- import @Geometry
- def @BelowProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedBelowProximity
- "perpendicular" @Yield @PerpendicularBelowProximity
- else @Yield @OtherBelowProximity
- }
- }
-
- import @Geometry
- def @LeftProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedLeftProximity
- "perpendicular" @Yield @PerpendicularLeftProximity
- else @Yield @OtherLeftProximity
- }
- }
-
- import @Geometry
- def @RightProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedRightProximity
- "perpendicular" @Yield @PerpendicularRightProximity
- else @Yield @OtherRightProximity
- }
- }
-
- import @Geometry
- def @InsideProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedInsideProximity
- "perpendicular" @Yield @PerpendicularInsideProximity
- else @Yield @OtherInsideProximity
- }
- }
-
- import @Geometry
- def @OutsideProximity
- {
- labelangle @Case {
- "aligned" @Yield @AlignedOutsideProximity
- "perpendicular" @Yield @PerpendicularOutsideProximity
- else @Yield @OtherOutsideProximity
- }
- }
-
- import @Geometry
- def proximity
- {
- labelprox @Case {
- above @Yield @AboveProximity
- below @Yield @BelowProximity
- left @Yield @LeftProximity
- right @Yield @RightProximity
- inside @Yield @InsideProximity
- outside @Yield @OutsideProximity
- else @Yield { "("labelprox")" }
- }
- }
-
- import @Geometry
- def dorotate
- left point
- right angle
- {
- { {0 0} distance point } atangle { {0 0} angleto point + angle }
- }
-
- import @Geometry
- def translation
- {
- labelctr @Case {
- { no No } @Yield {
- labelpos -- labeltag?!?proximity
- }
- { yes Yes } @Yield {
- #P0 := labelpos
- #P1 := labeltag?!?proximity -- P0
- #P2 := labeltag??CTR -- P0
- #TH := labelpos??ANGLE
- #P1A := P1 dorotate { 0 - TH }
- #P2A := P2 dorotate { 0 - TH }
- #PRA := { 0 - xcoord P2A 0 - ycoord P1A }
- #PRA dorotate TH ++ P0
- XP1 := labeltag?!?proximity
- XP2 := labeltag??CTR
- XANG := labelpos??ANGLE
- XTH := XANG - 90d - { XP1 angleto XP2 }
- XDIST := { XP1 distance XP2 } * sin XTH
- labelpos -- XP1 ++ XDIST atangle XANG
- }
- }
- }
-
- @CatchTags @ZeroSize @Transform
- translate { translation ++ labeladjust }
- rotate { finalangle }
- scale { 1 1 }
- labeltag:: @BoxLabels @CatchTags @AddMargins
- mtop { labelmargin }
- mfoot { labelmargin }
- mleft { labelmargin }
- mright { labelmargin }
- labelfont @Font labelbreak @Break labelformat label
- }
-
-
- #######################################################################
- # #
- # @Node #
- # #
- #######################################################################
-
- def @Node
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { outline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { margin }
- import @Geometry named shadow { shadow }
- import @Geometry named sides { sides }
- import @Geometry named angle { angle }
- named nodetag { nodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { outlinestyle }
- import @Geometry named outlinedashlength { outlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { outlinewidth }
- named outlinecolour outlinecolor { outlinecolour }
- named paint { paint }
- import @TextureImport named texture { texture }
- named font { font }
- named break { break }
- named format right @Body { format @Body }
- named valign { valign }
- named vsize { vsize }
- named vindent { vindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { vstrut }
- named vmargin { vmargin }
- named topmargin { topmargin }
- named footmargin { footmargin }
-
- named halign { halign }
- named hsize { hsize }
- named hindent { hindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { hstrut }
- named hmargin { hmargin }
- named leftmargin { leftmargin }
- named rightmargin { rightmargin }
-
- named nodelabel { nodelabel }
- named nodelabelmargin { nodelabelmargin }
- named nodelabelfont { nodelabelfont }
- named nodelabelbreak { nodelabelbreak }
- named nodelabelformat right @Body { nodelabelformat @Body }
- import @Geometry named nodelabelpos { nodelabelpos }
- named nodelabelprox { nodelabelprox }
- import @Geometry named nodelabelangle { nodelabelangle }
- named nodelabelctr { nodelabelctr }
- import @Geometry named nodelabeladjust { nodelabeladjust }
-
- named alabel { alabel }
- named alabelmargin { alabelmargin }
- named alabelfont { alabelfont }
- named alabelbreak { alabelbreak }
- named alabelformat right @Body { alabelformat @Body }
- import @Geometry named alabelpos { alabelpos }
- named alabelprox { alabelprox }
- import @Geometry named alabelangle { alabelangle }
- named alabelctr { alabelctr }
- import @Geometry named alabeladjust { alabeladjust }
-
- named blabel { blabel }
- named blabelmargin { blabelmargin }
- named blabelfont { blabelfont }
- named blabelbreak { blabelbreak }
- named blabelformat right @Body { blabelformat @Body }
- import @Geometry named blabelpos { blabelpos }
- named blabelprox { blabelprox }
- import @Geometry named blabelangle { blabelangle }
- named blabelctr { blabelctr }
- import @Geometry named blabeladjust { blabeladjust }
-
- named clabel { clabel }
- named clabelmargin { clabelmargin }
- named clabelfont { clabelfont }
- named clabelbreak { clabelbreak }
- named clabelformat right @Body { clabelformat @Body }
- import @Geometry named clabelpos { clabelpos }
- named clabelprox { clabelprox }
- import @Geometry named clabelangle { clabelangle }
- named clabelctr { clabelctr }
- import @Geometry named clabeladjust { clabeladjust }
-
- named dlabel { dlabel }
- named dlabelmargin { dlabelmargin }
- named dlabelfont { dlabelfont }
- named dlabelbreak { dlabelbreak }
- named dlabelformat right @Body { dlabelformat @Body }
- import @Geometry named dlabelpos { dlabelpos }
- named dlabelprox { dlabelprox }
- import @Geometry named dlabelangle { dlabelangle }
- named dlabelctr { dlabelctr }
- import @Geometry named dlabeladjust { dlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @ANode #
- # #
- #######################################################################
-
- def @ANode
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { aoutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { amargin }
- import @Geometry named shadow { ashadow }
- import @Geometry named sides { asides }
- import @Geometry named angle { aangle }
- named nodetag { anodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { aoutlinestyle }
- import @Geometry named outlinedashlength { aoutlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { aoutlinewidth }
- named outlinecolour outlinecolor { aoutlinecolour }
- named paint { apaint }
- import @TextureImport named texture { atexture }
- named font { afont }
- named break { abreak }
- named format right @Body { aformat @Body }
- named valign { avalign }
- named vsize { avsize }
- named vindent { avindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { avstrut }
- named vmargin { avmargin }
- named topmargin { atopmargin }
- named footmargin { afootmargin }
-
- named halign { ahalign }
- named hsize { ahsize }
- named hindent { ahindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { ahstrut }
- named hmargin { ahmargin }
- named leftmargin { aleftmargin }
- named rightmargin { arightmargin }
-
- named nodelabel { anodelabel }
- named nodelabelmargin { anodelabelmargin }
- named nodelabelfont { anodelabelfont }
- named nodelabelbreak { anodelabelbreak }
- named nodelabelformat right @Body { anodelabelformat @Body }
- import @Geometry named nodelabelpos { anodelabelpos }
- named nodelabelprox { anodelabelprox }
- import @Geometry named nodelabelangle { anodelabelangle }
- named nodelabelctr { anodelabelctr }
- import @Geometry named nodelabeladjust { anodelabeladjust }
-
- named alabel { aalabel }
- named alabelmargin { aalabelmargin }
- named alabelfont { aalabelfont }
- named alabelbreak { aalabelbreak }
- named alabelformat right @Body { aalabelformat @Body }
- import @Geometry named alabelpos { aalabelpos }
- named alabelprox { aalabelprox }
- import @Geometry named alabelangle { aalabelangle }
- named alabelctr { aalabelctr }
- import @Geometry named alabeladjust { aalabeladjust }
-
- named blabel { ablabel }
- named blabelmargin { ablabelmargin }
- named blabelfont { ablabelfont }
- named blabelbreak { ablabelbreak }
- named blabelformat right @Body { ablabelformat @Body }
- import @Geometry named blabelpos { ablabelpos }
- named blabelprox { ablabelprox }
- import @Geometry named blabelangle { ablabelangle }
- named blabelctr { ablabelctr }
- import @Geometry named blabeladjust { ablabeladjust }
-
- named clabel { aclabel }
- named clabelmargin { aclabelmargin }
- named clabelfont { aclabelfont }
- named clabelbreak { aclabelbreak }
- named clabelformat right @Body { aclabelformat @Body }
- import @Geometry named clabelpos { aclabelpos }
- named clabelprox { aclabelprox }
- import @Geometry named clabelangle { aclabelangle }
- named clabelctr { aclabelctr }
- import @Geometry named clabeladjust { aclabeladjust }
-
- named dlabel { adlabel }
- named dlabelmargin { adlabelmargin }
- named dlabelfont { adlabelfont }
- named dlabelbreak { adlabelbreak }
- named dlabelformat right @Body { adlabelformat @Body }
- import @Geometry named dlabelpos { adlabelpos }
- named dlabelprox { adlabelprox }
- import @Geometry named dlabelangle { adlabelangle }
- named dlabelctr { adlabelctr }
- import @Geometry named dlabeladjust { adlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @BNode #
- # #
- #######################################################################
-
- def @BNode
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { boutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { bmargin }
- import @Geometry named shadow { bshadow }
- import @Geometry named sides { bsides }
- import @Geometry named angle { bangle }
- named nodetag { bnodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { boutlinestyle }
- import @Geometry named outlinedashlength { boutlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { boutlinewidth }
- named outlinecolour outlinecolor { boutlinecolour }
- named paint { bpaint }
- import @TextureImport named texture { btexture }
- named font { bfont }
- named break { bbreak }
- named format right @Body { bformat @Body }
- named valign { bvalign }
- named vsize { bvsize }
- named vindent { bvindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { bvstrut }
- named vmargin { bvmargin }
- named topmargin { btopmargin }
- named footmargin { bfootmargin }
-
- named halign { bhalign }
- named hsize { bhsize }
- named hindent { bhindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { bhstrut }
- named hmargin { bhmargin }
- named leftmargin { bleftmargin }
- named rightmargin { brightmargin }
-
- named nodelabel { bnodelabel }
- named nodelabelmargin { bnodelabelmargin }
- named nodelabelfont { bnodelabelfont }
- named nodelabelbreak { bnodelabelbreak }
- named nodelabelformat right @Body { bnodelabelformat @Body }
- import @Geometry named nodelabelpos { bnodelabelpos }
- named nodelabelprox { bnodelabelprox }
- import @Geometry named nodelabelangle { bnodelabelangle }
- named nodelabelctr { bnodelabelctr }
- import @Geometry named nodelabeladjust { bnodelabeladjust }
-
- named alabel { balabel }
- named alabelmargin { balabelmargin }
- named alabelfont { balabelfont }
- named alabelbreak { balabelbreak }
- named alabelformat right @Body { balabelformat @Body }
- import @Geometry named alabelpos { balabelpos }
- named alabelprox { balabelprox }
- import @Geometry named alabelangle { balabelangle }
- named alabelctr { balabelctr }
- import @Geometry named alabeladjust { balabeladjust }
-
- named blabel { bblabel }
- named blabelmargin { bblabelmargin }
- named blabelfont { bblabelfont }
- named blabelbreak { bblabelbreak }
- named blabelformat right @Body { bblabelformat @Body }
- import @Geometry named blabelpos { bblabelpos }
- named blabelprox { bblabelprox }
- import @Geometry named blabelangle { bblabelangle }
- named blabelctr { bblabelctr }
- import @Geometry named blabeladjust { bblabeladjust }
-
- named clabel { bclabel }
- named clabelmargin { bclabelmargin }
- named clabelfont { bclabelfont }
- named clabelbreak { bclabelbreak }
- named clabelformat right @Body { bclabelformat @Body }
- import @Geometry named clabelpos { bclabelpos }
- named clabelprox { bclabelprox }
- import @Geometry named clabelangle { bclabelangle }
- named clabelctr { bclabelctr }
- import @Geometry named clabeladjust { bclabeladjust }
-
- named dlabel { bdlabel }
- named dlabelmargin { bdlabelmargin }
- named dlabelfont { bdlabelfont }
- named dlabelbreak { bdlabelbreak }
- named dlabelformat right @Body { bdlabelformat @Body }
- import @Geometry named dlabelpos { bdlabelpos }
- named dlabelprox { bdlabelprox }
- import @Geometry named dlabelangle { bdlabelangle }
- named dlabelctr { bdlabelctr }
- import @Geometry named dlabeladjust { bdlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @CNode #
- # #
- #######################################################################
-
- def @CNode
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { coutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { cmargin }
- import @Geometry named shadow { cshadow }
- import @Geometry named sides { csides }
- import @Geometry named angle { cangle }
- named nodetag { cnodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { coutlinestyle }
- import @Geometry named outlinedashlength { coutlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { coutlinewidth }
- named outlinecolour outlinecolor { coutlinecolour }
- named paint { cpaint }
- import @TextureImport named texture { ctexture }
- named font { cfont }
- named break { cbreak }
- named format right @Body { cformat @Body }
- named valign { cvalign }
- named vsize { cvsize }
- named vindent { cvindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { cvstrut }
- named vmargin { cvmargin }
- named topmargin { ctopmargin }
- named footmargin { cfootmargin }
-
- named halign { chalign }
- named hsize { chsize }
- named hindent { chindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { chstrut }
- named hmargin { chmargin }
- named leftmargin { cleftmargin }
- named rightmargin { crightmargin }
-
- named nodelabel { cnodelabel }
- named nodelabelmargin { cnodelabelmargin }
- named nodelabelfont { cnodelabelfont }
- named nodelabelbreak { cnodelabelbreak }
- named nodelabelformat right @Body { cnodelabelformat @Body }
- import @Geometry named nodelabelpos { cnodelabelpos }
- named nodelabelprox { cnodelabelprox }
- import @Geometry named nodelabelangle { cnodelabelangle }
- named nodelabelctr { cnodelabelctr }
- import @Geometry named nodelabeladjust { cnodelabeladjust }
-
- named alabel { calabel }
- named alabelmargin { calabelmargin }
- named alabelfont { calabelfont }
- named alabelbreak { calabelbreak }
- named alabelformat right @Body { calabelformat @Body }
- import @Geometry named alabelpos { calabelpos }
- named alabelprox { calabelprox }
- import @Geometry named alabelangle { calabelangle }
- named alabelctr { calabelctr }
- import @Geometry named alabeladjust { calabeladjust }
-
- named blabel { cblabel }
- named blabelmargin { cblabelmargin }
- named blabelfont { cblabelfont }
- named blabelbreak { cblabelbreak }
- named blabelformat right @Body { cblabelformat @Body }
- import @Geometry named blabelpos { cblabelpos }
- named blabelprox { cblabelprox }
- import @Geometry named blabelangle { cblabelangle }
- named blabelctr { cblabelctr }
- import @Geometry named blabeladjust { cblabeladjust }
-
- named clabel { cclabel }
- named clabelmargin { cclabelmargin }
- named clabelfont { cclabelfont }
- named clabelbreak { cclabelbreak }
- named clabelformat right @Body { cclabelformat @Body }
- import @Geometry named clabelpos { cclabelpos }
- named clabelprox { cclabelprox }
- import @Geometry named clabelangle { cclabelangle }
- named clabelctr { cclabelctr }
- import @Geometry named clabeladjust { cclabeladjust }
-
- named dlabel { cdlabel }
- named dlabelmargin { cdlabelmargin }
- named dlabelfont { cdlabelfont }
- named dlabelbreak { cdlabelbreak }
- named dlabelformat right @Body { cdlabelformat @Body }
- import @Geometry named dlabelpos { cdlabelpos }
- named dlabelprox { cdlabelprox }
- import @Geometry named dlabelangle { cdlabelangle }
- named dlabelctr { cdlabelctr }
- import @Geometry named dlabeladjust { cdlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @DNode #
- # #
- #######################################################################
-
- def @DNode
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { doutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { dmargin }
- import @Geometry named shadow { dshadow }
- import @Geometry named sides { dsides }
- import @Geometry named angle { dangle }
- named nodetag { dnodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { doutlinestyle }
- import @Geometry named outlinedashlength { doutlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { doutlinewidth }
- named outlinecolour outlinecolor { doutlinecolour }
- named paint { dpaint }
- import @TextureImport named texture { dtexture }
- named font { dfont }
- named break { dbreak }
- named format right @Body { dformat @Body }
- named valign { dvalign }
- named vsize { dvsize }
- named vindent { dvindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { dvstrut }
- named vmargin { dvmargin }
- named topmargin { dtopmargin }
- named footmargin { dfootmargin }
-
- named halign { dhalign }
- named hsize { dhsize }
- named hindent { dhindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { dhstrut }
- named hmargin { dhmargin }
- named leftmargin { dleftmargin }
- named rightmargin { drightmargin }
-
- named nodelabel { dnodelabel }
- named nodelabelmargin { dnodelabelmargin }
- named nodelabelfont { dnodelabelfont }
- named nodelabelbreak { dnodelabelbreak }
- named nodelabelformat right @Body { dnodelabelformat @Body }
- import @Geometry named nodelabelpos { dnodelabelpos }
- named nodelabelprox { dnodelabelprox }
- import @Geometry named nodelabelangle { dnodelabelangle }
- named nodelabelctr { dnodelabelctr }
- import @Geometry named nodelabeladjust { dnodelabeladjust }
-
- named alabel { dalabel }
- named alabelmargin { dalabelmargin }
- named alabelfont { dalabelfont }
- named alabelbreak { dalabelbreak }
- named alabelformat right @Body { dalabelformat @Body }
- import @Geometry named alabelpos { dalabelpos }
- named alabelprox { dalabelprox }
- import @Geometry named alabelangle { dalabelangle }
- named alabelctr { dalabelctr }
- import @Geometry named alabeladjust { calabeladjust }
-
- named blabel { dblabel }
- named blabelmargin { dblabelmargin }
- named blabelfont { dblabelfont }
- named blabelbreak { dblabelbreak }
- named blabelformat right @Body { dblabelformat @Body }
- import @Geometry named blabelpos { dblabelpos }
- named blabelprox { dblabelprox }
- import @Geometry named blabelangle { dblabelangle }
- named blabelctr { dblabelctr }
- import @Geometry named blabeladjust { dblabeladjust }
-
- named clabel { dclabel }
- named clabelmargin { dclabelmargin }
- named clabelfont { dclabelfont }
- named clabelbreak { dclabelbreak }
- named clabelformat right @Body { dclabelformat @Body }
- import @Geometry named clabelpos { dclabelpos }
- named clabelprox { dclabelprox }
- import @Geometry named clabelangle { dclabelangle }
- named clabelctr { dclabelctr }
- import @Geometry named clabeladjust { dclabeladjust }
-
- named dlabel { ddlabel }
- named dlabelmargin { ddlabelmargin }
- named dlabelfont { ddlabelfont }
- named dlabelbreak { ddlabelbreak }
- named dlabelformat right @Body { ddlabelformat @Body }
- import @Geometry named dlabelpos { ddlabelpos }
- named dlabelprox { ddlabelprox }
- import @Geometry named dlabelangle { ddlabelangle }
- named dlabelctr { ddlabelctr }
- import @Geometry named dlabeladjust { ddlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @ENode #
- # #
- #######################################################################
-
- def @ENode
- import @Geometry named translate
- named to precedence 10 left x right y {
- @BackEnd @Case {
- PostScript @Yield { x y "ldiagpsub" }
- PDF @Yield {""}
- }
- }
- {}
- import @Geometry named rotate { 0d }
- import @Geometry named outline
- named margin {}
- named shadow {}
- named sides {}
- named angle {}
- { eoutline
- margin { margin }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- named margin { emargin }
- import @Geometry named shadow { eshadow }
- import @Geometry named sides { esides }
- import @Geometry named angle { eangle }
- named nodetag { enodetag }
- named outlinestyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { eoutlinestyle }
- import @Geometry named outlinedashlength { eoutlinedashlength}
- import @Geometry named outlinewidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { eoutlinewidth }
- named outlinecolour outlinecolor { eoutlinecolour }
- named paint { epaint }
- import @TextureImport named texture { etexture }
- named font { efont }
- named break { ebreak }
- named format right @Body { eformat @Body }
- named valign { evalign }
- named vsize { evsize }
- named vindent { evindent }
- named vstrut
- named no { 0.0f }
- named yes { 1.0f }
- { evstrut }
- named vmargin { evmargin }
- named topmargin { etopmargin }
- named footmargin { efootmargin }
-
- named halign { ehalign }
- named hsize { ehsize }
- named hindent { ehindent }
- named hstrut
- named no { 0.0f }
- named yes { 1.0f }
- { ehstrut }
- named hmargin { ehmargin }
- named leftmargin { eleftmargin }
- named rightmargin { erightmargin }
-
- named nodelabel { enodelabel }
- named nodelabelmargin { enodelabelmargin }
- named nodelabelfont { enodelabelfont }
- named nodelabelbreak { enodelabelbreak }
- named nodelabelformat right @Body { enodelabelformat @Body }
- import @Geometry named nodelabelpos { enodelabelpos }
- named nodelabelprox { enodelabelprox }
- import @Geometry named nodelabelangle { enodelabelangle }
- named nodelabelctr { enodelabelctr }
- import @Geometry named nodelabeladjust { enodelabeladjust }
-
- named alabel { ealabel }
- named alabelmargin { ealabelmargin }
- named alabelfont { ealabelfont }
- named alabelbreak { ealabelbreak }
- named alabelformat right @Body { ealabelformat @Body }
- import @Geometry named alabelpos { ealabelpos }
- named alabelprox { ealabelprox }
- import @Geometry named alabelangle { ealabelangle }
- named alabelctr { ealabelctr }
- import @Geometry named alabeladjust { ealabeladjust }
-
- named blabel { eblabel }
- named blabelmargin { eblabelmargin }
- named blabelfont { eblabelfont }
- named blabelbreak { eblabelbreak }
- named blabelformat right @Body { eblabelformat @Body }
- import @Geometry named blabelpos { eblabelpos }
- named blabelprox { eblabelprox }
- import @Geometry named blabelangle { eblabelangle }
- named blabelctr { eblabelctr }
- import @Geometry named blabeladjust { eblabeladjust }
-
- named clabel { eclabel }
- named clabelmargin { eclabelmargin }
- named clabelfont { eclabelfont }
- named clabelbreak { eclabelbreak }
- named clabelformat right @Body { eclabelformat @Body }
- import @Geometry named clabelpos { eclabelpos }
- named clabelprox { eclabelprox }
- import @Geometry named clabelangle { eclabelangle }
- named clabelctr { eclabelctr }
- import @Geometry named clabeladjust { eclabeladjust }
-
- named dlabel { edlabel }
- named dlabelmargin { edlabelmargin }
- named dlabelfont { edlabelfont }
- named dlabelbreak { edlabelbreak }
- named dlabelformat right @Body { edlabelformat @Body }
- import @Geometry named dlabelpos { edlabelpos }
- named dlabelprox { edlabelprox }
- import @Geometry named dlabelangle { edlabelangle }
- named dlabelctr { edlabelctr }
- import @Geometry named dlabeladjust { edlabeladjust }
-
- right @Body
- {
-
- def @LabelPos
- left x
- right y
- {
- nodelabelpos @Case {
- x @Yield y
- else @Yield ""
- }
- }
-
- def @If
- left cond
- right x
- {
- cond @Case {
- { yes Yes } @Yield x
- else @Yield ""
- }
- }
-
-
- def @Strut right x
- {
- def vs { 0.5w @VShift { vstrut @High } }
- def hs { hstrut @Wide }
-
- @HContract @VContract {
- @HContract @VContract x | vs / hs |
- }
- }
-
- def @Indent right x
- {
- x @Case {
- { top left } @Yield 0.0rt
- { ctr } @Yield 0.5rt
- { foot right } @Yield 1.0rt
- { mctr } @Yield 0.5bx
- else @Yield x
- }
- }
-
- def @VSize right x
- {
- vsize @Case {
- "" @Yield x
- else @Yield { vsize @High { /{@Indent vindent} x / } }
- }
- }
-
- def @HSize right x
- {
- hsize @Case {
- "" @Yield x
- else @Yield { hsize @Wide { |{@Indent hindent} x | } }
- }
- }
-
- def @Align right x
- {
- x @Case {
- { top left } @Yield 0.0w
- { ctr } @Yield 0.5w
- { foot right } @Yield 1.0w
- { mark } @Yield "+0i"
- else @Yield x
- }
- }
-
- def @ALabel
- {
- @DoLabel
- which { "a" }
- label { alabel @Else nodelabel }
- labelmargin { alabelmargin @Else nodelabelmargin }
- labelfont { alabelfont @Else nodelabelfont }
- labelbreak { alabelbreak @Else nodelabelbreak }
- labelformat { alabelformat @Body @Else nodelabelformat @Body}
- labelpos { alabelpos @Else nodelabelpos }
- labelprox { alabelprox @Else nodelabelprox }
- labelangle { alabelangle @Else nodelabelangle }
- labelctr { alabelctr @Else nodelabelctr }
- labeladjust { alabeladjust @Else nodelabeladjust }
- }
-
- def @BLabel
- {
- @DoLabel
- which { "b" }
- label { blabel @Else nodelabel }
- labelmargin { blabelmargin @Else nodelabelmargin }
- labelfont { blabelfont @Else nodelabelfont }
- labelbreak { blabelbreak @Else nodelabelbreak }
- labelformat { blabelformat @Body @Else nodelabelformat @Body}
- labelpos { blabelpos @Else nodelabelpos }
- labelprox { blabelprox @Else nodelabelprox }
- labelangle { blabelangle @Else nodelabelangle }
- labelctr { blabelctr @Else nodelabelctr }
- labeladjust { blabeladjust @Else nodelabeladjust }
- }
-
- def @CLabel
- {
- @DoLabel
- which { "c" }
- label { clabel @Else nodelabel }
- labelmargin { clabelmargin @Else nodelabelmargin }
- labelfont { clabelfont @Else nodelabelfont }
- labelbreak { clabelbreak @Else nodelabelbreak }
- labelformat { clabelformat @Body @Else nodelabelformat @Body}
- labelpos { clabelpos @Else nodelabelpos }
- labelprox { clabelprox @Else nodelabelprox }
- labelangle { clabelangle @Else nodelabelangle }
- labelctr { clabelctr @Else nodelabelctr }
- labeladjust { clabeladjust @Else nodelabeladjust }
- }
-
- def @DLabel
- {
- @DoLabel
- which { "d" }
- label { dlabel @Else nodelabel }
- labelmargin { dlabelmargin @Else nodelabelmargin }
- labelfont { dlabelfont @Else nodelabelfont }
- labelbreak { dlabelbreak @Else nodelabelbreak }
- labelformat { dlabelformat @Body @Else nodelabelformat @Body}
- labelpos { dlabelpos @Else nodelabelpos }
- labelprox { dlabelprox @Else nodelabelprox }
- labelangle { dlabelangle @Else nodelabelangle }
- labelctr { dlabelctr @Else nodelabelctr }
- labeladjust { dlabeladjust @Else nodelabeladjust }
- }
-
- import @Geometry
- def @OutLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- outline @Case {
- box @Yield { "ldiagbox" }
- curvebox @Yield { "("margin") ldiagcurvebox" }
- shadowbox @Yield { shadow "ldiagshadow ldiagbox" }
- square @Yield { "ldiagsquare" }
- diamond @Yield { "ldiagdiamond" }
- polygon @Yield { sides angle "ldiagpolygon" }
- isosceles @Yield { "ldiagisosceles" }
- ellipse @Yield { "ldiagellipse" }
- circle @Yield { "ldiagcircle" }
- else @Yield {
- outline
- margin { "("margin") ldiagdecodelength" }
- shadow { shadow }
- sides { sides }
- angle { angle }
- }
- }
- }
- PDF @Yield {}
- }
- }
-
- def @Value
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- {
- "ldiagnodebegin [" @OutLine "]" outlinedashlength
- "[" outlinestyle "]" outlinewidth
- "{" @ColourCommand outlinecolour "}"
- paint @PSAddPaint texture "ldiagnodeend"
- "(IN) ldiagpushtagdict"
- //
- "ldiagpopuptagdict"
- }
- @Graphic
- {
- {@Align valign} @VShift {@Align halign} @HShift
- @AddMargins
- mtop { topmargin @Else vmargin @Else margin }
- mfoot { footmargin @Else vmargin @Else margin }
- mleft { leftmargin @Else hmargin @Else margin }
- mright { rightmargin @Else hmargin @Else margin }
- @HSize @VSize @HContract @VContract
- font @Font break @Break format @Strut @Body
- }
- / {alabel @Else nodelabel} @IfNonEmpty @ALabel
- / {blabel @Else nodelabel} @IfNonEmpty @BLabel
- / {clabel @Else nodelabel} @IfNonEmpty @CLabel
- / {dlabel @Else nodelabel} @IfNonEmpty @DLabel
- }
- }
- PDF @Yield {}
- }
- }
-
- def @TValue
- {
- nodetag @Case {
- "" @Yield @Value
- else @Yield { nodetag:: @Value }
- }
- }
-
- translate @Case {
- "" @Yield @TValue
- else @Yield {
- @Null & # so that preceding space gets chewed up
- @Transform translate { translate } rotate { rotate } @TValue
- }
- }
- }
-
-
- #######################################################################
- # #
- # @Box, @CurveBox, and other standard node abbreviations #
- # #
- #######################################################################
-
- macro @@Node { @Node }
- macro @Box { @Node outline { box } }
- macro @CurveBox { @Node outline { curvebox } }
- macro @ShadowBox { @Node outline { shadowbox } }
- macro @Square { @Node outline { square } }
- macro @Diamond { @Node outline { diamond } }
- macro @Polygon { @Node outline { polygon } }
- macro @Isosceles { @Node outline { isosceles } }
- macro @Ellipse { @Node outline { ellipse } }
- macro @Circle { @Node outline { circle } }
-
-
- #######################################################################
- # #
- # Arrowheads #
- # #
- #######################################################################
-
- macro @InsulatedNode {
- @Node
- topmargin { 0i }
- footmargin { 0i }
- leftmargin { 0i }
- rightmargin { 0i }
- alabel {}
- blabel {}
- clabel {}
- dlabel {}
- hsize {}
- vsize {}
- vstrut { no }
- hstrut { no }
- paint { nochange }
- texture { solid }
- outlinestyle { noline }
- }
-
- def @SolidArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- "ldiagsolidarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @SolidWithBarArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- pathwidth "ldiagsolidwithbararrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @OpenArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- named pathgap { pathgap }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- pathwidth pathgap "ldiagopenarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @HalfOpenArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- named pathgap { pathgap }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- pathwidth pathgap "ldiaghalfopenarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @SolidCurvedArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- "ldiagsolidcurvedarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @OpenCurvedArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- named pathgap { pathgap }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- pathwidth pathgap "ldiagopencurvedarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @HalfOpenCurvedArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- named pathgap { pathgap }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield {
- pathwidth pathgap "ldiaghalfopencurvedarrowhead"
- }
- PDF @Yield {}
- }
- }
- {
- length @Wide width @High
- }
- }
-
- def @CircleArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline { circle }
- { length @Wide length @High }
- }
-
- def @BoxArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline { box }
- { length @Wide width @High }
- }
-
- def @ManyArrowHead
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- {
- @InsulatedNode
- outlinewidth { pathwidth }
- outline {
- @BackEnd @Case {
- PostScript @Yield { pathwidth "ldiagmanyarrowhead" }
- PDF @Yield {}
- }
- }
- { length @Wide width @High }
- }
-
- def @ArrowHead
- named style { arrowstyle }
- named width { arrowwidth }
- named length { arrowlength }
- named pathwidth { pathwidth }
- named pathcolour { pathcolour }
- named pathgap { pathgap }
- {
- {@ColourCommand pathcolour} @SetColour style @Case {
- solid @Yield @SolidArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- solidwithbar @Yield @SolidWithBarArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- halfopen @Yield @HalfOpenArrowHead
- width { width } length { length }
- pathwidth { pathwidth } pathgap { pathgap }
- open @Yield @OpenArrowHead
- width { width } length { length }
- pathwidth { pathwidth } pathgap { pathgap }
- curvedsolid @Yield @SolidCurvedArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- curvedhalfopen @Yield @HalfOpenCurvedArrowHead
- width { width } length { length }
- pathwidth { pathwidth } pathgap { pathgap }
- curvedopen @Yield @OpenCurvedArrowHead
- width { width } length { length }
- pathwidth { pathwidth } pathgap { pathgap }
- circle @Yield @CircleArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- box @Yield @BoxArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- many @Yield @ManyArrowHead
- width { width } length { length }
- pathwidth { pathwidth }
- }
- }
-
-
- #######################################################################
- # #
- # @Link #
- # #
- #######################################################################
-
- def @Link
- import @Geometry named path
- named from {}
- named to {}
- named bias {}
- named fbias {}
- named tbias {}
- named hfrac {}
- named hbias {}
- named radius {}
- named xindent {}
- named zindent {}
- named frompt {}
- named topt {}
- named arrow {}
- named arrowlength {}
- named backarrowlength {}
- { path
- from { from }
- to { to }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- arrow { arrow }
- arrowlength { arrowlength }
- backarrowlength { backarrowlength }
- }
- import @Geometry named from { from }
- import @Geometry named to { to }
- import @Geometry named bias { bias }
- import @Geometry named fbias { fbias }
- import @Geometry named tbias { tbias }
- import @Geometry named hfrac { hfrac }
- import @Geometry named hbias { hbias }
- import @Geometry named radius { radius }
- import @Geometry named xindent { xindent }
- import @Geometry named zindent { zindent }
- import @Geometry named frompt { frompt }
- import @Geometry named topt { topt }
- named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { pathstyle }
- import @Geometry named pathdashlength { pathdashlength }
- import @Geometry named pathwidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { pathwidth }
- named pathcolour pathcolor { pathcolour }
- import @Geometry named pathgap
- named thin { 0.08 ft }
- named medium { 0.16 ft }
- named thick { 0.24 ft }
- { pathgap }
-
- named arrow { arrow }
- named arrowstyle { arrowstyle }
- named arrowwidth { arrowwidth }
- named arrowlength { arrowlength }
- named backarrowstyle { backarrowstyle }
- named backarrowwidth { backarrowwidth }
- named backarrowlength { backarrowlength }
-
- named linklabel { linklabel }
- named linklabelmargin { linklabelmargin }
- named linklabelfont { linklabelfont }
- named linklabelbreak { linklabelbreak }
- named linklabelformat right @Body { linklabelformat @Body }
- import @Geometry named linklabelpos { linklabelpos }
- named linklabelprox { linklabelprox }
- import @Geometry named linklabelangle { linklabelangle }
- named linklabelctr { linklabelctr }
- import @Geometry named linklabeladjust { linklabeladjust }
-
- named xlabel { xlabel }
- named xlabelmargin { xlabelmargin }
- named xlabelfont { xlabelfont }
- named xlabelbreak { xlabelbreak }
- named xlabelformat right @Body { xlabelformat @Body }
- import @Geometry named xlabelpos { xlabelpos }
- named xlabelprox { xlabelprox }
- import @Geometry named xlabelangle { xlabelangle }
- named xlabelctr { xlabelctr }
- import @Geometry named xlabeladjust { xlabeladjust }
-
- named ylabel { ylabel }
- named ylabelmargin { ylabelmargin }
- named ylabelfont { ylabelfont }
- named ylabelbreak { ylabelbreak }
- named ylabelformat right @Body { ylabelformat @Body }
- import @Geometry named ylabelpos { ylabelpos }
- named ylabelprox { ylabelprox }
- import @Geometry named ylabelangle { ylabelangle }
- named ylabelctr { ylabelctr }
- import @Geometry named ylabeladjust { ylabeladjust }
-
- named zlabel { zlabel }
- named zlabelmargin { zlabelmargin }
- named zlabelfont { zlabelfont }
- named zlabelbreak { zlabelbreak }
- named zlabelformat right @Body { zlabelformat @Body }
- import @Geometry named zlabelpos { zlabelpos }
- named zlabelprox { zlabelprox }
- import @Geometry named zlabelangle { zlabelangle }
- named zlabelctr { zlabelctr }
- import @Geometry named zlabeladjust { zlabeladjust }
-
- named fromlabel { fromlabel }
- named fromlabelmargin { fromlabelmargin }
- named fromlabelfont { fromlabelfont }
- named fromlabelbreak { fromlabelbreak }
- named fromlabelformat right @Body { fromlabelformat @Body }
- import @Geometry named fromlabelpos { fromlabelpos }
- named fromlabelprox { fromlabelprox }
- import @Geometry named fromlabelangle { fromlabelangle }
- named fromlabelctr { fromlabelctr }
- import @Geometry named fromlabeladjust { fromlabeladjust }
-
- named tolabel { tolabel }
- named tolabelmargin { tolabelmargin }
- named tolabelfont { tolabelfont }
- named tolabelbreak { tolabelbreak }
- named tolabelformat right @Body { tolabelformat @Body }
- import @Geometry named tolabelpos { tolabelpos }
- named tolabelprox { tolabelprox }
- import @Geometry named tolabelangle { tolabelangle }
- named tolabelctr { tolabelctr }
- import @Geometry named tolabeladjust{ tolabeladjust }
-
- {
- def @XLabel
- {
- @DoLabel
- which { "x" }
- label { xlabel @Else linklabel }
- labelmargin { xlabelmargin @Else linklabelmargin }
- labelfont { xlabelfont @Else linklabelfont }
- labelbreak { xlabelbreak @Else linklabelbreak }
- labelformat { xlabelformat @Body @Else linklabelformat @Body}
- labelpos { xlabelpos @Else linklabelpos }
- labelprox { xlabelprox @Else linklabelprox }
- labelangle { xlabelangle @Else linklabelangle }
- labelctr { xlabelctr @Else linklabelctr }
- labeladjust { xlabeladjust @Else linklabeladjust }
- }
-
- def @YLabel
- {
- @DoLabel
- which { "y" }
- label { ylabel @Else linklabel }
- labelmargin { ylabelmargin @Else linklabelmargin }
- labelfont { ylabelfont @Else linklabelfont }
- labelbreak { ylabelbreak @Else linklabelbreak }
- labelformat { ylabelformat @Body @Else linklabelformat @Body}
- labelpos { ylabelpos @Else linklabelpos }
- labelprox { ylabelprox @Else linklabelprox }
- labelangle { ylabelangle @Else linklabelangle }
- labelctr { ylabelctr @Else linklabelctr }
- labeladjust { ylabeladjust @Else linklabeladjust }
- }
-
- def @ZLabel
- {
- @DoLabel
- which { "z" }
- label { zlabel @Else linklabel }
- labelmargin { zlabelmargin @Else linklabelmargin }
- labelfont { zlabelfont @Else linklabelfont }
- labelbreak { zlabelbreak @Else linklabelbreak }
- labelformat { zlabelformat @Body @Else linklabelformat @Body}
- labelpos { zlabelpos @Else linklabelpos }
- labelprox { zlabelprox @Else linklabelprox }
- labelangle { zlabelangle @Else linklabelangle }
- labelctr { zlabelctr @Else linklabelctr }
- labeladjust { zlabeladjust @Else linklabeladjust }
- }
-
- def @PathGap
- {
- path @Case {
- doubleline @Yield { pathgap }
- else @Yield { "0" }
- }
- }
-
- def @FromArrow
- {
- arrow @Case {
- { back both } @Yield {
- @ArrowHead
- style { backarrowstyle }
- width { backarrowwidth }
- length { backarrowlength }
- pathwidth { pathwidth }
- pathcolour { pathcolour }
- pathgap { @PathGap }
- }
- else @Yield ""
- }
- }
-
- def @ToArrow
- {
- arrow @Case {
- { yes forward both } @Yield {
- @ArrowHead
- style { arrowstyle }
- width { arrowwidth }
- length { arrowlength }
- pathwidth { pathwidth }
- pathcolour { pathcolour }
- pathgap { @PathGap }
- }
- else @Yield ""
- }
- }
-
- import @Geometry
- def @LinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent "ldiaglinepath"
- # FROM :< {from??CTR angleto to??CTR}
- # FROM :: from boundaryatangle FROM@ANGLE
- # ++ {arrow @FromArrowLength backarrowlength}atangle FROM@ANGLE
- # TO :< FROM@ANGLE
- # TO :: to boundaryatangle { TO@ANGLE - 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle {TO@ANGLE - 180d}
- #
- # LMID :: FROM ** 0.5 ++ TO ** 0.5
- # LMID :< FROM@ANGLE
- # XINDENT := xindent min { FROM distance LMID }
- # LFROM :: FROM ++ XINDENT atangle FROM@ANGLE
- # LFROM :< FROM@ANGLE
- # ZINDENT := zindent min { TO distance LMID }
- # LTO :: TO -- ZINDENT atangle FROM@ANGLE
- # LTO :< FROM@ANGLE
- #
- # if cond { direct }
- # then { FROM TO }
- # else { FROM LFROM LMID LTO TO }
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @DoubleLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent pathgap "ldiagdoublelinepath"
- # FROM :< {from??CTR angleto to??CTR}
- # FROM :: from boundaryatangle FROM@ANGLE
- # ++ {arrow @FromArrowLength backarrowlength}atangle FROM@ANGLE
- # TO :< FROM@ANGLE
- # TO :: to boundaryatangle { TO@ANGLE - 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle {TO@ANGLE - 180d}
- #
- # LMID :: FROM ** 0.5 ++ TO ** 0.5
- # LMID :< FROM@ANGLE
- # XINDENT := xindent min { FROM distance LMID }
- # LFROM :: FROM ++ XINDENT atangle FROM@ANGLE
- # LFROM :< FROM@ANGLE
- # ZINDENT := zindent min { TO distance LMID }
- # LTO :: TO -- ZINDENT atangle FROM@ANGLE
- # LTO :< FROM@ANGLE
- #
- # if cond { direct }
- # then { FROM TO }
- # else { FROM LFROM LMID LTO TO }
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @ACurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiagacurvepath"
- # #B1 := bias max 0.02f
- # #B2 := { from??CTR distance to??CTR } * 0.5
- # #BIAS := B1 min B2
- # BIAS := bias max 0.02f
- # XMID := from??CTR ** 0.5 ++ to??CTR ** 0.5
- # XTOP := XMID ++ BIAS atangle {from??CTR angleto to??CTR - 90d}
- # CTR := { from??CTR XTOP ldiaglinebetween
- # to??CTR XTOP ldiaglinebetween ldiaglineintersect }
- # FROM :: aabout
- # circum { from }
- # extra { arrow @FromArrowLength backarrowlength }
- # centre { CTR }
- # FROM :< if cond { from??CTR distance FROM > 0 }
- # then { from??CTR angleto FROM }
- # else { CTR angleto FROM + 90d }
- # TO :: cabout
- # circum { to }
- # extra { arrow @ToArrowLength arrowlength }
- # centre { CTR }
- # TO :< if cond { TO distance to??CTR > 0 }
- # then { TO angleto to??CTR }
- # else { CTR angleto TO + 90d }
- #
- # RADIUS := CTR distance FROM
- # LMID :: CTR ++ RADIUS atangle {
- # CTR angleto FROM +
- # { {360d + {CTR angleto TO} - {CTR angleto FROM}} mod 360 } / 2
- # }
- # LMID :< CTR angleto LMID + 90d
- #
- # XINDENT := xindent min { FROM distance LMID }
- # LFROM :: CTR ++ RADIUS atangle {
- # CTR angleto { FROM ++ XINDENT atangle FROM@ANGLE } }
- # LFROM :< CTR angleto LFROM + 90d
- # ZINDENT := zindent min { TO distance LMID }
- # LTO :: CTR ++ RADIUS atangle {
- # CTR angleto { TO ++ ZINDENT atangle {TO@ANGLE+180d}}}
- # LTO :< CTR angleto LTO + 90d
- #
- # if cond { direct }
- # then { FROM [CTR] TO }
- # else { FROM [CTR] LFROM [CTR] LMID [CTR] LTO [CTR] TO }
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @CCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiagccurvepath"
- # #B1 := bias max 0.02f
- # #B2 := { from??CTR distance to??CTR } * 0.5
- # #BIAS := B1 min B2
- # BIAS := bias max 0.02f
- # XMID := from??CTR ** 0.5 ++ to??CTR ** 0.5
- # XTOP := XMID ++ BIAS atangle {from??CTR angleto to??CTR + 90d}
- # CTR := { from??CTR XTOP ldiaglinebetween
- # to??CTR XTOP ldiaglinebetween ldiaglineintersect }
- # FROM :: cabout
- # circum { from }
- # extra { arrow @FromArrowLength backarrowlength }
- # centre { CTR }
- # FROM :< if cond { from??CTR distance FROM > 0 }
- # then { from??CTR angleto FROM }
- # else { CTR angleto FROM - 90d }
- # TO :: aabout
- # circum { to }
- # extra { arrow @ToArrowLength arrowlength }
- # centre { CTR }
- # TO :< if cond { TO distance to??CTR > 0 }
- # then { TO angleto to??CTR }
- # else { CTR angleto TO - 90d }
- #
- # RADIUS := CTR distance FROM
- # LMID :: CTR ++ RADIUS atangle {
- # CTR angleto TO +
- # { {360d + {CTR angleto FROM} - {CTR angleto TO} } mod 360 } / 2
- # }
- # LMID :< CTR angleto LMID - 90d
- #
- # XINDENT := xindent min { FROM distance LMID }
- # LFROM :: CTR ++ RADIUS atangle {
- # CTR angleto { FROM ++ XINDENT atangle FROM@ANGLE } }
- # LFROM :< CTR angleto LFROM - 90d
- # ZINDENT := zindent min { TO distance LMID }
- # LTO :: CTR ++ RADIUS atangle {
- # CTR angleto { TO ++ ZINDENT atangle {TO@ANGLE+180d}}}
- # LTO :< CTR angleto LTO - 90d
- #
- # if cond { direct }
- # then { FROM [CTR clockwise] TO }
- # else { FROM [CTR clockwise] LFROM [CTR clockwise]
- # LMID [CTR clockwise] LTO [CTR clockwise] TO }
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @BezierPath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent [ frompt ] [ topt ] "ldiagbezierpath"
- # FROM :< from??CTR angleto frompt
- # FROM :: from boundaryatangle FROM@ANGLE
- # ++ {arrow @FromArrowLength backarrowlength} atangle FROM@ANGLE
- # TO :< topt angleto to??CTR
- # TO :: to boundaryatangle { TO@ANGLE + 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle { TO@ANGLE + 180d }
- # LFROM :: FROM ++ { xindent atangle FROM@ANGLE }
- # LFROM :< FROM@ANGLE
- # LTO :: TO ++ zindent atangle { TO@ANGLE + 180d }
- # LTO :< TO@ANGLE
- # LMID :: { FROM ++ TO ++ frompt ++ topt } ** 0.25
- # FROM [frompt topt] TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @VHLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent "ldiagvhlinepath"
- # CTR := { {xcoord from??CTR} {ycoord to??CTR} }
- # FANG := from??CTR angleto CTR
- # TANG := to??CTR angleto CTR
- # FROM :: from boundaryatangle FANG
- # ++ {arrow @FromArrowLength backarrowlength} atangle FANG
- # FROM :< FANG
- # TO :: to boundaryatangle TANG
- # ++ {arrow @ToArrowLength arrowlength} atangle TANG
- # TO :< TANG + 180d
- # FDIST := FROM distance CTR
- # TDIST := TO distance CTR
- # XINDENT := xindent min FDIST
- # ZINDENT := zindent min TDIST
- # LFROM :: FROM ++ XINDENT atangle FANG
- # LFROM :< FROM@ANGLE
- # LTO :: TO ++ ZINDENT atangle TANG
- # LTO :< TO@ANGLE
- # LMID :: CTR
- # LMID :< {1f atangle {FANG + 180d}} angleto
- # {1f atangle {TANG + 180d}}
- # FROM LFROM LMID LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @VHCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent radius "ldiagvhcurvepath"
- # CTR := { {xcoord from??CTR} {ycoord to??CTR} }
- # FANG := from??CTR angleto CTR
- # TANG := to??CTR angleto CTR
- # FROM :: from boundaryatangle FANG
- # ++ {arrow @FromArrowLength backarrowlength} atangle FANG
- # FROM :< FANG
- # TO :: to boundaryatangle TANG
- # ++ {arrow @ToArrowLength arrowlength} atangle TANG
- # TO :< TANG + 180d
- # FDIST := FROM distance CTR
- # TDIST := TO distance CTR
- # RADIUS := radius min FDIST min TDIST
- # XINDENT := xindent min { FDIST - RADIUS }
- # ZINDENT := zindent min { TDIST - RADIUS }
- # LFROM :: FROM ++ XINDENT atangle FANG
- # LFROM :< FROM@ANGLE
- # LTO :: TO ++ ZINDENT atangle TANG
- # LTO :< TO@ANGLE
- # FCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d }
- # TCTR := CTR ++ RADIUS atangle { TO@ANGLE }
- # XCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d }
- # ++ RADIUS atangle { TO@ANGLE }
- # LMID :: XCTR ++ RADIUS atangle { XCTR angleto CTR }
- # LMID :< FCTR angleto TCTR
- # FROM LFROM FCTR
- # { FCTR angleto TCTR } quadcase
- # 0 { }
- # 0-90 { [XCTR clockwise] }
- # 90 { }
- # 90-180 { [XCTR] }
- # 180 { }
- # 180-270 { [XCTR clockwise] }
- # 270 { }
- # 270-360 { [XCTR] }
- # TCTR LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @HVLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent "ldiaghvlinepath"
- # CTR := { {xcoord to??CTR} {ycoord from??CTR} }
- # FANG := from??CTR angleto CTR
- # TANG := to??CTR angleto CTR
- # FROM :: from boundaryatangle FANG
- # ++ {arrow @FromArrowLength backarrowlength} atangle FANG
- # FROM :< FANG
- # TO :: to boundaryatangle TANG
- # ++ {arrow @ToArrowLength arrowlength} atangle TANG
- # TO :< TANG + 180d
- # FDIST := FROM distance CTR
- # TDIST := TO distance CTR
- # XINDENT := xindent min FDIST
- # ZINDENT := zindent min TDIST
- # LFROM :: FROM ++ XINDENT atangle FANG
- # LFROM :< FROM@ANGLE
- # LTO :: TO ++ ZINDENT atangle TANG
- # LTO :< TO@ANGLE
- # LMID :: CTR
- # LMID :< {1f atangle {FANG + 180d}} angleto
- # {1f atangle {TANG + 180d}}
- # FROM LFROM LMID LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @HVCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent radius "ldiaghvcurvepath"
- # CTR := { {xcoord to??CTR} {ycoord from??CTR} }
- # FANG := from??CTR angleto CTR
- # TANG := to??CTR angleto CTR
- # FROM :: from boundaryatangle FANG
- # ++ {arrow @FromArrowLength backarrowlength} atangle FANG
- # FROM :< FANG
- # TO :: to boundaryatangle TANG
- # ++ {arrow @ToArrowLength arrowlength} atangle TANG
- # TO :< TANG + 180d
- # FDIST := FROM distance CTR
- # TDIST := TO distance CTR
- # RADIUS := radius min FDIST min TDIST
- # XINDENT := xindent min { FDIST - RADIUS }
- # ZINDENT := zindent min { TDIST - RADIUS }
- # LFROM :: FROM ++ XINDENT atangle FANG
- # LFROM :< FROM@ANGLE
- # LTO :: TO ++ ZINDENT atangle TANG
- # LTO :< TO@ANGLE
- # FCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d }
- # TCTR := CTR ++ RADIUS atangle { TO@ANGLE }
- # XCTR := CTR ++ RADIUS atangle { FROM@ANGLE + 180d }
- # ++ RADIUS atangle { TO@ANGLE }
- # LMID :: XCTR ++ RADIUS atangle { XCTR angleto CTR }
- # LMID :< FCTR angleto TCTR
- # FROM LFROM FCTR
- # { FCTR angleto TCTR } quadcase
- # 0 { }
- # 0-90 { [XCTR] }
- # 90 { }
- # 90-180 { [XCTR clockwise] }
- # 180 { }
- # 180-270 { [XCTR] }
- # 270 { }
- # 270-360 { [XCTR clockwise] }
- # TCTR LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @LVRLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiaglvrlinepath"
- # FROM :: from boundaryatangle 180d
- # ++ {arrow @FromArrowLength backarrowlength} atangle 180d
- # FROM :< 180d
- # TO :: to boundaryatangle 180d
- # ++ {arrow @ToArrowLength arrowlength} atangle 180d
- # TO :< 0d
- # XLEFT := {{xcoord FROM} min {xcoord TO}} - bias
- # P1 :: { XLEFT ycoord FROM }
- # P2 :: { XLEFT ycoord TO }
- # VERT := P1 angleto P2
- # P1 :< P1 angleto {P1++{1f atangle 180d}++{1f atangle VERT}}
- # P2 :< P2 angleto {P2++{1f atangle 0d} ++{1f atangle VERT}}
- # LMID :: P1 ** 0.5 ++ P2 ** 0.5
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance P1}
- # ZINDENT := zindent min {P2 distance TO}
- # LFROM :: FROM -- { XINDENT 0 }
- # LFROM :< 180d
- # LTO :: TO -- { ZINDENT 0 }
- # LTO :< 0d
- # FROM LFROM P1 LMID P2 LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @LVRCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias radius "ldiaglvrcurvepath"
- # FROM :: from boundaryatangle 180d
- # ++ {arrow @FromArrowLength backarrowlength} atangle 180d
- # FROM :< 180d
- # TO :: to boundaryatangle 180d
- # ++ {arrow @ToArrowLength arrowlength} atangle 180d
- # TO :< 0d
- # XLEFT := {{xcoord FROM} min {xcoord TO}} - bias
- # XP1 := { XLEFT ycoord FROM }
- # XP2 := { XLEFT ycoord TO }
- # VERT := XP1 angleto XP2
- # LMID :: XP1 ** 0.5 ++ XP2 ** 0.5
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance XP1}
- # ZINDENT := zindent min {XP2 distance TO}
- # LFROM :: FROM -- { XINDENT 0 }
- # LFROM :< 180d
- # LTO :: TO -- { ZINDENT 0 }
- # LTO :< 0d
- # RADIUS := radius min { { XP1 distance XP2 } / 2 }
- # XP1PRE := XP1 ++ { RADIUS atangle 0d }
- # XP1POST := XP1 ++ { RADIUS atangle VERT }
- # XP1CTR := XP1PRE ++ { RADIUS atangle VERT }
- # P1 :: XP1CTR ++ { RADIUS atangle { XP1CTR angleto XP1 } }
- # P1 :< XP1PRE angleto XP1POST
- # XP2PRE := XP2 -- { RADIUS atangle VERT }
- # XP2POST := XP2 ++ { RADIUS atangle 0d }
- # XP2CTR := XP2PRE ++ { RADIUS atangle 0d }
- # P2 :: XP2CTR ++ { RADIUS atangle { XP2CTR angleto XP2 } }
- # P2 :< XP2PRE angleto XP2POST
- # FROM LFROM XP1PRE
- # {round VERT} quadcase
- # 90 { [XP1CTR clockwise] P1 [XP1CTR clockwise] }
- # 270 { [XP1CTR] P1 [XP1CTR] }
- # XP1POST LMID XP2PRE
- # {round VERT} quadcase
- # 90 { [XP2CTR clockwise] P2 [XP2CTR clockwise] }
- # 270 { [XP2CTR] P2 [XP2CTR] }
- # XP2POST LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @RVLLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiagrvllinepath"
- # FROM :: from boundaryatangle 0d
- # ++ {arrow @FromArrowLength backarrowlength} atangle 0d
- # FROM :< 0d
- # TO :: to boundaryatangle 0d
- # ++ {arrow @ToArrowLength arrowlength} atangle 0d
- # TO :< 180d
- # XRIGHT := {{xcoord FROM} max {xcoord TO}} + bias
- # P1 :: { XRIGHT ycoord FROM }
- # P2 :: { XRIGHT ycoord TO }
- # VERT := P1 angleto P2
- # P1 :< P1 angleto {P1++{1f atangle 0d} ++{1f atangle VERT}}
- # P2 :< P2 angleto {P2++{1f atangle 180d}++{1f atangle VERT}}
- # LMID :: P1 ** 0.5 ++ P2 ** 0.5
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance P1}
- # ZINDENT := zindent min {P2 distance TO}
- # LFROM :: FROM ++ { XINDENT 0 }
- # LFROM :< 0d
- # LTO :: TO ++ { ZINDENT 0 }
- # LTO :< 180d
- # FROM LFROM P1 LMID P2 LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @RVLCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias radius "ldiagrvlcurvepath"
- # FROM :: from boundaryatangle 0d
- # ++ {arrow @FromArrowLength backarrowlength} atangle 0d
- # FROM :< 0d
- # TO :: to boundaryatangle 0d
- # ++ {arrow @ToArrowLength arrowlength} atangle 0d
- # TO :< 180d
- # XRIGHT := {{xcoord FROM} max {xcoord TO}} + bias
- # XP1 := { XRIGHT ycoord FROM }
- # XP2 := { XRIGHT ycoord TO }
- # VERT := XP1 angleto XP2
- # LMID :: XP1 ** 0.5 ++ XP2 ** 0.5
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance XP1}
- # ZINDENT := zindent min {XP2 distance TO}
- # LFROM :: FROM ++ { XINDENT 0 }
- # LFROM :< 0d
- # LTO :: TO ++ { ZINDENT 0 }
- # LTO :< 180d
- # RADIUS := radius min { { XP1 distance XP2 } * 0.5 }
- # XP1PRE := XP1 ++ { RADIUS atangle 180d }
- # XP1POST := XP1 ++ { RADIUS atangle VERT }
- # XP1CTR := XP1PRE ++ { RADIUS atangle VERT }
- # P1 :: XP1CTR ++ { RADIUS atangle { XP1CTR angleto XP1 } }
- # P1 :< XP1PRE angleto XP1POST
- # XP2PRE := XP2 -- { RADIUS atangle VERT }
- # XP2POST := XP2 ++ { RADIUS atangle 180d }
- # XP2CTR := XP2PRE ++ { RADIUS atangle 180d }
- # P2 :: XP2CTR ++ { RADIUS atangle { XP2CTR angleto XP2 } }
- # P2 :< XP2PRE angleto XP2POST
- # FROM LFROM XP1PRE
- # {round VERT} quadcase
- # 90 { [XP1CTR] P1 [XP1CTR] }
- # 270 { [XP1CTR clockwise] P1 [XP1CTR clockwise] }
- # XP1POST LMID XP2PRE
- # {round VERT} quadcase
- # 90 { [XP2CTR] P2 [XP2CTR] }
- # 270 { [XP2CTR clockwise] P2 [XP2CTR clockwise] }
- # XP2POST LTO TO
- }
- PDF @Yield {}
- }
- }
-
-
- import @Geometry
- def @DHULinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiagdhulinepath"
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @DHUCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias radius "ldiagdhucurvepath"
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @UHDLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias "ldiaguhdlinepath"
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @UHDCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias radius "ldiaguhdcurvepath"
- }
- PDF @Yield {}
- }
- }
-
-
- import @Geometry
- def @HVHLinePath # still to do
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent hfrac hbias "ldiaghvhlinepath"
- # FRDIRN := {{from??CTR angleto to??CTR} quadcase
- # 0 { 0d } 0-90 { 0d } 90 { 0d } 90-180 { 180d }
- # 180 { 180d } 180-270 { 180d } 270 { 180d } 270-360 { 0d }}
- # TODIRN := {FRDIRN + 180d}
- # FROM :: from boundaryatangle FRDIRN ++
- # {arrow @FromArrowLength backarrowlength} atangle FRDIRN
- # FROM :< FRDIRN
- # TO :: to boundaryatangle TODIRN ++
- # {arrow @ToArrowLength arrowlength} atangle TODIRN
- # TO :< FRDIRN
- # BIAS := abs { xcoord FROM - xcoord TO } * hfrac + hbias
- # P1 :: FROM ++ BIAS atangle FRDIRN
- # P2 :: { xcoord P1 ycoord TO }
- # LMID :: { P1 ** 0.5 ++ P2 ** 0.5 }
- # LMID :< P1 angleto P2
- # XINDENT := xindent min {FROM distance P1}
- # ZINDENT := zindent min {P2 distance TO}
- # LFROM :: FROM ++ {XINDENT atangle FRDIRN}
- # LFROM :< FRDIRN
- # LTO :: TO ++ {ZINDENT atangle TODIRN}
- # LTO :< FRDIRN
- # FROM LFROM P1 LMID P2 LTO TO
-
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @HVHCurvePath # still to do
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent hfrac hbias radius "ldiaghvhcurvepath"
- # FRDIRN := {{from??CTR angleto to??CTR} quadcase
- # 0 { 0d } 0-90 { 0d } 90 { 0d } 90-180 { 180d }
- # 180 { 180d } 180-270 { 180d } 270 { 180d } 270-360 { 0d }}
- # TODIRN := {FRDIRN + 180d}
- # FROM :: from boundaryatangle FRDIRN ++
- # {arrow @FromArrowLength backarrowlength} atangle FRDIRN
- # FROM :< FRDIRN
- # TO :: to boundaryatangle TODIRN ++
- # {arrow @ToArrowLength arrowlength} atangle TODIRN
- # TO :< FRDIRN
- # BIAS := abs { xcoord FROM - xcoord TO } * hfrac + hbias
- # XP1 := FROM ++ BIAS atangle FRDIRN
- # XP2 := { xcoord XP1 ycoord TO }
- # LMID :: { XP1 ** 0.5 ++ XP2 ** 0.5 }
- # VERT := round { XP1 angleto XP2 }
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance XP1}
- # ZINDENT := zindent min {XP2 distance TO}
- # LFROM :: FROM ++ {XINDENT atangle FRDIRN}
- # LFROM :< FRDIRN
- # LTO :: TO ++ {ZINDENT atangle TODIRN}
- # LTO :< FRDIRN
- # RADIUS := radius min { { XP1 distance XP2 } / 2 }
- # XP1PRE := XP1 ++ { RADIUS atangle TODIRN }
- # XP1POST := XP1 ++ { RADIUS atangle VERT }
- # XP1CTR := XP1PRE ++ { RADIUS atangle VERT }
- # P1 :: XP1CTR ++ { RADIUS atangle { XP1CTR angleto XP1 } }
- # P1 :< XP1PRE angleto XP1POST
- # XP2PRE := XP2 -- { RADIUS atangle VERT }
- # XP2POST := XP2 ++ { RADIUS atangle FRDIRN }
- # XP2CTR := XP2POST -- { RADIUS atangle VERT }
- # P2 :: XP2CTR ++ { RADIUS atangle { XP2CTR angleto XP2 } }
- # P2 :< XP2PRE angleto XP2POST
- # if cond { {VERT - FRDIRN} = 90 }
- # then { P1GO := "anticlockwise" P2GO := "clockwise" }
- # else { P1GO := "clockwise" P2GO := "anticlockwise" }
- # FROM LFROM
- # XP1PRE [XP1CTR P1GO] P1 [XP1CTR P1GO] XP1POST
- # LMID
- # XP2PRE [XP2CTR P2GO] P2 [XP2CTR P2GO] XP2POST
- # LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @VHVLinePath # still to do
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent hfrac hbias "ldiagvhvlinepath"
- # FROM :: from boundaryatangle 0d
- # ++ {arrow @FromArrowLength backarrowlength} atangle 0d
- # FROM :< 0d
- # TO :: to boundaryatangle 0d
- # ++ {arrow @ToArrowLength arrowlength} atangle 0d
- # TO :< 180d
- # XRIGHT := {{xcoord FROM} max {xcoord TO}} + bias
- # P1 :: { XRIGHT ycoord FROM }
- # P2 :: { XRIGHT ycoord TO }
- # VERT := P1 angleto P2
- # P1 :< P1 angleto {P1++{1f atangle 0d} ++{1f atangle VERT}}
- # P2 :< P2 angleto {P2++{1f atangle 180d}++{1f atangle VERT}}
- # LMID :: P1 ** 0.5 ++ P2 ** 0.5
- # LMID :< VERT
- # XINDENT := xindent min {FROM distance P1}
- # ZINDENT := zindent min {P2 distance TO}
- # LFROM :: FROM ++ { XINDENT 0 }
- # LFROM :< 0d
- # LTO :: TO ++ { ZINDENT 0 }
- # LTO :< 180d
- # FROM LFROM P1 LMID P2 LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @VHVCurvePath # still to do
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent hfrac hbias radius "ldiagvhvcurvepath"
- # /FRDIRN [ { 0 dg } { 180 dg } { 180 dg } { 0 dg }
- # { 0 dg } { 0 dg } { 180 dg } { 180 dg }
- # from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- # ldiagangleto ldiagquadcase ] cvx def
- # /TODIRN [ FRDIRN 180 dg add ] cvx def
- # from (CTR) ldiagdolabel FRDIRN from (CIRCUM) ldiagdolabel ldiagpadd
- # 0 0 fromarrowlength FRDIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- # FRDIRN /FROM@ANGLE ldiagangledef
- # to (CTR) ldiagdolabel TODIRN to (CIRCUM) ldiagdolabel ldiagpadd
- # 0 0 toarrowlength TODIRN ldiagatangle ldiagpadd /TO ldiagpointdef
- # FRDIRN /TO@ANGLE ldiagangledef
- # /BIAS [ FROM pop TO pop sub abs hfrac mul hbias add ] cvx def
- # /XP1 [ FROM 0 0 BIAS FRDIRN ldiagatangle ldiagpadd ] cvx def
- # /XP2 [ XP1 pop TO exch pop ] cvx def
- # XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- # /VERT [ XP1 XP2 ldiagangleto round ] cvx def
- # VERT /LMID@ANGLE ldiagangledef
- # /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- # /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- # FROM 0 0 XINDENT FRDIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- # FRDIRN /LFROM@ANGLE ldiagangledef
- # TO 0 0 ZINDENT TODIRN ldiagatangle ldiagpadd /LTO ldiagpointdef
- # FRDIRN /LTO@ANGLE ldiagangledef
- # /RADIUS [ radius XP1 XP2 ldiagdistance 2 div ldiagmin ] cvx def
- # /XP1PRE [ XP1 0 0 RADIUS TODIRN ldiagatangle ldiagpadd ] cvx def
- # /XP1POST [ XP1 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- # /XP1CTR [ XP1PRE 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- # XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd /P1 ldiagpointdef
- # XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- # /XP2PRE [ 0 0 RADIUS VERT ldiagatangle XP2 ldiagpsub ] cvx def
- # /XP2POST [ XP2 0 0 RADIUS FRDIRN ldiagatangle ldiagpadd ] cvx def
- # /XP2CTR [ 0 0 RADIUS VERT ldiagatangle XP2POST ldiagpsub ] cvx def
- # XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd /P2 ldiagpointdef
- # XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- # VERT FRDIRN sub 90 eq
- # { /P1GO [ anticlockwise ] cvx def /P2GO [ clockwise ] cvx def }
- # { /P1GO [ clockwise ] cvx def /P2GO [ anticlockwise ] cvx def }
- # ifelse
- # FROM LFROM
- # XP1PRE [XP1CTR P1GO] P1 [XP1CTR P1GO] XP1POST
- # LMID
- # XP2PRE [XP2CTR P2GO] P2 [XP2CTR P2GO] XP2POST
- # LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @DWrapLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias fbias tbias "ldiagdwraplinepath"
- # DIRN := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { 180d } else { 0d }
- # FROM :: from boundaryatangle DIRN
- # ++ {arrow @FromArrowLength backarrowlength} atangle DIRN
- # FROM :< DIRN
- # TO :: to boundaryatangle { DIRN + 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d }
- # TO :< DIRN
- # P1 :: FROM ++ {fbias max 0} atangle DIRN
- # P1 :< if cond { DIRN = 180d } then { 225d } else { -45d }
- # P4 :: TO ++ {tbias max 0} atangle { DIRN + 180d }
- # P4 :< if cond { DIRN = 180d } then { 135d } else { 45d }
- # YC := ycoord { from boundaryatangle 270d } min
- # ycoord { to boundaryatangle 270d }
- # - { bias max 0 }
- # P2 :: { xcoord P1 YC }
- # P2 :< P4@ANGLE - 180d
- # P3 :: { xcoord P4 YC }
- # P3 :< P1@ANGLE - 180d
- # XINDENT := xindent min { FROM distance P1 }
- # LFROM :: FROM ++ XINDENT atangle DIRN
- # LFROM :< FROM@ANGLE
- # ZINDENT := zindent min { TO distance P4 }
- # LTO :: TO ++ ZINDENT atangle { DIRN + 180d }
- # LTO :< TO@ANGLE
- # LMID :: P2 ** 0.5 ++ P3 ** 0.5
- # LMID :< DIRN - 180d
- # FROM P1 P2 P3 P4 TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @DWrapCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias fbias tbias radius "ldiagdwrapcurvepath"
- # DIRN := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { 180d } else { 0d }
- # CLOCK := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { anticlockwise } else { clockwise }
- # FROM :: from boundaryatangle DIRN
- # ++ {arrow @FromArrowLength backarrowlength} atangle DIRN
- # FROM :< DIRN
- # TO :: to boundaryatangle { DIRN + 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d }
- # TO :< DIRN
- #
- # XP1 := FROM ++ {fbias max 0} atangle DIRN
- # XP4 := TO ++ {tbias max 0} atangle { DIRN + 180d }
- # YC := ycoord { from boundaryatangle 270d } min
- # ycoord { to boundaryatangle 270d }
- # - { bias max 0 }
- # XP2 := { xcoord XP1 YC }
- # XP3 := { xcoord XP4 YC }
- #
- # RP1 := radius min { XP1 distance FROM } min
- # { { XP1 distance XP2 } / 2 }
- # XP1PRE := XP1 ++ RP1 atangle { XP1 angleto FROM }
- # XP1POST := XP1 ++ RP1 atangle { XP1 angleto XP2 }
- # XP1CTR := XP1PRE ++ RP1 atangle { XP1 angleto XP2 }
- # P1 :: XP1CTR ++ RP1 atangle { XP1CTR angleto XP1 }
- # P1 :< XP1CTR angleto P1 + DIRN - 90d
- #
- # RP2 := radius min { { XP1 distance XP2 } / 2 }
- # min { { XP2 distance XP3 } / 2 }
- # XP2PRE := XP2 ++ RP2 atangle { XP2 angleto XP1 }
- # XP2POST := XP2 ++ RP2 atangle { XP2 angleto XP3 }
- # XP2CTR := XP2PRE ++ RP2 atangle { XP2 angleto XP3 }
- # P2 :: XP2CTR ++ RP2 atangle { XP2CTR angleto XP2 }
- # P2 :< XP2CTR angleto P2 + DIRN - 90d
- #
- # RP3 := radius min { { XP2 distance XP3 } / 2 }
- # min { { XP3 distance XP4 } / 2 }
- # XP3PRE := XP3 ++ RP3 atangle { XP3 angleto XP2 }
- # XP3POST := XP3 ++ RP3 atangle { XP3 angleto XP4 }
- # XP3CTR := XP3PRE ++ RP3 atangle { XP3 angleto XP4 }
- # P3 :: XP3CTR ++ RP3 atangle { XP3CTR angleto XP3 }
- # P3 :< XP3CTR angleto P3 + DIRN - 90d
- #
- # RP4 := radius min { { XP4 distance XP3 } / 2 }
- # min { XP4 distance TO }
- # XP4PRE := XP4 ++ RP4 atangle { XP4 angleto XP3 }
- # XP4POST := XP4 ++ RP4 atangle { XP4 angleto TO }
- # XP4CTR := XP4PRE ++ RP4 atangle { XP4 angleto TO }
- # P4 :: XP4CTR ++ RP4 atangle { XP4CTR angleto XP4 }
- # P4 :< XP4CTR angleto P4 + DIRN - 90d
- #
- # XINDENT := xindent min { FROM distance XP1PRE }
- # LFROM :: FROM ++ XINDENT atangle DIRN
- # LFROM :< FROM@ANGLE
- #
- # LMID :: XP2 ** 0.5 ++ XP3 ** 0.5
- # LMID :< DIRN - 180d
- #
- # ZINDENT := zindent min { TO distance XP4POST }
- # LTO :: TO ++ ZINDENT atangle { DIRN + 180d }
- # LTO :< TO@ANGLE
- #
- # FROM LFROM
- # XP1PRE [XP1CTR CLOCK] XP1POST
- # XP2PRE [XP2CTR CLOCK] XP2POST
- # LMID
- # XP3PRE [XP3CTR CLOCK] XP3POST
- # XP4PRE [XP4CTR CLOCK] XP4POST
- # LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @UWrapLinePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias fbias tbias "ldiaguwraplinepath"
- # DIRN := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { 180d } else { 0d }
- # FROM :: from boundaryatangle DIRN
- # ++ {arrow @FromArrowLength backarrowlength} atangle DIRN
- # FROM :< DIRN
- # TO :: to boundaryatangle { DIRN + 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d }
- # TO :< DIRN
- # P1 :: FROM ++ {fbias max 0} atangle DIRN
- # P1 :< if cond { DIRN = 180d } then { 135d } else { 45d }
- # P4 :: TO ++ {tbias max 0} atangle { DIRN + 180d }
- # P4 :< if cond { DIRN = 180d } then { 225d } else { -45d }
- # YC := ycoord { from boundaryatangle 90d } max
- # ycoord { to boundaryatangle 90d }
- # + { bias max 0 }
- # P2 :: { xcoord P1 YC }
- # P2 :< P4@ANGLE - 180d
- # P3 :: { xcoord P4 YC }
- # P3 :< P1@ANGLE - 180d
- # XINDENT := xindent min { FROM distance P1 }
- # LFROM :: FROM ++ XINDENT atangle DIRN
- # LFROM :< FROM@ANGLE
- # ZINDENT := zindent min { TO distance P4 }
- # LTO :: TO ++ ZINDENT atangle { DIRN + 180d }
- # LTO :< TO@ANGLE
- # LMID :: P2 ** 0.5 ++ P3 ** 0.5
- # LMID :< DIRN - 180d
- # FROM P1 P2 P3 P4 TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @UWrapCurvePath
- {
- @BackEnd @Case {
- PostScript @Yield {
- {arrow @FromArrowLength backarrowlength}
- {arrow @ToArrowLength arrowlength}
- "{" from "}" "{" to "}"
- xindent zindent bias fbias tbias radius "ldiaguwrapcurvepath"
- # DIRN := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { 180d } else { 0d }
- # CLOCK := if cond { xcoord from??CTR < xcoord to??CTR }
- # then { clockwise } else { anticlockwise }
- # FROM :: from boundaryatangle DIRN
- # ++ {arrow @FromArrowLength backarrowlength} atangle DIRN
- # FROM :< DIRN
- # TO :: to boundaryatangle { DIRN + 180d }
- # ++ {arrow @ToArrowLength arrowlength} atangle { DIRN + 180d }
- # TO :< DIRN
- #
- # XP1 := FROM ++ {fbias max 0} atangle DIRN
- # XP4 := TO ++ {tbias max 0} atangle { DIRN + 180d }
- # YC := ycoord { from boundaryatangle 90d } max
- # ycoord { to boundaryatangle 90d }
- # + { bias max 0 }
- # XP2 := { xcoord XP1 YC }
- # XP3 := { xcoord XP4 YC }
- #
- # RP1 := radius min { XP1 distance FROM } min
- # { { XP1 distance XP2 } / 2 }
- # XP1PRE := XP1 ++ RP1 atangle { XP1 angleto FROM }
- # XP1POST := XP1 ++ RP1 atangle { XP1 angleto XP2 }
- # XP1CTR := XP1PRE ++ RP1 atangle { XP1 angleto XP2 }
- # P1 :: XP1CTR ++ RP1 atangle { XP1CTR angleto XP1 }
- # P1 :< XP1CTR angleto P1 + DIRN + 90d
- #
- # RP2 := radius min { { XP1 distance XP2 } / 2 }
- # min { { XP2 distance XP3 } / 2 }
- # XP2PRE := XP2 ++ RP2 atangle { XP2 angleto XP1 }
- # XP2POST := XP2 ++ RP2 atangle { XP2 angleto XP3 }
- # XP2CTR := XP2PRE ++ RP2 atangle { XP2 angleto XP3 }
- # P2 :: XP2CTR ++ RP2 atangle { XP2CTR angleto XP2 }
- # P2 :< XP2CTR angleto P2 + DIRN + 90d
- #
- # RP3 := radius min { { XP2 distance XP3 } / 2 }
- # min { { XP3 distance XP4 } / 2 }
- # XP3PRE := XP3 ++ RP3 atangle { XP3 angleto XP2 }
- # XP3POST := XP3 ++ RP3 atangle { XP3 angleto XP4 }
- # XP3CTR := XP3PRE ++ RP3 atangle { XP3 angleto XP4 }
- # P3 :: XP3CTR ++ RP3 atangle { XP3CTR angleto XP3 }
- # P3 :< XP3CTR angleto P3 + DIRN + 90d
- #
- # RP4 := radius min { { XP4 distance XP3 } / 2 }
- # min { XP4 distance TO }
- # XP4PRE := XP4 ++ RP4 atangle { XP4 angleto XP3 }
- # XP4POST := XP4 ++ RP4 atangle { XP4 angleto TO }
- # XP4CTR := XP4PRE ++ RP4 atangle { XP4 angleto TO }
- # P4 :: XP4CTR ++ RP4 atangle { XP4CTR angleto XP4 }
- # P4 :< XP4CTR angleto P4 + DIRN + 90d
- #
- # XINDENT := xindent min { FROM distance XP1PRE }
- # LFROM :: FROM ++ XINDENT atangle DIRN
- # LFROM :< FROM@ANGLE
- #
- # LMID :: XP2 ** 0.5 ++ XP3 ** 0.5
- # LMID :< DIRN - 180d
- #
- # ZINDENT := zindent min { TO distance XP4POST }
- # LTO :: TO ++ ZINDENT atangle { DIRN + 180d }
- # LTO :< TO@ANGLE
- #
- # FROM LFROM
- # XP1PRE [XP1CTR CLOCK] XP1POST
- # XP2PRE [XP2CTR CLOCK] XP2POST
- # LMID
- # XP3PRE [XP3CTR CLOCK] XP3POST
- # XP4PRE [XP4CTR CLOCK] XP4POST
- # LTO TO
- }
- PDF @Yield {}
- }
- }
-
- import @Geometry
- def @Path
- {
- path @Case {
- line @Yield @LinePath
- doubleline @Yield @DoubleLinePath
- { acurve curve } @Yield @ACurvePath
- ccurve @Yield @CCurvePath
- bezier @Yield @BezierPath
- vhline @Yield @VHLinePath
- vhcurve @Yield @VHCurvePath
- hvline @Yield @HVLinePath
- hvcurve @Yield @HVCurvePath
- lvrline @Yield @LVRLinePath
- lvrcurve @Yield @LVRCurvePath
- rvlline @Yield @RVLLinePath
- rvlcurve @Yield @RVLCurvePath
- dhuline @Yield @DHULinePath
- dhucurve @Yield @DHUCurvePath
- uhdline @Yield @UHDLinePath
- uhdcurve @Yield @UHDCurvePath
- hvhline @Yield @HVHLinePath
- hvhcurve @Yield @HVHCurvePath
- vhvline @Yield @VHVLinePath
- vhvcurve @Yield @VHVCurvePath
- dwrapline @Yield @DWrapLinePath
- dwrapcurve @Yield @DWrapCurvePath
- uwrapline @Yield @UWrapLinePath
- uwrapcurve @Yield @UWrapCurvePath
- else @Yield {
- path
- from { from }
- to { to }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- arrow { arrow }
- arrowlength { arrowlength }
- backarrowlength { backarrowlength }
- }
- }
- }
-
- def @FromLabel
- {
- @DoLabel
- which { "f" }
- label { fromlabel @Else @FromArrow }
- labelmargin { fromlabelmargin }
- labelfont { fromlabelfont }
- labelbreak { fromlabelbreak }
- labelformat { fromlabelformat @Body }
- labelpos { fromlabelpos }
- labelprox { fromlabelprox }
- labelangle { fromlabelangle }
- labelctr { fromlabelctr }
- labeladjust { fromlabeladjust }
- }
-
- def @ToLabel
- {
- @DoLabel
- which { "t" }
- label { tolabel @Else @ToArrow }
- labelmargin { tolabelmargin }
- labelfont { tolabelfont }
- labelbreak { tolabelbreak }
- labelformat { tolabelformat @Body }
- labelpos { tolabelpos }
- labelprox { tolabelprox }
- labelangle { tolabelangle }
- labelctr { tolabelctr }
- labeladjust { tolabeladjust }
- }
-
- def @Direct
- {
- pathstyle @Case {
- {
- "/ldiagsolid"
- "/ldiagdashed"
- "/ldiagdotted"
- "/ldiagnoline"
- "/ldiagcdashed"
- "/ldiagdotdashed"
- "/ldiagdotcdashed"
- "/ldiagdotdotdashed"
- "/ldiagdotdotcdashed"
- "/ldiagdotdotdotdashed"
- "/ldiagdotdotdotcdashed"
- } @Yield 1
- else @Yield 0
- }
- }
-
- @BackEnd @Case {
- PostScript @Yield {
-
- @Null & # so that preceding space gets chewed up
- {
- @Direct "ldiaglinkbegin" @ColourCommand pathcolour
- "[" @Path "]" pathdashlength "[" pathstyle "]" pathwidth "ldiaglinkend"
- }
- @Graphic
- {
- / { fromlabel @Else @FromArrow} @IfNonEmpty @FromLabel
- / { xlabel @Else linklabel } @IfNonEmpty @XLabel
- / { ylabel @Else linklabel } @IfNonEmpty @YLabel
- / { zlabel @Else linklabel } @IfNonEmpty @ZLabel
- / { tolabel @Else @ToArrow } @IfNonEmpty @ToLabel
- }
-
- }
- PDF @Yield {}
- }
- }
-
-
- def @ObjectLink
- precedence 90
- associativity left
- left x
- named treehsep { treehsep }
- named treevsep { treevsep }
- named format
- named x {}
- named y {}
- named insinuatelink {}
- named treehsep {}
- named treevsep {}
- { x | y | insinuatelink }
- import @Geometry named path
- named from {}
- named to {}
- named bias {}
- named fbias {}
- named tbias {}
- named hfrac {}
- named hbias {}
- named radius {}
- named xindent {}
- named zindent {}
- named frompt {}
- named topt {}
- named arrow {}
- named arrowlength {}
- named backarrowlength {}
- { path
- from { from }
- to { to }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- arrow { arrow }
- arrowlength { arrowlength }
- backarrowlength { backarrowlength }
- }
- import @Geometry named basefrom { }
- import @Geometry named baseto { }
- import @Geometry named from { }
- import @Geometry named to { }
- import @Geometry named bias { bias }
- import @Geometry named fbias { fbias }
- import @Geometry named tbias { tbias }
- import @Geometry named hfrac { hfrac }
- import @Geometry named hbias { hbias }
- import @Geometry named radius { radius }
- import @Geometry named xindent { xindent }
- import @Geometry named zindent { zindent }
- import @Geometry named frompt { frompt }
- import @Geometry named topt { topt }
- named pathstyle
- named solid { "/ldiagsolid" }
- named dashed { "/ldiagdashed" }
- named cdashed { "/ldiagcdashed" }
- named dotdashed { "/ldiagdotdashed" }
- named dotcdashed { "/ldiagdotcdashed" }
- named dotdotdashed { "/ldiagdotdotdashed" }
- named dotdotcdashed { "/ldiagdotdotcdashed" }
- named dotdotdotdashed { "/ldiagdotdotdotdashed" }
- named dotdotdotcdashed { "/ldiagdotdotdotcdashed" }
- named dotted { "/ldiagdotted" }
- named noline { "/ldiagnoline" }
- { pathstyle }
- import @Geometry named pathdashlength { pathdashlength }
- import @Geometry named pathwidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { pathwidth }
- named pathcolour { pathcolour }
- import @Geometry named pathgap
- named thin { 0.08 ft }
- named medium { 0.16 ft }
- named thick { 0.24 ft }
- { pathgap }
-
- named arrow { arrow }
- named arrowstyle { arrowstyle }
- named arrowwidth { arrowwidth }
- named arrowlength { arrowlength }
- named backarrowstyle { backarrowstyle }
- named backarrowwidth { backarrowwidth }
- named backarrowlength { backarrowlength }
-
- named linklabel { linklabel }
- named linklabelmargin { linklabelmargin }
- named linklabelfont { linklabelfont }
- named linklabelbreak { linklabelbreak }
- named linklabelformat right @Body { linklabelformat @Body }
- import @Geometry named linklabelpos { linklabelpos }
- named linklabelprox { linklabelprox }
- import @Geometry named linklabelangle { linklabelangle }
- named linklabelctr { linklabelctr }
- import @Geometry named linklabeladjust { linklabeladjust }
-
- named xlabel { xlabel }
- named xlabelmargin { xlabelmargin }
- named xlabelfont { xlabelfont }
- named xlabelbreak { xlabelbreak }
- named xlabelformat right @Body { xlabelformat @Body }
- import @Geometry named xlabelpos { xlabelpos }
- named xlabelprox { xlabelprox }
- import @Geometry named xlabelangle { xlabelangle }
- named xlabelctr { xlabelctr }
- import @Geometry named xlabeladjust { xlabeladjust }
-
- named ylabel { ylabel }
- named ylabelmargin { ylabelmargin }
- named ylabelfont { ylabelfont }
- named ylabelbreak { ylabelbreak }
- named ylabelformat right @Body { ylabelformat @Body }
- import @Geometry named ylabelpos { ylabelpos }
- named ylabelprox { ylabelprox }
- import @Geometry named ylabelangle { ylabelangle }
- named ylabelctr { ylabelctr }
- import @Geometry named ylabeladjust { ylabeladjust }
-
- named zlabel { zlabel }
- named zlabelmargin { zlabelmargin }
- named zlabelfont { zlabelfont }
- named zlabelbreak { zlabelbreak }
- named zlabelformat right @Body { zlabelformat @Body }
- import @Geometry named zlabelpos { zlabelpos }
- named zlabelprox { zlabelprox }
- import @Geometry named zlabelangle { zlabelangle }
- named zlabelctr { zlabelctr }
- import @Geometry named zlabeladjust { zlabeladjust }
-
- named fromlabel { fromlabel }
- named fromlabelmargin { fromlabelmargin }
- named fromlabelfont { fromlabelfont }
- named fromlabelbreak { fromlabelbreak }
- named fromlabelformat right @Body { fromlabelformat @Body }
- import @Geometry named fromlabelpos { fromlabelpos }
- named fromlabelprox { fromlabelprox }
- import @Geometry named fromlabelangle { fromlabelangle }
- named fromlabelctr { fromlabelctr }
- import @Geometry named fromlabeladjust { fromlabeladjust }
-
- named tolabel { tolabel }
- named tolabelmargin { tolabelmargin }
- named tolabelfont { tolabelfont }
- named tolabelbreak { tolabelbreak }
- named tolabelformat right @Body { tolabelformat @Body }
- import @Geometry named tolabelpos { tolabelpos }
- named tolabelprox { tolabelprox }
- import @Geometry named tolabelangle { tolabelangle }
- named tolabelctr { tolabelctr }
- import @Geometry named tolabeladjust{ tolabeladjust }
- right y
-
- {
- def @From
- {
- from @Case {
- "" @Yield basefrom
- else @Yield { basefrom"@"from }
- }
- }
-
- def @To
- {
- to @Case {
- "" @Yield baseto
- else @Yield { baseto"@"to }
- }
- }
-
- format
- x { x }
- y { y }
- treehsep { treehsep }
- treevsep { treevsep }
- insinuatelink {
- @Link
- from { @From }
- to { @To }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- path { path
- from { @From }
- to { @To }
- bias { bias }
- fbias { fbias }
- tbias { tbias }
- hfrac { hfrac }
- hbias { hbias }
- radius { radius }
- xindent { xindent }
- zindent { zindent }
- frompt { frompt }
- topt { topt }
- arrow { arrow }
- arrowlength { arrowlength }
- backarrowlength { backarrowlength }
- }
- pathstyle { pathstyle }
- pathdashlength { pathdashlength }
- pathwidth { pathwidth }
- pathcolour { pathcolour }
- pathgap { pathgap }
- arrow { arrow }
- arrowstyle { arrowstyle }
- arrowwidth { arrowwidth }
- arrowlength { arrowlength }
- backarrowstyle { backarrowstyle }
- backarrowwidth { backarrowwidth }
- backarrowlength { backarrowlength }
-
- linklabel { linklabel }
- linklabelmargin { linklabelmargin }
- linklabelfont { linklabelfont }
- linklabelbreak { linklabelbreak }
- linklabelformat { linklabelformat @Body }
- linklabelpos { linklabelpos }
- linklabelprox { linklabelprox }
- linklabelangle { linklabelangle }
- linklabelctr { linklabelctr }
- linklabeladjust { linklabeladjust }
-
- xlabel { xlabel }
- xlabelmargin { xlabelmargin }
- xlabelfont { xlabelfont }
- xlabelbreak { xlabelbreak }
- xlabelformat { xlabelformat @Body }
- xlabelpos { xlabelpos }
- xlabelprox { xlabelprox }
- xlabelangle { xlabelangle }
- xlabelctr { xlabelctr }
- xlabeladjust { xlabeladjust }
-
- ylabel { ylabel }
- ylabelmargin { ylabelmargin }
- ylabelfont { ylabelfont }
- ylabelbreak { ylabelbreak }
- ylabelformat { ylabelformat @Body }
- ylabelpos { ylabelpos }
- ylabelprox { ylabelprox }
- ylabelangle { ylabelangle }
- ylabelctr { ylabelctr }
- ylabeladjust { ylabeladjust }
-
- zlabel { zlabel }
- zlabelmargin { zlabelmargin }
- zlabelfont { zlabelfont }
- zlabelbreak { zlabelbreak }
- zlabelformat { zlabelformat @Body }
- zlabelpos { zlabelpos }
- zlabelprox { zlabelprox }
- zlabelangle { zlabelangle }
- zlabelctr { zlabelctr }
- zlabeladjust { zlabeladjust }
-
- fromlabel { fromlabel }
- fromlabelmargin { fromlabelmargin }
- fromlabelfont { fromlabelfont }
- fromlabelbreak { fromlabelbreak }
- fromlabelformat { fromlabelformat @Body }
- fromlabelpos { fromlabelpos }
- fromlabelprox { fromlabelprox }
- fromlabelangle { fromlabelangle }
- fromlabelctr { fromlabelctr }
- fromlabeladjust { fromlabeladjust }
-
- tolabel { tolabel }
- tolabelmargin { tolabelmargin }
- tolabelfont { tolabelfont }
- tolabelbreak { tolabelbreak }
- tolabelformat { tolabelformat @Body }
- tolabelpos { tolabelpos }
- tolabelprox { tolabelprox }
- tolabelangle { tolabelangle }
- tolabelctr { tolabelctr }
- tolabeladjust { tolabeladjust }
- }
- }
-
-
- #######################################################################
- # #
- # Abbreviations for standard link types #
- # #
- #######################################################################
-
- macro @Line { @Link path { line } }
- macro @DoubleLine { @Link path { doubleline } }
- macro @Arrow { @Link path { line } arrow { yes } }
- macro @DoubleArrow { @Link path {doubleline} arrow { yes } }
- macro @Curve { @Link path { curve } }
- macro @CurveArrow { @Link path { curve } arrow { yes } }
- macro @ACurve { @Link path { acurve } }
- macro @ACurveArrow { @Link path { acurve } arrow { yes } }
- macro @CCurve { @Link path { ccurve } }
- macro @CCurveArrow { @Link path { ccurve } arrow { yes } }
-
- macro @Bezier { @Link path { bezier } }
- macro @BezierArrow { @Link path { bezier } arrow { yes } }
-
- macro @HVLine { @Link path { hvline } }
- macro @HVArrow { @Link path { hvline } arrow { yes } }
- macro @VHLine { @Link path { vhline } }
- macro @VHArrow { @Link path { vhline } arrow { yes } }
- macro @HVCurve { @Link path { hvcurve } }
- macro @HVCurveArrow { @Link path { hvcurve } arrow { yes } }
- macro @VHCurve { @Link path { vhcurve } }
- macro @VHCurveArrow { @Link path { vhcurve } arrow { yes } }
-
- macro @LVRLine { @Link path { lvrline } }
- macro @LVRArrow { @Link path { lvrline } arrow { yes } }
- macro @RVLLine { @Link path { rvlline } }
- macro @RVLArrow { @Link path { rvlline } arrow { yes } }
- macro @LVRCurve { @Link path { lvrcurve } }
- macro @LVRCurveArrow { @Link path { lvrcurve } arrow { yes } }
- macro @RVLCurve { @Link path { rvlcurve } }
- macro @RVLCurveArrow { @Link path { rvlcurve } arrow { yes } }
-
- macro @DHULine { @Link path { dhuline } }
- macro @DHUArrow { @Link path { dhuline } arrow { yes } }
- macro @UHDLine { @Link path { uhdline } }
- macro @UHDArrow { @Link path { uhdline } arrow { yes } }
- macro @DHUCurve { @Link path { dhucurve } }
- macro @DHUCurveArrow { @Link path { dhucurve } arrow { yes } }
- macro @UHDCurve { @Link path { uhdcurve } }
- macro @UHDCurveArrow { @Link path { uhdcurve } arrow { yes } }
-
- macro @HVHLine { @Link path { hvhline } }
- macro @HVHArrow { @Link path { hvhline } arrow { yes } }
- macro @VHVLine { @Link path { vhvline } }
- macro @VHVArrow { @Link path { vhvline } arrow { yes } }
- macro @HVHCurve { @Link path { hvhcurve } }
- macro @HVHCurveArrow { @Link path { hvhcurve } arrow { yes } }
- macro @VHVCurve { @Link path { vhvcurve } }
- macro @VHVCurveArrow { @Link path { vhvcurve } arrow { yes } }
-
- macro @DWrapLine { @Link path { dwrapline} }
- macro @DWrapArrow { @Link path { dwrapline} arrow { yes } }
- macro @UWrapLine { @Link path { uwrapline} }
- macro @UWrapArrow { @Link path { uwrapline} arrow { yes } }
- macro @DWrapCurve { @Link path {dwrapcurve} }
- macro @DWrapCurveArrow { @Link path {dwrapcurve} arrow { yes } }
- macro @UWrapCurve { @Link path {uwrapcurve} }
- macro @UWrapCurveArrow { @Link path {uwrapcurve} arrow { yes } }
-
-
- #######################################################################
- # #
- # Tree code. #
- # #
- #######################################################################
-
- export
-
- @Node @Box @CurveBox @ShadowBox @Square @Diamond
- @Polygon @Isosceles @Ellipse @Circle
- @LeftSub @ZeroWidthLeftSub @RightSub @ZeroWidthRightSub
- @FirstSub @NextSub @StubSub
-
- def @Tree
- named treehindent
- named left { 0.0rt }
- named ctr { 0.5rt }
- named right { 1.0rt }
- { treehindent }
- body x
- {
-
- macro @TNode { @@Node nodetag { T } }
- macro @Node { @TNode }
- macro @Box { @TNode outline { box } }
- macro @CurveBox { @TNode outline { curvebox } }
- macro @ShadowBox { @TNode outline { shadowbox } }
- macro @Square { @TNode outline { square } }
- macro @Diamond { @TNode outline { diamond } }
- macro @Polygon { @TNode outline { polygon } }
- macro @Isosceles { @TNode outline { isosceles } }
- macro @Ellipse { @TNode outline { ellipse } }
- macro @Circle { @TNode outline { circle } }
-
- def fixroot
- precedence 90
- left root
- {
- |treehindent root
- }
-
- macro @LeftSub
- {
- @ObjectLink
- basefrom { T }
- baseto { L@T }
- format { { /treevsep {L::y} } |treehsep x | insinuatelink }
- }
-
- macro @ZeroWidthLeftSub
- {
- @ObjectLink
- basefrom { T }
- baseto { L@T }
- format { { /treevsep @ZeroWidth { {L::y} ^|treehsep } } |
- x | insinuatelink }
- }
-
- macro @FirstSub
- {
- fixroot //
- @ObjectLink
- basefrom { T }
- baseto { S@T }
- format { //treevsep {S::y} | insinuatelink | }
- }
-
- macro @NextSub
- {
- @ObjectLink
- basefrom { T }
- baseto { S@T }
- format { x |treehsep { / {S::y} | insinuatelink | } }
- }
-
- macro @RightSub
- {
- @ObjectLink
- basefrom { T }
- baseto { R@T }
- format { x |treehsep { /treevsep {R::y} } | insinuatelink }
- }
-
- macro @ZeroWidthRightSub
- {
- @ObjectLink
- basefrom { T }
- baseto { R@T }
- format { x | { /treevsep @ZeroWidth { |treehsep {R::y} } }
- | insinuatelink }
- }
-
- macro @StubSub
- {
- @ObjectLink
- basefrom { T }
- baseto { T }
- format { @VContract { |0.5rt x | // |0.5rt
- S:: @BoxLabels @CatchTags y | } | insinuatelink }
- # path { from S@T@SW S@T@SE to }
- path {
- P1:: S@SW
- P2:: S@SE
- FROM:: from boundaryatangle { from??CTR angleto P1 }
- TO:: to boundaryatangle { to??CTR angleto P2 }
- FROM P1 P2 TO
- }
- }
-
- @HContract @VContract x
- }
-
- export
-
- @Node @Box @CurveBox @ShadowBox @Square @Diamond
- @Polygon @Isosceles @Ellipse @Circle
- @LeftSub @ZeroWidthLeftSub @RightSub @ZeroWidthRightSub
- @FirstSub @NextSub @StubSub
-
- def @HTree
- named treevindent
- named top { 0.0rt }
- named ctr { 0.5rt }
- named foot { 1.0rt }
- { treevindent }
- body x
- {
-
- macro @TNode { @@Node nodetag { T } }
- macro @Node { @TNode }
- macro @Box { @TNode outline { box } }
- macro @CurveBox { @TNode outline { curvebox } }
- macro @ShadowBox { @TNode outline { shadowbox } }
- macro @Square { @TNode outline { square } }
- macro @Diamond { @TNode outline { diamond } }
- macro @Polygon { @TNode outline { polygon } }
- macro @Isosceles { @TNode outline { isosceles } }
- macro @Ellipse { @TNode outline { ellipse } }
- macro @Circle { @TNode outline { circle } }
-
- def fixroot
- precedence 90
- left root
- {
- /treevindent root
- }
-
- macro @LeftSub
- {
- @ObjectLink
- basefrom { T }
- baseto { L@T }
- format { { |treehsep {L::y} } /treevsep x / insinuatelink }
- }
-
- macro @ZeroWidthLeftSub
- {
- @ObjectLink
- basefrom { T }
- baseto { L@T }
- format { { |treehsep @ZeroWidth { {L::y} ^/treevsep } } /
- x / insinuatelink }
- }
-
- macro @FirstSub
- {
- fixroot ||
- @ObjectLink
- basefrom { T }
- baseto { S@T }
- format { ||treehsep { {S::y} / insinuatelink / } }
- }
-
- macro @NextSub
- {
- @ObjectLink
- basefrom { T }
- baseto { S@T }
- format { x /treevsep { | {S::y} { / insinuatelink / } } }
- }
-
- macro @RightSub
- {
- @ObjectLink
- basefrom { T }
- baseto { R@T }
- format { x /treevsep { |treehsep {R::y} } / insinuatelink }
- }
-
- macro @ZeroWidthRightSub
- {
- @ObjectLink
- basefrom { T }
- baseto { R@T }
- format { x / { |treehsep @ZeroWidth { /treevsep {R::y} } }
- / insinuatelink }
- }
-
- macro @StubSub
- {
- @ObjectLink
- basefrom { T }
- baseto { T }
- format { @VContract { { /0.5rt x / } || { /0.5rt
- S:: @BoxLabels @CatchTags y / } } / insinuatelink }
- # path { from S@T@SW S@T@SE to }
- path {
- P1:: S@NE
- P2:: S@SE
- FROM:: from boundaryatangle { from??CTR angleto P1 }
- TO:: to boundaryatangle { to??CTR angleto P2 }
- FROM P1 P2 TO
- }
- }
-
- @HContract @VContract x
- }
-
-
- #######################################################################
- # #
- # Syntax diagrams code #
- # #
- # Helper definitions; also skips #
- # #
- #######################################################################
-
- def pslength right x { "("x") ldiagdecodelength" }
- def pssyntaxgap { "("syntaxgap") ldiagdecodelength" }
- def pssyntaxbias { "("syntaxbias") ldiagdecodelength" }
- def pssyntaxradius { "("syntaxradius") ldiagdecodelength" }
-
- def @ArrowLeftFrom left direction right pt
- {
- @Line arrow { direction } from { pt } to { pt -- { pssyntaxgap 0 } }
- }
-
- def @ArrowRightFrom left direction right pt
- {
- @Line arrow { direction } from { pt } to { pt ++ { pssyntaxgap 0 } }
- }
-
- def @ArrowUpFrom left direction right pt
- {
- @Line arrow { direction } from { pt } to { pt ++ { 0 pssyntaxgap } }
- }
-
- def @ArrowDownFrom left direction right pt
- {
- @Line arrow { direction } from { pt } to { pt -- { 0 pssyntaxgap } }
- }
-
- macro @LineLeftFrom { no @ArrowLeftFrom }
- macro @LineRightFrom { no @ArrowRightFrom }
- macro @LineUpFrom { no @ArrowUpFrom }
- macro @LineDownFrom { no @ArrowDownFrom }
-
- macro @Right { "right" }
- macro @Up { "up" }
- macro @Left { "left" }
- macro @Down { "down" }
-
- def @CurrDirection { @GetContext "diag_dirn" }
-
- def @GoRight right x { {"diag_dirn" @Yield @Right} @SetContext x }
- def @GoUp right x { {"diag_dirn" @Yield @Up } @SetContext x }
- def @GoLeft right x { {"diag_dirn" @Yield @Left } @SetContext x }
- def @GoDown right x { {"diag_dirn" @Yield @Down } @SetContext x }
-
- # macro @Right { "1p" }
- # macro @Up { "2p" }
- # macro @Left { "3p" }
- # macro @Down { "4p" }
-
- # macro @CurrDirection { @CurrZUnit }
-
- # def @GoRight right x { @Right @ZUnit x }
- # def @GoUp right x { @Up @ZUnit x }
- # def @GoLeft right x { @Left @ZUnit x }
- # def @GoDown right x { @Down @ZUnit x }
-
- def @GoReverse right x
- {
- @CurrDirection @Case {
- @Right @Yield @GoLeft x
- @Up @Yield @GoDown x
- @Left @Yield @GoRight x
- @Down @Yield @GoUp x
- }
- }
-
-
- def @LabelMarks right x {
- @HContract @VContract @ANode
- outline {
- NMK:: { xmark ysize }
- SMK:: { xmark 0 }
- WMK:: { 0 ymark }
- EMK:: { xsize ymark }
- NW:: { 0 ysize }
- SW:: { 0 0 }
- SE:: { xsize 0 }
- NE:: { xsize ysize }
- }
- font {}
- margin { 0c }
- vstrut { no }
- outlinestyle { noline }
- halign { mark }
- valign { mark }
- x
- }
-
- def @HSkip
- {
- OX:: @LabelMarks { syntaxgap @Wide {} }
- / @Line from { "OX@WMK" } to { "OX@EMK" }
- }
-
- def @VSkip
- {
- OX:: @LabelMarks { syntaxgap @High {} }
- / @Line from { "OX@NMK" } to { "OX@SMK" }
- }
-
- def @Skip
- {
- @CurrDirection @Case {
- { @Left @Right } @Yield @HSkip
- { @Up @Down } @Yield @VSkip
- }
- }
-
- def @LRLine right x
- {
- @HContract @VContract { @HSkip | x | @HSkip }
- }
-
- def @UDLine right x
- {
- @HContract @VContract { @VSkip / x / @VSkip }
- }
-
-
- #######################################################################
- # #
- # Ordinary starts: @StartRight, @StartUp, @StartLeft, @StartDown #
- # #
- #######################################################################
-
- def @StartRight right x
- {
- @VContract {
- @LabelMarks {
- |syntaxgap @GoRight x |syntaxgap
- }
- / @LineRightFrom WMK
- / back @ArrowLeftFrom EMK
- }
- }
-
- def @StartUp right x
- {
- @VContract {
- @LabelMarks {
- ^/syntaxgap @GoUp x /syntaxgap
- }
- / @LineUpFrom SMK
- / back @ArrowDownFrom NMK
- }
- }
-
- def @StartLeft right x
- {
- @VContract {
- @LabelMarks {
- |syntaxgap @GoLeft x |syntaxgap
- }
- / @LineLeftFrom EMK
- / back @ArrowRightFrom WMK
- }
- }
-
- def @StartDown right x
- {
- @VContract {
- @LabelMarks {
- ^/syntaxgap @GoDown x /syntaxgap
- }
- / @LineDownFrom NMK
- / back @ArrowUpFrom SMK
- }
- }
-
-
- #######################################################################
- # #
- # Fancy starts: @StartRightRight, @StartRightDown #
- # #
- #######################################################################
-
- def @StartRightRight
- named A {}
- named B {}
- {
- AA:: @LabelMarks { @HSkip & @GoRight A }
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- CC:: @LabelMarks {}
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- BB:: @LabelMarks { @GoRight B & @HSkip }
- // @RVLCurve from { AA@EMK } to { CC@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- // @LVRCurve from { CC@WMK } to { BB@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- back @ArrowLeftFrom BB@EMK
- }
-
- def @StartRightRightRight
- named A {}
- named B {}
- named C {}
- {
- AA:: @LabelMarks { @HSkip & @GoRight A }
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- XX:: @LabelMarks {}
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- BB:: @LabelMarks { @GoRight B & @HSkip }
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- YY:: @LabelMarks {}
- //syntaxgap
- //syntaxgap
- |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap |syntaxgap
- CC:: @LabelMarks { @GoRight C & @HSkip }
- //syntaxgap
- //syntaxgap
- // @RVLCurve from { AA@EMK } to { XX@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- // @LVRCurve from { XX@WMK } to { BB@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- // @RVLCurve from { BB@EMK } to { YY@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- // @LVRCurve from { YY@WMK } to { CC@WMK }
- bias { pssyntaxbias } radius { pssyntaxradius }
- back @ArrowLeftFrom CC@EMK
- }
-
- def @StartRightDown
- named A {}
- named B {}
- {
- @HContract @VContract {
- / BB:: @LabelMarks |syntaxgap AA::@LabelMarks @GoRight A |syntaxbias
- /syntaxgap | |
- /syntaxgap | |
- }
- / @Line from { BB@EMK } to { AA@WMK }
- / @RVLCurve from { AA@EMK } to { xcoord AA@EMK pssyntaxgap }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { xcoord AA@EMK pssyntaxgap } to { 0 0 }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @GoDown B
- / @VSkip
- / CC:: @LabelMarks {}
- / back @ArrowUpFrom CC@NMK
- }
-
-
- #######################################################################
- # #
- # Cells: @XCell, @ACell, @BCell, @CCell #
- # #
- #######################################################################
-
- def @RightCell right x
- {
- @VContract {
- @LabelMarks {
- |syntaxgap x |syntaxgap
- }
- / forward @ArrowRightFrom WMK
- / @LineLeftFrom EMK
- }
- }
-
- def @LeftCell right x
- {
- @VContract {
- @LabelMarks {
- |syntaxgap x |syntaxgap
- }
- / forward @ArrowLeftFrom EMK
- / @LineRightFrom WMK
- }
- }
-
- def @DownCell right x
- {
- @VContract {
- @LabelMarks {
- ^/syntaxgap x /syntaxgap
- }
- / forward @ArrowDownFrom NMK
- / @LineUpFrom SMK
- }
- }
-
- def @UpCell right x
- {
- @VContract {
- @LabelMarks {
- ^/syntaxgap x /syntaxgap
- }
- / forward @ArrowUpFrom SMK
- / @LineDownFrom NMK
- }
- }
-
- def @XCell right x
- {
- @CurrDirection @Case {
- @Right @Yield @RightCell x
- @Up @Yield @UpCell x
- @Left @Yield @LeftCell x
- @Down @Yield @DownCell x
- }
- }
-
- macro @ACell { @XCell @ANode }
- macro @BCell { @XCell @BNode }
- macro @CCell { @XCell @CNode }
- macro @DCell { @XCell @DNode }
- macro @ECell { @XCell @ENode }
-
-
- #######################################################################
- # #
- # @Sequence #
- # #
- #######################################################################
-
- def @Sequence
- named A {}
- named B {}
- named C {}
- named D {}
- named E {}
- named F {}
- named G {}
- named H {}
- named I {}
- named J {}
- named K {}
- named L {}
- {
-
- @CurrDirection @Case {
- @Right @Yield
- @HContract { A | B | C | D | E | F | G | H | I | J | K | L }
- @Up @Yield
- @VContract { L / K / J / I / H / G / F / E / D / C / B / A }
- @Left @Yield
- @HContract { L | K | J | I | H | G | F | E | D | C | B | A }
- @Down @Yield
- @VContract { A / B / C / D / E / F / G / H / I / J / K / L }
- }
- }
-
-
- #######################################################################
- # #
- # @OneOrBoth #
- # #
- #######################################################################
-
- def @OneOrBoth
- named A {}
- named B {}
- {
-
- def @ALH {
- @HContract {
- |syntaxgap
- "AX":: restrict { "(WMK) (EMK)" } @LabelMarks A
- |syntaxgap
- }
- }
-
- def @BLH {
- @HContract {
- |syntaxgap
- "BX":: restrict { "(WMK) (EMK)" } @LabelMarks B
- |syntaxgap
- }
- }
-
- def @ALV {
- @VContract {
- /syntaxgap
- "AX":: restrict { "(NMK) (SMK)" } @LabelMarks A
- /syntaxgap
- }
- }
-
- def @BLV {
- @VContract {
- /syntaxgap
- "BX":: restrict { "(NMK) (SMK)" } @LabelMarks B
- /syntaxgap
- }
- }
-
- def @RightOneOrBoth
- {
- @LRLine {
- @HContract @VContract { @ALH | /syntaxgap | @BLH }
- //
- @HVCurve from { "BX@WMK" } to { 0 ycoord "AX@WMK" }
- arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
- //
- @HVCurve from { "BX@EMK" } to { xsize ycoord "AX@WMK" }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- //
- @Line from { 0 ycoord "AX@WMK" } to { "AX@WMK" }
- //
- @Line from { "AX@EMK" } to { xsize ycoord "AX@WMK" }
- //
- @Arrow
- from { {xcoord "AX@EMK" * 0.5 + xcoord "BX@WMK" * 0.5}
- ycoord "AX@EMK" }
- to { {xcoord "AX@EMK" * 0.5 + xcoord "BX@WMK" * 0.5}
- ycoord "BX@WMK" }
- }
- }
-
- def @LeftOneOrBoth
- {
- @LRLine {
- @HContract @VContract { | @ALH /syntaxgap @BLH | }
- //
- @HVCurve from { "BX@WMK" } to { 0 ycoord "AX@WMK" }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- //
- @HVCurve from { "BX@EMK" } to { xsize ycoord "AX@WMK" }
- arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
- //
- @Line from { 0 ycoord "AX@WMK" } to { "AX@WMK" }
- //
- @Line from { "AX@EMK" } to { xsize ycoord "AX@WMK" }
- //
- @Arrow
- from { {xcoord "AX@WMK" * 0.5 + xcoord "BX@EMK" * 0.5}
- ycoord "AX@WMK" }
- to { {xcoord "AX@WMK" * 0.5 + xcoord "BX@EMK" * 0.5}
- ycoord "BX@EMK" }
- }
- }
-
- def @DownOneOrBoth
- {
- @UDLine {
- @HContract @VContract { @ALV |syntaxgap / | @BLV }
- ||
- @VHCurve from { "BX@NMK" } to { xcoord "AX@NMK" ysize }
- arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
- ||
- @VHCurve from { "BX@SMK" } to { xcoord "AX@NMK" 0 }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- ||
- @Line from { xcoord "AX@NMK" ysize } to { "AX@NMK" }
- ||
- @Line from { "AX@SMK" } to { xcoord "AX@SMK" 0 }
- ||
- @Arrow
- from { xcoord "AX@SMK"
- {ycoord "AX@SMK" * 0.5 + ycoord "BX@NMK" * 0.5} }
- to { xcoord "BX@NMK"
- {ycoord "AX@SMK" * 0.5 + ycoord "BX@NMK" * 0.5} }
- }
- }
-
- def @UpOneOrBoth
- {
- @UDLine {
- @HContract @VContract { |syntaxgap @BLV / @ALV | }
- ||
- @VHCurve from { "BX@NMK" } to { xcoord "AX@NMK" ysize }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- ||
- @VHCurve from { "BX@SMK" } to { xcoord "AX@NMK" 0 }
- arrow { no } bias { pssyntaxbias } radius { pssyntaxradius }
- ||
- @Line from { xcoord "AX@NMK" ysize } to { "AX@NMK" }
- ||
- @Line from { "AX@SMK" } to { xcoord "AX@SMK" 0 }
- ||
- @Arrow
- from { xcoord "AX@NMK"
- {ycoord "AX@NMK" * 0.5 + ycoord "BX@SMK" * 0.5} }
- to { xcoord "BX@SMK"
- {ycoord "AX@NMK" * 0.5 + ycoord "BX@SMK" * 0.5} }
- }
- }
-
- @CurrDirection @Case {
- @Right @Yield @RightOneOrBoth
- @Up @Yield @UpOneOrBoth
- @Left @Yield @LeftOneOrBoth
- @Down @Yield @DownOneOrBoth
- }
- }
-
- #######################################################################
- # #
- # @Select and @Optional #
- # #
- #######################################################################
-
- def @Select
- named A {}
- named B {}
- named C {}
- named D {}
- named E {}
- named F {}
- named G {}
- named H {}
- named I {}
- named J {}
- named K {}
- named L {}
- {
-
- def @RLFirstOrMiddle
- left label
- named i { 0i }
- named al { no }
- named ar { no }
- right x
- {
- {|i @HContract { |syntaxgap label:: restrict { "(WMK) (EMK)" }
- @LabelMarks x |syntaxgap }}
- // @Line from { label"@WMK" } to { 0 ycoord label"@WMK" }
- arrow { al }
- // @Line from { label"@EMK" } to { xsize ycoord label"@EMK" }
- arrow { ar }
- }
-
- def @UDFirstOrMiddle
- left label
- named i { 0i }
- named au { no }
- named ad { no }
- right x
- {
- {/i @VContract { /syntaxgap label:: restrict { "(NMK) (SMK)" }
- @LabelMarks x /syntaxgap }}
- || @Line from { label"@NMK" } to { xcoord label"@NMK" ysize }
- arrow { au }
- || @Line from { label"@SMK" } to { xcoord label"@SMK" 0 }
- arrow { ad }
- }
-
- def @RLLast
- left label
- named i { 0i }
- named al { no }
- named ar { no }
- right x
- {
- {|i @HContract { |syntaxgap label:: restrict { "(WMK) (EMK)" }
- @LabelMarks x |syntaxgap }}
- // @HVCurve from { label"@WMK" } to { 0 ycoord "AX@WMK" }
- arrow { al } bias { pssyntaxbias } radius { pssyntaxradius }
- // @HVCurve from { label"@EMK" } to { xsize ycoord "AX@WMK" }
- arrow { ar } bias { pssyntaxbias } radius { pssyntaxradius }
- }
-
- def @UDLast
- left label
- named i { 0i }
- named au { no }
- named ad { no }
- right x
- {
- {/i @VContract { /syntaxgap label:: restrict { "(NMK) (SMK)" }
- @LabelMarks x /syntaxgap }}
- || @VHCurve from { label"@NMK" } to { xcoord "AX@NMK" ysize }
- arrow { au } bias { pssyntaxbias } radius { pssyntaxradius }
- || @VHCurve from { label"@SMK" } to { xcoord "AX@SMK" 0 }
- arrow { ad } bias { pssyntaxbias } radius { pssyntaxradius }
- }
-
- def @DirectedSelect
- named @First left label right x {}
- named @Middle left label right x {}
- named @Last left label right x {}
- named @Join precedence 90 left x right y {}
- {
-
- def @LastIsA
- {
- A
- }
-
- def @LastIsB
- {
- AX @First A
- @Join BX @Last B
- }
-
- def @LastIsC
- {
- AX @First A
- @Join BX @Middle B
- @Join CX @Last C
- }
-
- def @LastIsD
- {
- AX @First A
- @Join BX @Middle B
- @Join CX @Middle C
- @Join DX @Last D
- }
-
- def @LastIsE
- {
- AX @First A
- @Join BX @Middle B
- @Join CX @Middle C
- @Join DX @Middle D
- @Join EX @Last E
- }
-
- def @LastIsF
- {
- AX @First A
- @Join BX @Middle B
- @Join CX @Middle C
- @Join DX @Middle D
- @Join EX @Middle E
- @Join FX @Last F
- }
-
- def @UpToF
- {
- AX @First A
- @Join BX @Middle B
- @Join CX @Middle C
- @Join DX @Middle D
- @Join EX @Middle E
- @Join FX @Middle F
- }
-
- def @LastIsG
- {
- @UpToF
- @Join GX @Last G
- }
-
- def @LastIsH
- {
- @UpToF
- @Join GX @Middle G
- @Join HX @Last H
- }
-
- def @LastIsI
- {
- @UpToF
- @Join GX @Middle G
- @Join HX @Middle H
- @Join IX @Last I
- }
-
- def @LastIsJ
- {
- @UpToF
- @Join GX @Middle G
- @Join HX @Middle H
- @Join IX @Middle I
- @Join JX @Last J
- }
-
- def @LastIsK
- {
- @UpToF
- @Join GX @Middle G
- @Join HX @Middle H
- @Join IX @Middle I
- @Join JX @Middle J
- @Join KX @Last K
- }
-
- def @LastIsL
- {
- @UpToF
- @Join GX @Middle G
- @Join HX @Middle H
- @Join IX @Middle I
- @Join JX @Middle J
- @Join KX @Middle K
- @Join LX @Last L
- }
-
- def @TryA { A @Case { {} @Yield @Skip else @Yield @LastIsA } }
- def @TryB { B @Case { {} @Yield @TryA else @Yield @LastIsB } }
- def @TryC { C @Case { {} @Yield @TryB else @Yield @LastIsC } }
- def @TryD { D @Case { {} @Yield @TryC else @Yield @LastIsD } }
- def @TryE { E @Case { {} @Yield @TryD else @Yield @LastIsE } }
- def @TryF { F @Case { {} @Yield @TryE else @Yield @LastIsF } }
- def @TryG { G @Case { {} @Yield @TryF else @Yield @LastIsG } }
- def @TryH { H @Case { {} @Yield @TryG else @Yield @LastIsH } }
- def @TryI { I @Case { {} @Yield @TryH else @Yield @LastIsI } }
- def @TryJ { J @Case { {} @Yield @TryI else @Yield @LastIsJ } }
- def @TryK { K @Case { {} @Yield @TryJ else @Yield @LastIsK } }
- def @TryL { L @Case { {} @Yield @TryK else @Yield @LastIsL } }
-
- @TryL
- }
-
- def @RightSelect
- {
- @LRLine @DirectedSelect
- @First { label @RLFirstOrMiddle x }
- @Middle { label @RLFirstOrMiddle ar { yes } x }
- @Last { label @RLLast ar { yes } x }
- @Join { x //syntaxgap y }
- }
-
- def @UpSelect
- {
- @UDLine @DirectedSelect
- @First { label @UDFirstOrMiddle i { 1r } x }
- @Middle { label @UDFirstOrMiddle i { 1r } au { yes } x }
- @Last { label @UDLast i { 1r } au { yes } x }
- @Join { x ||syntaxgap y }
- }
-
- def @LeftSelect
- {
- @LRLine @DirectedSelect
- @First { label @RLFirstOrMiddle i { 1r } x }
- @Middle { label @RLFirstOrMiddle i { 1r } al { yes } x }
- @Last { label @RLLast i { 1r } al { yes } x }
- @Join { x //syntaxgap y }
- }
-
- def @DownSelect
- {
- @UDLine @DirectedSelect
- @First { label @UDFirstOrMiddle x }
- @Middle { label @UDFirstOrMiddle ad { yes } x }
- @Last { label @UDLast ad { yes } x }
- @Join { x ||syntaxgap y }
- }
-
- @CurrDirection @Case {
- @Right @Yield @RightSelect
- @Up @Yield @UpSelect
- @Left @Yield @LeftSelect
- @Down @Yield @DownSelect
- }
- }
-
-
- def @Optional right x
- {
- @Select A { @Skip } B { x }
- }
-
-
- #######################################################################
- # #
- # @OptionalDiverted #
- # #
- #######################################################################
-
- def @DownRightOptionalDiverted right x
- {
- @UDLine {
- OX:: @LabelMarks {
- |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias
- /syntaxgap
- }
- / @Line from { "OX@NW" } to { "OX@SW" }
- / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" }
- / @RVLCurveArrow from { "OX@IN@AX@EMK" } to { "OX@SW" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- }
- }
-
- def @UpRightOptionalDiverted right x
- {
- @UDLine {
- OX:: @LabelMarks {
- ^/syntaxgap
- |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias
- }
- / @Line from { "OX@NW" } to { "OX@SW" }
- / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" }
- / @RVLCurveArrow from { "OX@IN@AX@EMK" } to { "OX@NW" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- }
- }
-
- def @RightDownOptionalDiverted right x
- {
- @LRLine {
- OX:: @LabelMarks {
- { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias }
- |syntaxgap
- }
- / @Line from { "OX@NW" } to { "OX@NE" }
- / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" }
- / @VHCurve from {"OX@IN@AX@SMK"} to { "OX@SE"--{pssyntaxgap 0} }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { "OX@SE" -- {pssyntaxgap 0} } to { "OX@NE" }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- }
- }
-
- def @LeftDownOptionalDiverted right x
- {
- @LRLine {
- OX:: @LabelMarks {
- ^|syntaxgap
- { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias }
- }
- / @Line from { "OX@NW" } to { "OX@NE" }
- / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" }
- / @VHCurve from {"OX@IN@AX@SMK"} to { "OX@SW"++{pssyntaxgap 0} }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { "OX@SW" ++ {pssyntaxgap 0} } to { "OX@NW" }
- arrow { yes } bias { pssyntaxbias } radius { pssyntaxradius }
- }
- }
-
- def @OptionalDiverted right x
- {
- @CurrDirection @Case {
- @Right @Yield @RightDownOptionalDiverted x
- @Up @Yield @UpRightOptionalDiverted x
- @Left @Yield @LeftDownOptionalDiverted x
- @Down @Yield @DownRightOptionalDiverted x
- }
- }
-
-
- #######################################################################
- # #
- # @Diverted #
- # #
- #######################################################################
-
- def @DownRightDiverted right x
- {
- @UDLine {
- OX:: @LabelMarks {
- |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias
- ^/syntaxgap
- /syntaxgap
- }
- / @VHCurve from { "OX@NW" } to { "OX@IN@AX@WMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @RVLCurve from { "OX@IN@AX@EMK" }
- to { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" }
- to { "OX@SW" } bias { pssyntaxbias } radius {pssyntaxradius}
- }
- }
-
- def @UpRightDiverted right x
- {
- @UDLine {
- OX:: @LabelMarks {
- ^/syntaxgap
- /syntaxgap
- |syntaxgap AX:: @LabelMarks @GoRight x |syntaxbias
- }
- / @VHCurve from { "OX@SW" } to { "OX@IN@AX@WMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @RVLCurve from { "OX@IN@AX@EMK" }
- to { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@EMK" }
- to { "OX@NW" } bias { pssyntaxbias } radius {pssyntaxradius}
- }
- }
-
- def @RightDownDiverted right x
- {
- @LRLine {
- OX:: @LabelMarks {
- { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias }
- ^|syntaxgap
- |syntaxgap
- }
- / @HVCurve from { "OX@NW" } to { "OX@IN@AX@NMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @VHCurve from { "OX@IN@AX@SMK" }
- to { xcoord "OX@IN@AX@EMK" ycoord "OX@SMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { xcoord "OX@IN@AX@EMK" ycoord "OX@SMK" }
- to { "OX@IN@AX@EMK" ++ { pssyntaxgap 0 } }
- bias { pssyntaxbias } radius {pssyntaxradius}
- / @VHCurve from { "OX@IN@AX@EMK" ++ { pssyntaxgap 0 } }
- to { "OX@NE" } bias { pssyntaxbias } radius {pssyntaxradius}
- }
- }
-
- def @LeftDownDiverted right x
- {
- @LRLine {
- OX:: @LabelMarks {
- |syntaxgap
- ^|syntaxgap
- { /syntaxgap AX:: @LabelMarks @GoDown x /syntaxbias }
- }
- / @HVCurve from { "OX@NE" } to { "OX@IN@AX@NMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @VHCurve from { "OX@IN@AX@SMK" }
- to { xcoord "OX@IN@AX@WMK" ycoord "OX@SMK" }
- bias { pssyntaxbias } radius { pssyntaxradius }
- / @HVCurve from { xcoord "OX@IN@AX@WMK" ycoord "OX@SMK" }
- to { "OX@IN@AX@WMK" -- { pssyntaxgap 0 } }
- bias { pssyntaxbias } radius {pssyntaxradius}
- / @VHCurve from { "OX@IN@AX@WMK" -- { pssyntaxgap 0 } }
- to { "OX@NW" } bias { pssyntaxbias } radius {pssyntaxradius}
- }
- }
-
- def @Diverted right x
- {
- @CurrDirection @Case {
- @Right @Yield @RightDownDiverted x
- @Up @Yield @UpRightDiverted x
- @Left @Yield @LeftDownDiverted x
- @Down @Yield @DownRightDiverted x
- }
- }
-
-
- #######################################################################
- # #
- # @RepeatDiverted #
- # #
- #######################################################################
-
- def @RepeatDiverted right x
- {
- # this implementation exploits the coincidental similarity
- # of @RepeatDiverted to @OptionalDiverted
-
- @CurrDirection @Case {
- @Right @Yield @LeftDownOptionalDiverted x
- @Up @Yield @DownRightOptionalDiverted x
- @Left @Yield @RightDownOptionalDiverted x
- @Down @Yield @UpRightOptionalDiverted x
- }
- }
-
-
-
- #######################################################################
- # #
- # @Loop and @Repeat #
- # #
- #######################################################################
-
- def @Loop
- named A {}
- named B {}
- {
- def @LeftOrRightLoop
- named al { no }
- named ar { no }
- {
- @LRLine {
- @HContract @VContract { OX:: @LabelMarks {
- { |syntaxgap AX:: @LabelMarks A |syntaxgap }
- //syntaxgap
- { |0.5rt BX:: @LabelMarks @GoReverse B |syntaxgap }
- } }
- / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" }
- / @Line from { "OX@EMK" } to { "OX@IN@AX@EMK" }
- / @HVCurve from { "OX@IN@BX@EMK" } to { "OX@EMK" }
- arrow { ar } bias {pssyntaxbias} radius {pssyntaxradius}
- / @HVCurve from { "OX@IN@BX@WMK" } to { "OX@WMK" }
- arrow { al } bias {pssyntaxbias} radius {pssyntaxradius}
- }
- }
-
- def @UpOrDownLoop
- named au { no }
- named ad { no }
- {
- @UDLine {
- @HContract @VContract { OX:: @LabelMarks {
- { /syntaxgap AX:: @LabelMarks A /syntaxgap }
- ||syntaxgap
- { /0.5rt BX:: @LabelMarks @GoReverse B /syntaxgap }
- } }
- / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" }
- / @Line from { "OX@SMK" } to { "OX@IN@AX@SMK" }
- / @VHCurve from { "OX@IN@BX@NMK" } to { "OX@NMK" }
- arrow { au } bias {pssyntaxbias} radius {pssyntaxradius}
- / @VHCurve from { "OX@IN@BX@SMK" } to { "OX@SMK" }
- arrow { ad } bias {pssyntaxbias} radius {pssyntaxradius}
- }
- }
-
- @CurrDirection @Case {
- @Right @Yield @LeftOrRightLoop al { yes }
- @Up @Yield @UpOrDownLoop ad { yes }
- @Left @Yield @LeftOrRightLoop ar { yes }
- @Down @Yield @UpOrDownLoop au { yes }
- }
- }
-
- def @Repeat right x
- {
- @Loop
- A { x }
- B { @Skip }
- }
-
-
- #######################################################################
- # #
- # @LoopOpposite and @RepeatOpposite #
- # #
- #######################################################################
-
- def @LoopOpposite
- named A {}
- named B {}
- {
- def @LeftOrRightLoopOpposite
- named al { no }
- named ar { no }
- {
- @LRLine {
- @HContract @VContract { OX:: @LabelMarks {
- { |0.5rt BX:: @LabelMarks @GoReverse B |syntaxgap }
- //syntaxgap
- ^//syntaxgap
- { |syntaxgap AX:: @LabelMarks A |syntaxgap }
- } }
- / @Line from { "OX@WMK" } to { "OX@IN@AX@WMK" }
- / @Line from { "OX@EMK" } to { "OX@IN@AX@EMK" }
- / @HVCurve from { "OX@IN@BX@EMK" } to { "OX@EMK" }
- arrow { ar } bias {pssyntaxbias} radius {pssyntaxradius}
- / @HVCurve from { "OX@IN@BX@WMK" } to { "OX@WMK" }
- arrow { al } bias {pssyntaxbias} radius {pssyntaxradius}
- }
- }
-
- def @UpOrDownLoopOpposite
- named au { no }
- named ad { no }
- {
- @UDLine {
- @HContract @VContract { OX:: @LabelMarks {
- { /0.5rt BX:: @LabelMarks @GoReverse B /syntaxgap }
- ^||syntaxgap
- { /syntaxgap AX:: @LabelMarks A /syntaxgap }
- } }
- / @Line from { "OX@NMK" } to { "OX@IN@AX@NMK" }
- / @Line from { "OX@SMK" } to { "OX@IN@AX@SMK" }
- / @VHCurve from { "OX@IN@BX@NMK" } to { "OX@NMK" }
- arrow { au } bias {pssyntaxbias} radius {pssyntaxradius}
- / @VHCurve from { "OX@IN@BX@SMK" } to { "OX@SMK" }
- arrow { ad } bias {pssyntaxbias} radius {pssyntaxradius}
- }
- }
-
- @CurrDirection @Case {
- @Right @Yield @LeftOrRightLoopOpposite al { yes }
- @Up @Yield @UpOrDownLoopOpposite ad { yes }
- @Left @Yield @LeftOrRightLoopOpposite ar { yes }
- @Down @Yield @UpOrDownLoopOpposite au { yes }
- }
- }
-
- def @RepeatOpposite right x
- {
- @LoopOpposite
- A { x }
- B { @Skip }
- }
-
-
- #######################################################################
- # #
- # Value of whole diagram #
- # #
- #######################################################################
-
- def @DiagValue right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- {
- save @Case {
- { yes Yes } @Yield "grestore save gsave"
- else @Yield {}
- }
- maxlabels "ldiagbegin"
- //
- "ldiagend"
- save @Case {
- { yes Yes } @Yield "restore"
- else @Yield {}
- }
- } @Graphic x }
-
- PDF @Yield {}
- }
- }
-
- title @Case {
-
- "--titledft--" @Yield @DiagValue @Body
-
- else @Yield { title titleformat @DiagValue @Body }
- }
-
- @End @Diag
-
-
- macro @SyntaxDiag {
- @Diag
- avalign { mark }
- avstrut { yes }
- amargin { 0.2f }
- aoutline { box }
- afont { Slope }
-
- bvalign { mark }
- bvstrut { yes }
- bmargin { 0.2f }
- boutline { curvebox }
- bfont { Bold }
-
- cvalign { mark }
- cvstrut { yes }
- cmargin { 0.2f }
- coutline { circle }
- chsize { 1f }
-
- arrowlength { 0.4f }
- backarrowlength { 0.4f }
- }
-}
diff --git a/include/include/diagf.etc b/include/include/diagf.etc
deleted file mode 100644
index 02141b6..0000000
--- a/include/include/diagf.etc
+++ /dev/null
@@ -1,644 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Geometry package for algebra and geometry in PostScript #
-# Version 1.0 (June 1996) #
-# Jeffrey H. Kingston #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export
-
- i c p m s v f d "-0" "-1" "-2" "-3" "-4" "-5" "-6" "-7" "-8" "-9" "-."
- pi e sqrt abs ceiling floor truncate round cos sin atan
- exp log rand max min "*" "/" idiv mod "+" "-"
- xcoord ycoord distance angleto ":=" ":==" "::" ":<" prev "??" "?!?"
- boundaryatangle atangle
- "**" "++" "--" anglefix anydebug ","
- "=" "!=" "==" "!==" "<" "<=" ">" ">=" not and xor or
- if quadcase signcase xloop yloop zloop
- cabout aabout
-
-def @Geometry
-{
- def i
- precedence 100
- left x
- {
- x "in"
- }
-
- def c
- precedence 100
- left x
- {
- x "cm"
- }
-
- def p
- precedence 100
- left x
- {
- x "pt"
- }
-
- def m
- precedence 100
- left x
- {
- x "em"
- }
-
- def s
- precedence 100
- left x
- {
- x "sp"
- }
-
- def v
- precedence 100
- left x
- {
- x "vs"
- }
-
- def f
- precedence 100
- left x
- {
- x "ft"
- }
-
- def d
- precedence 100
- left x
- {
- x "dg"
- }
-
- def pi
- {
- "ldiagpi"
- }
-
- def e
- {
- "ldiage"
- }
-
- def sqrt
- precedence 99
- right y
- {
- y "sqrt"
- }
-
- def abs
- precedence 99
- right y
- {
- y "abs"
- }
-
- def anglefix
- precedence 99
- right y
- {
- y "ldiagfixangle"
- }
-
- def ceiling
- precedence 99
- right y
- {
- y "ceiling"
- }
-
- def floor
- precedence 99
- right y
- {
- y "floor"
- }
-
- def truncate
- precedence 99
- right y
- {
- y "truncate"
- }
-
- def round
- precedence 99
- right y
- {
- y "round"
- }
-
- def cos
- precedence 99
- right y
- {
- y "cos"
- }
-
- def sin
- precedence 99
- right y
- {
- y "sin"
- }
-
- def xcoord
- precedence 99
- right y
- {
- y "pop"
- }
-
- def ycoord
- precedence 99
- right y
- {
- y "exch pop"
- }
-
- def distance
- precedence 98
- left x
- right y
- {
- x y "ldiagdistance"
- }
-
- def angleto
- precedence 98
- left x
- right y
- {
- x y "ldiagangleto"
- }
-
- def atan
- precedence 98
- left x
- right y
- {
- x y "atan"
- }
-
- def exp
- precedence 98
- left x
- right y
- {
- x y "exp"
- }
-
- def log
- precedence 98
- left x
- right y
- {
- x y "ldiaglog"
- }
-
- def rand
- precedence 98
- left x
- right y
- {
- x y "dorand"
- }
-
- def max
- precedence 98
- left x
- right y
- {
- x y "ldiagmax"
- }
-
- def min
- precedence 98
- left x
- right y
- {
- x y "ldiagmin"
- }
-
- def "*"
- precedence 97
- left x
- right y
- {
- x y "mul"
- }
-
- def "/"
- precedence 96
- associativity left
- left x
- right y
- {
- x y "div"
- }
-
- def idiv
- precedence 96
- associativity left
- left x
- right y
- {
- x y "idiv"
- }
-
- def mod
- precedence 96
- left x
- right y
- {
- x "cvi" y "cvi mod"
- }
-
- def "+"
- precedence 95
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield y
- else @Yield { x y "add" }
- }
- }
-
- def "-"
- precedence 95
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { y "neg" }
- else @Yield { x y "sub" }
- }
- }
-
- def "-0" { "-0" }
- def "-1" { "-1" }
- def "-2" { "-2" }
- def "-3" { "-3" }
- def "-4" { "-4" }
- def "-5" { "-5" }
- def "-6" { "-6" }
- def "-7" { "-7" }
- def "-8" { "-8" }
- def "-9" { "-9" }
- def "-." { "-." }
-
- def prev
- {
- "ldiagprevious"
- }
-
- def "??"
- precedence 99
- left x
- right y
- {
- "{" x "} ("y") ldiagdolabel"
- }
-
- def "?!?"
- precedence 99
- left x
- right y
- {
- "{" x "} "y" ldiagdolabel"
- }
-
- def boundaryatangle
- precedence 89
- left x
- right y
- {
- x??"CTR" y x??"CIRCUM" "ldiagpadd"
- }
-
- def atangle
- precedence 89
- left x
- right y
- {
- 0 0 x y "ldiagatangle"
- }
-
- def "**"
- precedence 88
- left x
- right y
- {
- x y "ldiagpmul"
- }
-
- def "++"
- precedence 87
- associativity left
- left x
- right y
- {
- x y "ldiagpadd"
- }
-
- def "--"
- precedence 87
- associativity left
- left x
- right y
- {
- y x "ldiagpsub"
- }
-
- def "="
- precedence 79
- left x
- right y
- {
- x y "eq"
- }
-
- def "!="
- precedence 79
- left x
- right y
- {
- x y "ne"
- }
-
- def "=="
- precedence 79
- left x
- right y
- {
- x y "ldiagangleeq"
- }
-
- def "!=="
- precedence 79
- left x
- right y
- {
- x y "ldiaganglene"
- }
-
- def "<"
- precedence 79
- left x
- right y
- {
- x y "lt"
- }
-
- def "<="
- precedence 79
- left x
- right y
- {
- x y "le"
- }
-
- def ">"
- precedence 79
- left x
- right y
- {
- x y "gt"
- }
-
- def ">="
- precedence 79
- left x
- right y
- {
- x y "ge"
- }
-
- def not
- precedence 78
- right y
- {
- y "not"
- }
-
- def and
- precedence 77
- left x
- right y
- {
- x y "and"
- }
-
- def xor
- precedence 76
- left x
- right y
- {
- x y "xor"
- }
-
- def or
- precedence 76
- left x
- right y
- {
- x y "or"
- }
-
- def ","
- precedence 70
- left x
- right y
- {
- OOO ++ { OOX -- OOO }**x ++ { OOY -- OOO }**y
- }
-
- def ":="
- precedence 20
- left x
- right y
- {
- "/"x "[" y "] cvx def"
- }
-
- def ":=="
- precedence 20
- left x
- right y
- {
- "/"x "[" y "counttomark 2 add (assigning) exch ldiagdebugprint ] cvx def"
- }
-
- def "::"
- precedence 20
- left x
- right y
- {
- y "/"x "ldiagpointdef"
- }
-
- def ":<"
- precedence 20
- left x
- right y
- {
- y "/"x"@ANGLE ldiagangledef"
- }
-
- def if
- named cond {}
- named then {}
- named else {}
- {
- cond "{" then "} {" else "} ifelse"
- }
-
- def quadcase
- precedence 10
- left angle
- named "0" {}
- named "0-90" {}
- named "90" {}
- named "90-180" {}
- named "180" {}
- named "180-270" {}
- named "270" {}
- named "270-360" {}
- {
- "{" 0-90 "} {" 270 "} {" 180 "} {" 90 "}"
- "{" 0 "} {" 270-360 "} {" 180-270 "} {" 90-180 "}" angle "ldiagquadcase"
- }
-
- def signcase
- precedence 10
- left number
- named neg {}
- named zero {}
- named pos {}
- {
- "{" neg "} {" zero "} {" pos "}" number "ldiagsigncase"
- }
-
- def xloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named x { "xval" } {}
- {
- from by to "{ /xval exch def" do "} for"
- }
-
- def yloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named y { "yval" } {}
- {
- from by to "{ /yval exch def" do "} for"
- }
-
- def zloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named z { "zval" } {}
- {
- from by to "{ /zval exch def" do "} for"
- }
-
- def anydebug
- right tag
- {
- "[" tag "counttomark ("tag") exch ldiagdebugprint cleartomark"
- }
-
- def aabout
- named circum {}
- named extra {}
- named centre {}
- {
- "{" circum "} cvlit" extra "[" centre "] cvx ldiagaabout"
- # ZXCTR := centre
- # ZFCTR := circum??CTR
- # ZAREF := ZFCTR angleto ZXCTR
- # ZAMIN := 0d
- # ZPMIN := circum boundaryatangle { ZAREF - ZAMIN }
- # ++ extra atangle { ZAREF - ZAMIN }
- # ZAMAX := 90d
- # ZPMAX := circum boundaryatangle { ZAREF - ZAMAX }
- # ++ extra atangle { ZAREF - ZAMAX }
- # xloop from { 1 } to { 12 } by { 1 } do {
- # ZAMID := { ZAMIN + ZAMAX } * 0.5
- # ZPMID := circum boundaryatangle { ZAREF - ZAMID }
- # ++ extra atangle { ZAREF - ZAMID }
- # if cond { {ZPMID distance ZXCTR} > {ZFCTR distance ZXCTR} } then {
- # ZAMAX := ZAMID
- # ZPMAX := ZPMID
- # }
- # else {
- # ZAMIN := ZAMID
- # ZPMIN := ZPMID
- # }
- # }
- # ZPMID
- }
-
- def cabout
- named circum {}
- named extra {}
- named centre {}
- {
- "{" circum "} cvlit" extra "[" centre "] cvx ldiagcabout"
- # ZXCTR := centre
- # ZFCTR := circum??CTR
- # ZAREF := ZFCTR angleto ZXCTR
- # ZAMIN := 0d
- # ZPMIN := circum boundaryatangle { ZAREF + ZAMIN }
- # ++ extra atangle { ZAREF + ZAMIN }
- # ZAMAX := 90d
- # ZPMAX := circum boundaryatangle { ZAREF + ZAMAX }
- # ++ extra atangle { ZAREF + ZAMAX }
- # xloop from { 1 } to { 12 } by { 1 } do {
- # ZAMID := { ZAMIN + ZAMAX } * 0.5
- # ZPMID := circum boundaryatangle { ZAREF + ZAMID }
- # ++ extra atangle { ZAREF + ZAMID }
- # if cond { {ZPMID distance ZXCTR} > {ZFCTR distance ZXCTR} } then {
- # ZAMAX := ZAMID
- # ZPMAX := ZPMID
- # }
- # else {
- # ZAMIN := ZAMID
- # ZPMIN := ZPMID
- # }
- # }
- # ZPMID
- }
-}
diff --git a/include/include/diagf.lpg b/include/include/diagf.lpg
deleted file mode 100644
index 846d510..0000000
--- a/include/include/diagf.lpg
+++ /dev/null
@@ -1,3414 +0,0 @@
-%%BeginResource: procset LoutDiagPrependGraphic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @Diag Jeffrey H. Kingston %
-% Version 2.0 (includes CIRCUM label) September 1996 %
-% %
-% This file has been placed in the public domain by its author, %
-% Jeffrey H. Kingston %
-% %
-% To assist in avoiding name clashes, the names of all symbols %
-% defined here begin with "ldiag". However, this is not feasible %
-% with user-defined labels and some labels used by users. %
-% %
-% <point> is two numbers, a point. %
-% <length> is one number, a length %
-% <angle> is one number, an angle in degrees %
-% <dashlength> is one number, the preferred length of a dash %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-errordict begin
- /handleerror
- {
- { /Times-Roman findfont 8 pt scalefont setfont
- 0 setgray 4 pt 4 pt moveto
- $error /errorname get
- dup ldiagdict exch known
- { ldiagdict exch get }
- { 100 string cvs } ifelse
- show
- ( Command: ) show
- $error /command get 100 string cvs show
- } stopped {} if
- showpage stop
- } def
-end
-
-% begin diagram: <maxlabels> ldiagbegin -
-% must be defined outside ldiagdict since it loads it
-/ldiagbegin
-{ xsize 0 0 ysize ldiagdict begin
- 5 -1 roll /ldiagmaxlabels exch def
- (@Diag) ldiagpushtagdict
- /OOY ldiagpointdef /OOX ldiagpointdef 0 0 /OOO ldiagpointdef
-} def
-
-% end diagram: - ldiagend -
-/ldiagend
-{ ldiagpoptagdict end
-} def
-
-% concat strings: <string> <string> ldiagconcat <string>
-% must be defined outside ldiagdict since used in ldiagpromotelabels
-/ldiagconcat
-{ 2 copy length exch length add string
- dup 0 4 index putinterval
- dup 3 index length 3 index putinterval
- 3 1 roll pop pop
-} def
-
-% mconcat strings: <string> <string> ldiagmconcat <string>
-% returns concatenation, separated by @ if first is non-empty
-% must be defined outside ldiagdict since used in ldiagpromotelabels
-/ldiagmconcat
-{
- 2 copy length exch length add 1 add string
- dup 0 4 index putinterval
- dup 3 index length (@) putinterval
- dup 3 index length 1 add 3 index putinterval
- 3 1 roll pop pop
-} def
-
-% show string in format start ... end: <string> ldiagsends <string>
-/ldiagsends
-{
- dup length 20 string cvs (: ) ldiagconcat exch
- dup 0 20 getinterval ( ... ) ldiagconcat
- 3 -1 roll exch ldiagconcat
- exch dup length 20 sub 20 getinterval ldiagconcat
-} def
-
-/ldiagdebugposy 432 def
-/ldiagdebugposx 72 def
-
-% - ldiagdebugnextline -
-/ldiagdebugnextline
-{
- ldiagdebugposy 72 lt
- { /ldiagdebugposx ldiagdebugposx 144 add store
- /ldiagdebugposy 432 store
- }
- {
- /ldiagdebugposy ldiagdebugposy 12 sub store
- } ifelse
- ldiagdebugposx ldiagdebugposy moveto
-} def
-
-% - ldiagdebugbeginindent -
-/ldiagdebugbeginindent
-{
- /ldiagdebugposx ldiagdebugposx 12 add store
-} def
-
-% - ldiagdebugendindent -
-/ldiagdebugendindent
-{
- /ldiagdebugposx ldiagdebugposx 12 sub store
-} def
-
-% <string> <int> ldiagdebugprint -
-% must be defined outside ldiagdict since used in arbitrary places
-% print <string> plus count or <int> stack entries, whichever is the smaller
-/ldiagdebugprint
-{
- exch
- gsave
- initgraphics
- ldiagdebugnextline
- /Times-Roman findfont 10 scalefont setfont
- 0 setgray show
- ldiagdebugbeginindent
- count 1 sub 2 copy lt { pop } { exch pop } ifelse 1 sub
- 0 exch 1 exch
- {
- ldiagdebugnextline
- index
- dup type (dicttype) eq
- {
- (begin dict) show
- ldiagdebugbeginindent
- {
- ldiagdebugnextline
- pop 100 string cvs show
- } forall
- ldiagdebugendindent
- ldiagdebugnextline
- (end dict) show
- }
- {
- dup type (arraytype) eq
- {
- (begin array) show
- ldiagdebugbeginindent
- {
- ldiagdebugnextline
- 100 string cvs show
- } forall
- ldiagdebugendindent
- ldiagdebugnextline
- (end array) show
- }
- {
- 100 string cvs show
- } ifelse
- } ifelse
- } for
- ldiagdebugendindent
- grestore
-} def
-
-/ldiagdict 200 dict def
-ldiagdict begin
-
-% error messages
-/dictfull (dictfull error: too many labels?) def
-/dictstackoverflow (dictstackoverflow error: labels nested too deeply?) def
-/execstackoverflow (execstackoverflow error: figure nested too deeply?) def
-/limitcheck (limitcheck error: figure nested too deeply or too large?) def
-/syntaxerror (syntaxerror error: syntax error in text of figure?) def
-/typecheck (typecheck error: syntax error in text of figure?) def
-/undefined (undefined error: unknown or misspelt label?) def
-/VMError (VMError error: run out of memory?) def
-
-% push pi onto stack: - ldiagpi <num>
-/ldiagpi 3.14159 def
-
-% push e onto stack: - ldiage <num>
-/ldiage 2.71828 def
-
-% arc directions
-/clockwise false def
-/anticlockwise true def
-
-% test equality between two angles: <angle> <angle> ldiagangleeq <bool>
-/ldiagangleeq { ldiagfixangle exch ldiagfixangle eq } def
-
-% test inequality between two angles: <angle> <angle> ldiaganglene <bool>
-/ldiaganglene { ldiagangleeq not } def
-
-% maximum of two numbers: <num> <num> ldiagmax <num>
-/ldiagmax { 2 copy gt { pop } { exch pop } ifelse } def
-
-% minimum of two numbers: <num> <num> ldiagmin <num>
-/ldiagmin { 2 copy lt { pop } { exch pop } ifelse } def
-
-% add two points: <point> <point> ldiagpadd <point>
-/ldiagpadd
-{
- % (Entering padd) 4 ldiagdebugprint
- exch 3 1 roll add 3 1 roll add exch
- % (Leaving padd) 2 ldiagdebugprint
-} def
-
-% subtract first point from second: <point> <point> ldiagpsub <point>
-/ldiagpsub { 3 2 roll sub 3 1 roll exch sub exch } def
-
-% max two points: <point> <point> ldiagpmax <point>
-/ldiagpmax { exch 3 1 roll ldiagmax 3 1 roll ldiagmax exch } def
-
-% min two points: <point> <point> ldiagpmin <point>
-/ldiagpmin { exch 3 1 roll ldiagmin 3 1 roll ldiagmin exch } def
-
-% scalar multiplication: <point> <num> ldiagpmul <point>
-/ldiagpmul { dup 3 1 roll mul 3 1 roll mul exch } def
-
-% point at angle and distance: <point> <length> <angle> ldiagatangle <point>
-/ldiagatangle { 2 copy cos mul 3 1 roll sin mul ldiagpadd } def
-
-% angle from one point to another: <point> <point> ldiagangleto <angle>
-/ldiagangleto { ldiagpsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def
-
-% distance between two points: <point> <point> ldiagdistance <length>
-/ldiagdistance { ldiagpsub dup mul exch dup mul add sqrt } def
-
-% stroke a noline line: <length> <dashlength> ldiagnoline -
-/ldiagnoline
-{ pop pop
-} def
-
-% stroke a solid line: <length> <dashlength> ldiagsolid -
-/ldiagsolid
-{ pop pop [] 0 setdash 1 setlinecap stroke
-} def
-
-% stroke a dashed line: <length> <dashlength> ldiagdashed -
-/ldiagdashed
-{ 2 copy div 2 le 1 index 0 le or
- { exch pop 1 pt ldiagmax [ exch dup ] 0 setdash }
- { dup [ exch 4 2 roll 2 copy div
- 1 sub 2 div ceiling dup 4 1 roll
- 1 add mul sub exch div ] 0 setdash
- } ifelse 0 setlinecap stroke
-} def
-
-% stroke a cdashed line: <length> <dashlength> ldiagcdashed -
-/ldiagcdashed
-{ % (Entering ldiagcdashed) 2 ldiagdebugprint
- 2 copy le 1 index 0 le or
- { exch pop 1 pt ldiagmax [ exch dup ] dup 0 get 2 div setdash }
- { dup [ 4 2 roll exch 2 copy exch div
- 2 div ceiling div 1 index sub
- ] exch 2 div setdash
- } ifelse 0 setlinecap stroke
- % (Leaving ldiagcdashed) 0 ldiagdebugprint
-} def
-
-% stroke a dotted line: <length> <dashlength> ldiagdotted -
-/ldiagdotted
-{ 2 copy le 1 index 0 le or
- { exch pop 1 pt ldiagmax [ exch 0 exch ] 0 setdash }
- { 1 index exch div ceiling div
- [ 0 3 2 roll ] 0 setdash
- } ifelse 1 setlinecap stroke
-} def
-
-% scale array elements by factor: <array> <factor> ldiagscalearray <array>
-/ldiagscalearray
-{
- [ exch 3 2 roll
- { exch dup 3 1 roll mul exch } forall
- pop ]
-} def
-
-% sum array elements: <array> ldiagsumarray <number>
-/ldiagsumarray
-{
- 0 exch { add } forall
-} def
-
-% begin a more complex line: <length> <dashlength> ldiaglinebegin -
-/ldiaglinebegin
-{
- % (Entering ldiaglinebegin) 2 ldiagdebugprint
- 20 dict begin
- /dashlen exch 1 pt ldiagmax def
- /len exch def
- /gap dashlen def
- /halfgap dashlen 2 div def
- /dash dashlen def
- /halfdash dashlen 2 div def
- /dot 0 def
- % (Leaving ldiaglinebegin) 0 ldiagdebugprint
-} def
-
-% end a more complex line: <linecap> <cycle> <startpos> <stoppos> ldiaglineend -
-/ldiaglineend
-{
- % (Entering ldiaglineend) 3 ldiagdebugprint
- /stoppos exch def
- /startpos exch def
- /cycle exch def
- /linecap exch def
- /stopposlen stoppos ldiagsumarray def
- /startposlen startpos ldiagsumarray def
- /cyclelen cycle ldiagsumarray def
- /effectivelen len startposlen add stopposlen sub def
- effectivelen 0 gt cyclelen 0 gt and
- {
- /repeats effectivelen cyclelen div ceiling def
- /factor len repeats cyclelen mul startposlen sub stopposlen add div def
- cycle factor ldiagscalearray startposlen factor mul setdash
- linecap setlinecap stroke
- } if
- end
- % (Leaving ldiaglineend) 0 ldiagdebugprint
-} def
-
-% stroke a dotdashed line: <length> <dashlength> ldiagdotdashed -
-/ldiagdotdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap] [] [dash]
- ldiaglineend
-} def
-
-% stroke a dotcdashed line: <length> <dashlength> ldiagdotcdashed -
-/ldiagdotcdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap] [halfdash] [halfdash]
- ldiaglineend
-} def
-
-% stroke a dotdotdashed line: <length> <dashlength> ldiagdotdotdashed -
-/ldiagdotdotdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap dot gap] [] [dash]
- ldiaglineend
-} def
-
-% stroke a dotdotcdashed line: <length> <dashlength> ldiagdotdotcdashed -
-/ldiagdotdotcdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap dot gap] [halfdash] [halfdash]
- ldiaglineend
-} def
-
-% stroke a dotdotdotdashed line: <length> <dashlength> ldiagdotdotdotdashed -
-/ldiagdotdotdotdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap dot gap dot gap] [] [dash]
- ldiaglineend
-} def
-
-% stroke a dotdotdotcdashed line: <length> <dashlength> ldiagdotdotdotcdashed -
-/ldiagdotdotdotcdashed
-{
- ldiaglinebegin
- 1 [dash gap dot gap dot gap dot gap] [halfdash] [halfdash]
- ldiaglineend
-} def
-
-% shape and labels of the @Box symbol
-% ldiagbox <shape>
-/ldiagbox
-{
- 0 0 /SW ldiagpointdef
- xsize 0 /SE ldiagpointdef
- xsize ysize /NE ldiagpointdef
- 0 ysize /NW ldiagpointdef
-
- xsize 0.25 mul ysize /NNW ldiagpointdef
- xsize 0.75 mul ysize /NNE ldiagpointdef
- xsize 0.25 mul 0 /SSW ldiagpointdef
- xsize 0.75 mul 0 /SSE ldiagpointdef
-
- SE 0.5 ldiagpmul /S ldiagpointdef
- NW 0.5 ldiagpmul /W ldiagpointdef
- W SE ldiagpadd /E ldiagpointdef
- S NW ldiagpadd /N ldiagpointdef
-
- NE 0.5 ldiagpmul /CTR ldiagpointdef
-
- 0 dg /SSW@ANGLE ldiagangledef
- 0 dg /S@ANGLE ldiagangledef
- 0 dg /SSE@ANGLE ldiagangledef
- 45 dg /SE@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 135 dg /NE@ANGLE ldiagangledef
- 180 dg /NNE@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 180 dg /NNW@ANGLE ldiagangledef
- 225 dg /NW@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
- 315 dg /SW@ANGLE ldiagangledef
-
- [ CTR NE ldiagpsub /ldiagboxcircum cvx ] ldiagcircumdef
- SW SE NE NW SW
-} def
-
-% shape and labels of the @CurveBox symbol
-% <margin> ldiagcurvebox <shape>
-/ldiagcurvebox
-{
-
- % (Entering ldiagcurvebox) 1 ldiagdebugprint
- ldiagdecodelength /cbmgn exch def
-
- xsize 0.5 mul ysize 0.5 mul /CTR ldiagpointdef
- xsize 0.5 mul 0 /S ldiagpointdef
- xsize ysize 0.5 mul /E ldiagpointdef
- xsize 0.5 mul ysize /N ldiagpointdef
- 0 ysize 0.5 mul /W ldiagpointdef
-
- cbmgn 0.293 mul cbmgn 0.293 mul /SW ldiagpointdef
- xsize cbmgn 0.293 mul sub cbmgn 0.293 mul /SE ldiagpointdef
- xsize cbmgn 0.293 mul sub ysize cbmgn 0.293 mul sub /NE ldiagpointdef
- cbmgn 0.293 mul ysize cbmgn 0.293 mul sub /NW ldiagpointdef
-
- 0 dg /S@ANGLE ldiagangledef
- 45 dg /SE@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 135 dg /NE@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 225 dg /NW@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
- 315 dg /SW@ANGLE ldiagangledef
-
- [ xsize ysize 0.5 ldiagpmul cbmgn /ldiagcurveboxcircum cvx ] ldiagcircumdef
-
- cbmgn 0
- xsize cbmgn sub 0
- [ xsize cbmgn sub cbmgn ]
- xsize cbmgn
- xsize ysize cbmgn sub
- [ xsize cbmgn sub ysize cbmgn sub ]
- xsize cbmgn sub ysize
- cbmgn ysize
- [ cbmgn ysize cbmgn sub ]
- 0 ysize cbmgn sub
- 0 cbmgn
- [ cbmgn cbmgn ]
- cbmgn 0
-
- % (Leaving ldiagcurvebox) 0 ldiagdebugprint
-} def
-
-% shadow of the @ShadowBox symbol
-% its shape and labels are done, somewhat inaccurately, with ldiagbox
-% <shadowmargin> ldiagshadow -
-/ldiagshadow
-{
- /lfshm exch def
-
- lfshm 0 moveto
- 0 lfshm neg rlineto
- xsize 0 rlineto
- 0 ysize rlineto
- lfshm neg 0 rlineto
- xsize 0 lineto
- closepath fill
-
-} def
-
-% shape and labels of the @Square symbol
-/ldiagsquare
-{
- xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef
- CTR xsize xsize ysize ysize ldiagpmax 0.5 ldiagpmul ldiagpadd /NE ldiagpointdef
- CTR 0 0 CTR NE ldiagdistance 135 ldiagatangle ldiagpadd /NW ldiagpointdef
- CTR 0 0 CTR NE ldiagdistance 225 ldiagatangle ldiagpadd /SW ldiagpointdef
- CTR 0 0 CTR NE ldiagdistance 315 ldiagatangle ldiagpadd /SE ldiagpointdef
- SW 0.5 ldiagpmul SE 0.5 ldiagpmul ldiagpadd /S ldiagpointdef
- NW 0.5 ldiagpmul NE 0.5 ldiagpmul ldiagpadd /N ldiagpointdef
- SW 0.5 ldiagpmul NW 0.5 ldiagpmul ldiagpadd /W ldiagpointdef
- SE 0.5 ldiagpmul NE 0.5 ldiagpmul ldiagpadd /E ldiagpointdef
-
- 0 dg /S@ANGLE ldiagangledef
- 45 dg /SE@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 135 dg /NE@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 225 dg /NW@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
- 315 dg /SW@ANGLE ldiagangledef
-
- [ CTR NE ldiagpsub /ldiagboxcircum cvx ] ldiagcircumdef
- SW SE NE NW SW
-} def
-
-% shape and labels of the @Diamond symbol
-/ldiagdiamond
-{
- xsize 0 0.5 ldiagpmul /S ldiagpointdef
- 0 ysize 0.5 ldiagpmul /W ldiagpointdef
- S W ldiagpadd /CTR ldiagpointdef
- CTR W ldiagpadd /N ldiagpointdef
- CTR S ldiagpadd /E ldiagpointdef
- E N ldiagpadd 0.5 ldiagpmul /NE ldiagpointdef
- N W ldiagpadd 0.5 ldiagpmul /NW ldiagpointdef
- S W ldiagpadd 0.5 ldiagpmul /SW ldiagpointdef
- S E ldiagpadd 0.5 ldiagpmul /SE ldiagpointdef
-
- 0 dg /S@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
- S E ldiagangleto /SE@ANGLE ldiagangledef
- E N ldiagangleto /NE@ANGLE ldiagangledef
- N W ldiagangleto /NW@ANGLE ldiagangledef
- W S ldiagangleto /SW@ANGLE ldiagangledef
-
- [ xsize ysize 0.5 ldiagpmul /ldiagdiamondcircum cvx ] ldiagcircumdef
- S E N W S
-} def
-
-% shape and labels of the @Ellipse symbol
-/ldiagellipse
-{
- xsize 0 0.5 ldiagpmul /S ldiagpointdef
- 0 ysize 0.5 ldiagpmul /W ldiagpointdef
- S W ldiagpadd /CTR ldiagpointdef
- CTR W ldiagpadd /N ldiagpointdef
- CTR S ldiagpadd /E ldiagpointdef
- CTR xsize 0 0.3536 ldiagpmul ldiagpadd 0 ysize 0.3536 ldiagpmul ldiagpadd /NE ldiagpointdef
- 0 ysize 0.3536 ldiagpmul CTR xsize 0 0.3536 ldiagpmul ldiagpadd ldiagpsub /SE ldiagpointdef
- xsize 0 0.3536 ldiagpmul CTR ldiagpsub 0 ysize 0.3536 ldiagpmul ldiagpadd /NW ldiagpointdef
- 0 ysize 0.3536 ldiagpmul xsize 0 0.3536 ldiagpmul CTR ldiagpsub ldiagpsub /SW ldiagpointdef
- [ xsize ysize 0.5 ldiagpmul /ldiagellipsecircum cvx ] ldiagcircumdef
-
- 0 dg /S@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
-
- S E ldiagangleto /SE@ANGLE ldiagangledef
- E N ldiagangleto /NE@ANGLE ldiagangledef
- N W ldiagangleto /NW@ANGLE ldiagangledef
- W S ldiagangleto /SW@ANGLE ldiagangledef
-
- S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
-} def
-
-% shape and labels of the @Circle symbol
-/ldiagcircle
-{
- xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef
- CTR xsize 0 ysize 0 ldiagpmax 0.5 ldiagpmul ldiagpadd /E ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 45 ldiagatangle ldiagpadd /NE ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 90 ldiagatangle ldiagpadd /N ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 135 ldiagatangle ldiagpadd /NW ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 180 ldiagatangle ldiagpadd /W ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 225 ldiagatangle ldiagpadd /SW ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 270 ldiagatangle ldiagpadd /S ldiagpointdef
- CTR 0 0 CTR E ldiagdistance 315 ldiagatangle ldiagpadd /SE ldiagpointdef
- [ S E ldiagpsub /ldiagellipsecircum cvx ] ldiagcircumdef
-
- 0 dg /S@ANGLE ldiagangledef
- 45 dg /SE@ANGLE ldiagangledef
- 90 dg /E@ANGLE ldiagangledef
- 135 dg /NE@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 225 dg /NW@ANGLE ldiagangledef
- 270 dg /W@ANGLE ldiagangledef
- 315 dg /SW@ANGLE ldiagangledef
-
- S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
-} def
-
-% shape and labels of the @VLine and @VArrow symbols
-/ldiagvline
-{
- xmark ysize ldiagprevious /FROM ldiagpointdef
- xmark 0 ldiagprevious /TO ldiagpointdef
-} def
-
-% points of a polygon around base with given no of sides, vert init angle:
-% <sides> <angle> ldiagpolygon <point> ... <point>
-/ldiagpolygon
-{ exch round cvi exch
- xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef
- 90 sub CTR 2 copy ldiagmax 5 3 roll
- [ 4 copy pop /ldiagpolycircum cvx ] ldiagcircumdef
- exch dup 360 exch div exch
- 1 1 3 2 roll
- { 4 string cvs (P) exch ldiagconcat
- 3 copy exch pop (@ANGLE) ldiagconcat cvn exch 90 add exch ldiagangledef
- cvn 6 copy pop pop ldiagatangle 2 copy 10 2 roll
- 3 2 roll ldiagpointdef
- dup 3 1 roll add exch
- } for
- pop ldiagatangle
-} def
-
-% shape and labels of the @Isosceles triangle symbol
-/ldiagisosceles
-{
- xsize ysize 0.5 ldiagpmul /CTR ldiagpointdef
- 0 0 /SW ldiagpointdef
- xsize 0 /SE ldiagpointdef
- xsize 0.5 mul ysize /N ldiagpointdef
- xsize 0.5 mul 0 /S ldiagpointdef
- SE 0.5 ldiagpmul N 0.5 ldiagpmul ldiagpadd /NE ldiagpointdef
- SW 0.5 ldiagpmul N 0.5 ldiagpmul ldiagpadd /NW ldiagpointdef
-
- [ xsize ysize /ldiagisoscelescircum cvx ] ldiagcircumdef
-
- 0 dg /SW@ANGLE ldiagangledef
- 0 dg /SE@ANGLE ldiagangledef
- 180 dg /N@ANGLE ldiagangledef
- 0 dg /S@ANGLE ldiagangledef
- SE N ldiagangleto /NE@ANGLE ldiagangledef
- N SW ldiagangleto /NW@ANGLE ldiagangledef
-
- SW SE N SW
-} def
-
-% next array element: <array> <index> ldiaggetnext <array> <index> <any> true
-% or <array> <index> false
-/ldiaggetnext
-{ 2 copy exch length ge
- { false }
- { 2 copy get exch 1 add exch true } ifelse
-} def
-
-% check whether thing is number: <any> ldiagisnumbertype <any> <bool>
-/ldiagisnumbertype
-{ dup type dup
- /integertype eq exch /realtype eq or
-} def
-
-% check whether thing is an array: <any> ldiagisarraytype <any> <bool>
-/ldiagisarraytype { dup type /arraytype eq } def
-
-% check whether thing is an array: <any> ldiagisnametype <any> <bool>
-/ldiagisnametype { dup type /nametype eq } def
-
-% get next item: <array> <index> ldiaggetnextitem <array> <index> 0
-% or <array> <index> <array> 1
-% or <array> <index> <point> 2
-/ldiaggetnextitem
-{ ldiaggetnext
- { ldiagisarraytype
- { 1
- }
- { ldiagisnumbertype
- { 3 1 roll
- ldiaggetnext
- { ldiagisnumbertype
- { 4 3 roll exch 2
- }
- { pop 3 2 roll pop 0
- } ifelse
- }
- { 3 2 roll pop 0
- } ifelse
- }
- { pop 0
- } ifelse
- } ifelse
- }
- { 0
- } ifelse
-} def
-
-% approximate equality: num1 num2 approxeq <boolean>
-/approxeq
-{ dup 0 eq
- { pop 0 eq
- }
- { dup 3 1 roll sub exch div abs 0.001 lt
- } ifelse
-} def
-
-% set arc path: bool x1 y1 x2 y2 x0 y0 ldiagsetarc <angle> <angle> <dist>
-% the path goes from x1 y1 to x2 y2 about centre x0 y0,
-% anticlockwise if bool is true else clockwise.
-% The orientations of backwards pointing and forwards pointing
-% arrowheads are returned in the two angles, and
-% the length of the arc is returned in <dist>.
-/ldiagsetarc
-{
- % (Entering ldiagsetarc) 7 ldiagdebugprint
- 20 dict begin
- matrix currentmatrix 8 1 roll
- 2 copy translate 2 copy 8 2 roll
- 4 2 roll ldiagpsub 6 2 roll ldiagpsub
- dup /y1 exch def dup mul /y1s exch def
- dup /x1 exch def dup mul /x1s exch def
- dup /y2 exch def dup mul /y2s exch def
- dup /x2 exch def dup mul /x2s exch def
- /dist1 0 0 x1 y1 ldiagdistance def
- /dist2 0 0 x2 y2 ldiagdistance def
-
- y1s y2s approxeq
- { -1
- }
- { y1s x2s mul y2s x1s mul sub y1s y2s sub div
- } ifelse
- /da exch def
-
- x1s x2s approxeq
- { -1
- }
- { x1s y2s mul x2s y1s mul sub x1s x2s sub div
- } ifelse
- /db exch def
-
- da 0 gt db 0 gt and
- {
- % ( case 1, ellipse) 0 ldiagdebugprint
- /LMax da sqrt db sqrt ldiagmax def
- /scalex da sqrt LMax div def
- /scaley db sqrt LMax div def
- scalex scaley scale
- 0 0 LMax
- 0 0 x1 scalex mul y1 scaley mul ldiagangleto
- 0 0 x2 scalex mul y2 scaley mul ldiagangleto
- 2 copy eq { 360 add } if
- 2 copy 8 2 roll
- 5 index { arc } { arcn } ifelse
- 2 index 1 index
- { 90 sub } { 90 add } ifelse
- dup sin scaley mul exch cos scalex mul atan
- 2 index 2 index
- { 90 add } { 90 sub } ifelse
- dup sin scaley mul exch cos scalex mul atan
- 5 2 roll % res1 res2 ang1 ang2 anticlockwise
- { exch sub } { sub } ifelse
- dup 0 le { 360 add } if ldiagpi mul LMax mul 180 div
- }
- {
- dist1 dist2 approxeq
- % x1 y1 dist1 ( x1 y1, d) 3 ldiagdebugprint pop pop pop
- % x2 y2 dist2 ( x2 y2, d) 3 ldiagdebugprint pop pop pop
- {
- % ( case 2, circle) 0 ldiagdebugprint
- 0 0
- dist1
- 0 0 x1 y1 ldiagangleto
- 0 0 x2 y2 ldiagangleto
- 2 copy eq { 360 add } if
- 2 copy 8 2 roll
- 5 index { arc } { arcn } ifelse
- 2 index 1 index
- { 90 sub } { 90 add } ifelse
- 2 index 2 index
- { 90 add } { 90 sub } ifelse
- 5 2 roll % res1 res2 ang1 ang2 clockwise
- { exch sub } { sub } ifelse
- dup 0 le { 360 add } if
- ldiagpi mul dist1 mul 180 div
- }
- {
- % ( case 3, line) 0 ldiagdebugprint
- x2 y2 lineto pop
- x2 y2 x1 y1 ldiagangleto
- x1 y1 x2 y2 ldiagangleto
- x1 y1 x2 y2 ldiagdistance
- } ifelse
- } ifelse
- 4 -1 roll setmatrix
- end
- % (Leaving ldiagsetarc) 3 ldiagdebugprint
-} def
-
-% ldiagsetcurve: set up a Bezier curve from x0 y0 to x3 y3
-% and return arrowhead angles and length of curve (actually 0)
-% x0 y0 x1 y1 x2 y2 x3 y3 ldiagsetcurve <angle> <angle> <length>
-/ldiagsetcurve
-{ 8 copy curveto pop pop
- ldiagangleto
- 5 1 roll
- 4 2 roll ldiagangleto
- exch
- 0
-} def
-
-% ldiagsetpath: convert a Diag path into a PostScript path
-% [ shape ] ldiagsetpath -
-/ldiagsetpath
-{
- 10 dict begin
- 0 newpath
- /prevseen false def
- /curveseen false def
- { ldiaggetnextitem
- dup 0 eq { pop exit }
- { 1 eq
- { /curveseen true def
- /curve exch def
- curve length 0 eq { /curveseen false def } if
- }
- { /ycurr exch def
- /xcurr exch def
- prevseen
- { curveseen
- { curve length 4 eq
- { xprev yprev
- curve 0 get curve 1 get
- curve 2 get curve 3 get
- xcurr ycurr
- ldiagsetcurve pop pop pop
- }
- { xprev yprev xcurr ycurr
- curve length 1 ge { curve 0 get } { 0 } ifelse
- curve length 2 ge { curve 1 get } { 0 } ifelse
- curve length 3 ge { curve 2 get } { true } ifelse
- 7 1 roll
- ldiagsetarc pop pop pop
- } ifelse
- }
- { xcurr ycurr lineto
- } ifelse
- }
- { xcurr ycurr moveto
- } ifelse
- /xprev xcurr def
- /yprev ycurr def
- /prevseen true def
- /curveseen false def
- } ifelse
- } ifelse
- } loop pop pop
- end
-} def
-
-% ldiagpaintpath: paint a path of the given shape
-% /paint [ shape ] ldiagpaintpath -
-/ldiagpaintpath
-{
- ldiagsetpath cvx exec
-} def
-
-% stroke a path of the given shape in the given linestyle and dash length.
-% Return the origin and angle of the backward and forward arrow heads.
-% dashlength /linestyle [shape] ldiagdopath [<point> <angle>] [<point> <angle>]
-/ldiagdopath
-{
- 10 dict begin
- 0
- /prevseen false def
- /curveseen false def
- /backarrow [] def
- /fwdarrow [] def
- {
- ldiaggetnextitem
- dup 0 eq { pop exit }
- {
- 1 eq
- { /curveseen true def
- /curve exch def
- curve length 0 eq { /prevseen false def } if
- }
- { /ycurr exch def
- /xcurr exch def
- prevseen
- { newpath xprev yprev moveto
- curveseen
- { curve length 4 eq
- { xprev yprev
- curve 0 get curve 1 get
- curve 2 get curve 3 get
- xcurr ycurr ldiagsetcurve
- }
- { xprev yprev xcurr ycurr
- curve length 1 ge { curve 0 get } { 0 } ifelse
- curve length 2 ge { curve 1 get } { 0 } ifelse
- curve length 3 ge { curve 2 get } { true } ifelse
- 7 1 roll
- ldiagsetarc
- } ifelse
- }
- { xcurr ycurr lineto
- xcurr ycurr xprev yprev ldiagangleto dup 180 sub
- xprev yprev xcurr ycurr ldiagdistance
- } ifelse
- 6 index 6 index cvx exec
- [ xprev yprev 5 -1 roll ]
- backarrow length 0 eq
- { /backarrow exch def }
- { pop } ifelse
- [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def
- } if
- /xprev xcurr def
- /yprev ycurr def
- /prevseen true def
- /curveseen false def
- } ifelse
- } ifelse
- } loop
- pop pop pop pop
- backarrow length 0 eq { [ 0 0 0 ] } { backarrow } ifelse
- fwdarrow length 0 eq { [ 0 0 0 ] } { fwdarrow } ifelse
- end
-} def
-
-
-% stroke a path of the given shape in the given linestyle and dash length.
-% dashlength [ /linestyle ] [shape] ldiagdosegpath -
-/ldiagdosegpath
-{
- 12 dict begin
- 1 index /seg exch def
- 1 index length /seglength exch def
- 0 /segcount exch def
- 0
- /prevseen false def
- /curveseen false def
- /backarrow [] def
- /fwdarrow [] def
- {
- ldiaggetnextitem
- dup 0 eq { pop exit }
- {
- 1 eq
- { /curveseen true def
- /curve exch def
- curve length 0 eq { /prevseen false def } if
- }
- { /ycurr exch def
- /xcurr exch def
- prevseen
- { newpath xprev yprev moveto
- curveseen
- { curve length 4 eq
- { xprev yprev
- curve 0 get curve 1 get
- curve 2 get curve 3 get
- xcurr ycurr ldiagsetcurve
- }
- { xprev yprev xcurr ycurr
- curve length 1 ge { curve 0 get } { 0 } ifelse
- curve length 2 ge { curve 1 get } { 0 } ifelse
- curve length 3 ge { curve 2 get } { true } ifelse
- 7 1 roll
- ldiagsetarc
- } ifelse
- }
- { xcurr ycurr lineto
- xcurr ycurr xprev yprev ldiagangleto dup 180 sub
- xprev yprev xcurr ycurr ldiagdistance
- } ifelse
- 6 index seg segcount seglength mod get cvx exec
- /segcount segcount 1 add def
- [ xprev yprev 5 -1 roll ]
- backarrow length 0 eq
- { /backarrow exch def }
- { pop } ifelse
- [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def
- } if
- /xprev xcurr def
- /yprev ycurr def
- /prevseen true def
- /curveseen false def
- } ifelse
- } ifelse
- } loop
- pop pop pop pop
- end
-} def
-
-% ldiagnodebegin: start of node parameters
-% ldiagnodebegin -
-/ldiagnodebegin
-{ % (Entering ldiagnodebegin) 0 ldiagdebugprint
- ldiagmaxlabels dict begin
-} def
-
-% ldiagnodeend: end of node parameters (so do the node)
-% <outline> <dashlength> <style> <linewidth> <colour> <paint> ldiagnodeend -
-/ldiagnodeend
-{
- % (Entering ldiagnodeend) 0 ldiagdebugprint
- end % matches begin in ldiagnodebegin
- 5 index gsave ldiagpaintpath grestore % <outline> <dl> <st> <lw> <cl>
- 4 index ldiagsetpath clip newpath % <outline> <dl> <st> <lw> <cl>
- exec % <outline> <dl> <st> <lw>
- 2 mul setlinewidth % <outline> <dl> <st>
- 3 -1 roll % <dashlength> <st> <outline>
- ldiagdosegpath % -
- % (Leaving ldiagnodeend) 0 ldiagdebugprint
-} def
-
-% ldiaglinkbegin: start of link parameters
-% <direct> ldiaglinkbegin -
-/ldiaglinkbegin
-{ ldiagmaxlabels dict begin
- 1 eq /direct exch def
-} def
-
-% ldiaglinkend: end of link parameters (so do the link)
-% <outline> <dashlength> <style> <linewidth> ldiaglinkend -
-/ldiaglinkend
-{
- end % matches begin in ldiaglinkbegin
- setlinewidth
- 3 -1 roll ldiagdosegpath
-} def
-
-% ldiagdoarrow: draw an arrow head of given form
-% dashlength /lstyle /pstyle hfrac height width [ <point> <angle> ] ldiagdoarrow -
-/ldiagdoarrow
-{ matrix currentmatrix 8 1 roll
- dup 0 get 1 index 1 get translate
- 2 get rotate
- [ 2 index neg 2 index 0 0
- 3 index 3 index neg
- 1 index 10 index mul 0
- 7 index 7 index ]
- 4 1 roll pop pop pop
- dup 3 1 roll
- gsave ldiagpaintpath grestore ldiagdopath pop pop
- setmatrix
-} def
-
-% arrow head styles (unused)
-% /ldiagopen 0.0 def
-% /ldiaghalfopen 0.5 def
-% /ldiagclosed 1.0 def
-
-% stroke no arrows, forward, back, and both
-/ldiagnoarrow { pop pop pop pop pop pop pop pop } def
-/ldiagforward { 7 -1 roll ldiagdoarrow pop } def
-/ldiagback { 8 -2 roll pop ldiagdoarrow } def
-/ldiagboth { 8 -1 roll 7 copy ldiagdoarrow pop 7 -1 roll ldiagdoarrow } def
-
-% ldiagprevious: return previous point on path
-/ldiagprevious
-{ ldiagisnumbertype
- { 2 copy }
- { ldiagisarraytype
- { 2 index 2 index }
- { 0 0 }
- ifelse
- } ifelse
-} def
-
-% Tag dictionary operators
-%
-% Diag's tag dictionaries are kept on the same stack as other dictionaries,
-% since there is nowhere else to put them. However, they are managed like
-% a separate stack using the following operators:
-%
-% <tag> ldiagpushtagdict - Push a new, empty tag dictionary
-% ldiagtoptagdict dict Find the top tag dictionary
-% ldiagpoptagdict - Pop and destroy the top tag dictionary
-% ldiagpopuptagdict - Pop top tag dict and promote its entries
-% <array> ldiagpopsometagdict - Like popuptagdict but only those promote
-% those labels listed in <array>
-% ldiagdebugtagdict - Debug print of dictionary stack
-%
-% They are distinguished from other dictionaries by containing /ldiagtagdict,
-% whose value is the <tag> which is used by ldiagpopuptagdict,
-% and they are hopefully never the target of any non-tag definition because
-% they are never the top dictionary, since push places the new dict second.
-
-/ldiagpushtagdict
-{ ldiagmaxlabels dict dup
- currentdict end exch begin begin
- exch /ldiagtagdict exch put
-} def
-
-/ldiagtoptagdict
-{ /ldiagtagdict where not
- { (Diag internal error: no tag dictionary) show stop
- } if
-} def
-
-/ldiagpoptagdict
-{
- % (Entering poptagdict) 0 ldiagdebugprint
- % ldiagdebugtagdict
- mark
- { currentdict end
- dup /ldiagtagdict known
- { exit
- } if
- } loop
- pop
- counttomark
- { begin
- } repeat
- pop
- % (Leaving poptagdict) 0 ldiagdebugprint
- % ldiagdebugtagdict
-} def
-
-% promote labels from top tag dictionary to second top tag dictionary
-% each prefixed by <string>@ if <string> (value of /ldiagtagdict) is not empty
-% - ldiagpopuptagdict -
-/ldiagpopuptagdict
-{
- ldiagtagdict
- % (Entering ldiagpopuptagdict) 1 ldiagdebugprint
- % ldiagdebugtagdict
- ldiagtoptagdict ldiagpoptagdict ldiagtoptagdict exch
- { exch dup length string cvs
- 3 index exch ldiagmconcat
- cvn exch 2 index 3 1 roll put
- } forall
- pop pop
- % (Leaving ldiagpopuptagdict) 0 ldiagdebugprint
- % ldiagdebugtagdict
-} def
-
-% similar to ldiagpopuptagdict but only those inner labels that are
-% present in <array> will be promoted
-% <array> ldiagpopsometagdict -
-/ldiagpopsometagdict
-{
- ldiagtagdict
- % (Entering ldiagpopsometagdict) 1 ldiagdebugprint
- % ldiagdebugtagdict
- ldiagtoptagdict
- ldiagpoptagdict
- ldiagtoptagdict
- 4 -1 roll
- { dup 3 index exch
- get
- exch 4 index
- exch ldiagmconcat exch
- 3 copy put
- pop pop
- } forall
- pop pop pop
- % (Leaving ldiagpopuptagdict) 0 ldiagdebugprint
- % ldiagdebugtagdict
-} def
-
-% debug tag dictionary stack
-/ldiagdebugtagdict
-{ (Entering ldiagdebugtagdict) 0 ldiagdebugprint
- 30 array dictstack
- { dup /ldiagtagdict known
- { dup /ldiagtagdict get 0 ldiagdebugprint
- { pop 100 string cvs ( ) exch ldiagconcat
- dup 0 ldiagdebugprint
- pop
- }
- forall
- }
- { pop (other) 0 ldiagdebugprint
- } ifelse
- } forall
- (Leaving ldiagdebugtagdict) 0 ldiagdebugprint
-} def
-
-% label a point in top tag dictionary: <point> /name ldiagpointdef -
-/ldiagpointdef
-{
- % (Entering ldiagpointdef) 3 ldiagdebugprint
- [ 4 2 roll transform /itransform cvx ] cvx
- ldiagtoptagdict 3 1 roll put
- % (Leaving ldiagpointdef) 0 ldiagdebugprint
-} def
-
-% label an angle in top tag dictionary: <angle> /name ldiagangledef -
-/ldiagangledef
-{
- % (Entering ldiagangledef) 2 ldiagdebugprint
- exch ldiagfixangle ldiagtoptagdict 3 1 roll put
- % (Leaving ldiagangledef) 0 ldiagdebugprint
-} def
-
-% add CIRCUM operator with this body: <array> ldiagcircumdef -
-/ldiagcircumdef
-{ % (Entering ldiagcircumdef) 1 ldiagdebugprint
- /CIRCUM exch cvx
- ldiagtoptagdict 3 1 roll put
- % currentdict end
- % 3 1 roll
- % def
- % begin
- % (Leaving ldiagcircumdef) 0 ldiagdebugprint
-} def
-
-% show points (except CIRCUM and ANGLE): - ldiagshowpoints -
-/ldiagshowpoints
-{
- % (Entering ldiagshowpoints) 0 ldiagdebugprint
- ldiagtoptagdict
- { 1 index 100 string cvs
- (ldiagdebugpos) search
- { pop pop pop pop pop }
- {
- (CIRCUM) search % if CIRCUM in key
- { pop pop pop pop pop }
- {
- (ANGLE) search % if ANGLE in key
- {
- pop pop pop pop pop
- }
- {
- (ldiagtagdict) search
- {
- pop pop pop pop pop
- }
- {
- pop cvx exec
- newpath 2.0 pt 0 360 arc 0 setgray fill pop
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } forall
- % (Leaving ldiagshowpoints) 0 ldiagdebugprint
-} def
-
-
-/ldiagshowtags
-{
- % (Entering ldiagshowtags) 0 ldiagdebugprint
- ldiagtoptagdict
- { 1 index 100 string cvs
- % dup 0 ldiagdebugprint
- (ldiagdebugpos) search
- { pop pop pop pop pop }
- {
- (CIRCUM) search % if CIRCUM in key
- { pop pop pop pop pop }
- {
- (ANGLE) search % if ANGLE in key
- {
- pop pop pop pop pop
- }
- {
- (ldiagtagdict) search
- {
- pop pop pop pop pop
- }
- {
- pop cvx exec 2 copy
- gsave
- newpath 2.0 pt 0 360 arc 0 setgray fill
- /Times-Roman findfont 8 pt scalefont setfont
- translate 40 rotate 0.2 cm 0.1 cm moveto 100 string cvs show
- grestore
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } forall
- % (Leaving ldiagshowtags) 0 ldiagdebugprint
-} def
-
-
-% show angles: - ldiagshowangles -
-/ldiagshowangles
-{
- % (Entering ldiagshowangles) 0 ldiagdebugprint
- ldiagtoptagdict
- { 1 index 100 string cvs
- % dup 0 ldiagdebugprint
- (ldiagdebugpos) search
- { pop pop pop pop pop }
- {
- (ldiagtagdict) search
- {
- pop pop pop pop pop
- }
- {
- (CIRCUM) search % if CIRCUM in key
- { pop pop pop pop pop }
- {
- (@ANGLE) search % if ANGLE in key, draw the angle at the point
- {
- % (showing ANGLE) 5 ldiagdebugprint
- gsave exch pop exch pop cvx
- % (about to execute) 1 ldiagdebugprint
- exec translate rotate 0.8 0.8 scale pop
- newpath 0 0 2.0 pt 0 360 arc 0 setgray fill
- newpath 4 pt 0 moveto 9 pt 0 lineto
- 9 pt 1.5 pt lineto 11 pt 0 lineto 9 pt -1.5 pt lineto
- 9 pt 0 lineto [] 0 setdash 4 pt setlinewidth 0 setlinejoin
- stroke grestore
- % (finished ANGLE) 5 ldiagdebugprint
- }
- {
- % else must be a point, we aren't showing those
- pop pop pop
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } forall
- % (Leaving ldiagshowangles) 0 ldiagdebugprint
-} def
-
-% fix an angle to 0 <= res < 360: <angle> ldiagfixangle <angle>
-/ldiagfixangle
-{
- % (Entering ldiagfixangle) 1 ldiagdebugprint
- { dup 0 ge { exit } if
- 360 add
- } loop
- { dup 360 lt { exit } if
- 360 sub
- } loop
- % (Leaving ldiagfixangle) 1 ldiagdebugprint
-} def
-
-% find point on circumference of box: alpha a b ldiagboxcircum x y
-/ldiagboxcircum
-{
- % (Entering ldiagboxcircum) 3 ldiagdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- ldiagfixangle /alpha exch def
- 0 0 a b ldiagangleto /theta exch def
-
- % if alpha <= theta, return (a, a*tan(alpha))
- alpha theta le
- { a a alpha sin mul alpha cos div }
- {
- % else if alpha <= 180 - theta, return (b*cot(alpha), b)
- alpha 180 theta sub le
- { b alpha cos mul alpha sin div b }
- {
- % else if alpha <= 180 + theta, return (-a, -a*tan(alpha))
- alpha 180 theta add le
- { a neg a neg alpha sin mul alpha cos div }
- {
- % else if alpha <= 360 - theta, return (-b*cot(alpha), -b)
- alpha 360 theta sub le
- { b neg alpha cos mul alpha sin div b neg }
- {
- % else 360 - theta <= alpha, return (a, a*tan(alpha))
- a a alpha sin mul alpha cos div
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving ldiagboxcircum) 2 ldiagdebugprint
-} def
-
-% find quadratic roots (assume a != 0): a b c ldiagqroots x1 x2 2
-% or x2 1
-% or 0
-/ldiagqroots
-{
- 4 dict begin
- /c exch def
- /b exch def
- /a exch def
- /disc b b mul 4 a c mul mul sub def
- disc 0 lt
- { 0
- }
- { disc 0 eq
- { b neg 2 a mul div
- 1
- }
- { b neg disc sqrt add 2 a mul div
- b neg disc sqrt sub 2 a mul div
- 2
- }
- ifelse
- }
- ifelse
- end
-} def
-
-% work our which quadrant: <angle> ldiagquadrant <0-3>
-/ldiagquadrant
-{ dup 90 lt
- { pop 0
- }
- { dup 180 lt
- { pop 1
- }
- { 270 lt
- { 2
- }
- { 3
- } ifelse
- } ifelse
- } ifelse
-} def
-
-% find curvebox circum, assuming upper right quadrant: alpha a b xmk ldiagcb x y
-/ldiagcb
-{
- 6 dict begin
- /xmk exch def
- /b exch def
- /a exch def
- /alpha exch def
- /theta1 0 0 a b xmk sub ldiagangleto def
- /theta2 0 0 a xmk sub b ldiagangleto def
- alpha theta1 le
- { % if alpha <= theta1, return (a, a*tan(alpha))
- a a alpha sin mul alpha cos div
- }
- { alpha theta2 ge
- { % else if alpha > theta2, return (b*cot(alpha), b)
- b alpha cos mul alpha sin div b
- }
- {
- % else, return the intersection of line and circle
- a xmk sub b xmk sub xmk 0 0 alpha ldiagcircleintersect
- dup 0 eq
- { % should never happen, just return any reasonable point
- pop
- a b 0.5 ldiagpmul
- }
- { 1 eq
- { % should never happen, just return the point on top of stack
- }
- { % the usual case, two points on stack, return the larger
- ldiagpmax
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- end
-} def
-
-% find point on circumference of curvebox: alpha a b xmk ldiagcurveboxcircum x y
-/ldiagcurveboxcircum
-{
- % (Entering ldiagcurveboxcircum) 4 ldiagdebugprint
- 5 dict begin
- /xmk exch def
- /b exch def
- /a exch def
- ldiagfixangle /alpha exch def
-
- % work out which quadrant we are in, and reflect accordingly
- /quad alpha ldiagquadrant def
- quad 0 eq
- { alpha a b xmk ldiagcb
- }
- { quad 1 eq
- { 180 alpha sub a b xmk ldiagcb exch neg exch
- }
- { quad 2 eq
- { alpha 180 sub a b xmk ldiagcb neg exch neg exch
- }
- { 360 alpha sub a b xmk ldiagcb neg
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving ldiagcurveboxcircum) 2 ldiagdebugprint
-} def
-
-% find point on circumference of diamond: alpha a b ldiagdiamondcircum x y
-/ldiagdiamondcircum
-{
- % (Entering ldiagdiamondcircum) 3 ldiagdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- ldiagfixangle /alpha exch def
- b alpha cos abs mul a alpha sin abs mul add /denom exch def
- a b mul alpha cos mul denom div
- a b mul alpha sin mul denom div
- end
- % (Leaving ldiagdiamondcircum) 2 ldiagdebugprint
-} def
-
-% find point on circumference of ellipse: alpha a b ldiagellipsecircum x y
-/ldiagellipsecircum
-{
- % (Entering ldiagellipsecircum) 3 ldiagdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- ldiagfixangle /alpha exch def
- b alpha cos mul dup mul a alpha sin mul dup mul add sqrt /denom exch def
- a b mul alpha cos mul denom div
- a b mul alpha sin mul denom div
- end
- % (Leaving ldiagellipsecircum) 2 ldiagdebugprint
-} def
-
-% find point on circumference of isosceles: alpha a b ldiagisoscelescircum x y
-/ldiagisoscelescircum
-{
- % (Entering ldiagisoscelescircum) 3 ldiagdebugprint
- 7 dict begin
- /b exch def
- /a exch def
- /alpha exch ldiagfixangle def
- /theta1 90 def
- /theta2 a b 0.5 ldiagpmul 0 0 ldiagangleto def
- /theta3 a b 0.5 ldiagpmul a 0 ldiagangleto def
- alpha theta1 ge alpha theta2 le and
- { 0 0 a 2 div b
- }
- { alpha theta2 ge alpha theta3 le and
- { 0 0 a 0
- }
- { a 0 a 2 div b
- } ifelse
- } ifelse
- a 2 div b 2 div 2 copy 1 ft alpha ldiagatangle ldiaglineintersect
- a 2 div b 2 div 4 2 roll ldiagpsub
- end
- % (Leaving ldiagisoscelescircum) 2 ldiagdebugprint
-} def
-
-% find point of intersection of two lines each defined by two points
-% x1 y1 x2 y2 x3 y3 x4 y4 ldiaglineintersect x y
-/ldiaglineintersect
-{
- % (Entering ldiaglineintersect) 8 ldiagdebugprint
- 13 dict begin
- /y4 exch def
- /x4 exch def
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- x2 x1 sub /x21 exch def
- x4 x3 sub /x43 exch def
- y2 y1 sub /y21 exch def
- y4 y3 sub /y43 exch def
- y21 x43 mul y43 x21 mul sub /det exch def
-
- % calculate x
- y21 x43 mul x1 mul
- y43 x21 mul x3 mul sub
- y3 y1 sub x21 mul x43 mul add
- det div
-
- % calculate y
- x21 y43 mul y1 mul
- x43 y21 mul y3 mul sub
- x3 x1 sub y21 mul y43 mul add
- det neg div
-
- end
- % (Leaving ldiaglineintersect) 2 ldiagdebugprint
-} def
-
-% find point on circumference of polygon
-% alpha radius num theta ldiagpolycircum x y
-/ldiagpolycircum
-{
- % (Entering ldiagpolycircum) 4 ldiagdebugprint
- 13 dict begin
- /theta exch def
- /num exch def
- /radius exch def
- /alpha exch def
-
- % calculate delta, the angle from theta to alpha
- alpha theta sub ldiagfixangle
-
- % calculate the angle which is the multiple of 360/num closest to delta
- 360 num div div truncate 360 num div mul theta add /anglea exch def
-
- % calculate the next multiple of 360/num after anglea
- anglea 360 num div add /angleb exch def
-
- % intersect the line through these two points with the alpha line
- anglea cos anglea sin angleb cos angleb sin
- 0 0 alpha cos 2 mul alpha sin 2 mul
- ldiaglineintersect radius ldiagpmul
-
- end
- % (Leaving ldiagpolycircum) 2 ldiagdebugprint
-} def
-
-% find point of intersection of a line and a circle
-% x0 y0 r x1 y1 theta ldiagcircleintersect xa ya xb yb 2
-% or xb yb 1
-% or 0
-/ldiagcircleintersect
-{
- % (Entering ldiagcircleintersect) 6 ldiagdebugprint
- 15 dict begin
- /theta exch def
- /y1 exch def
- /x1 exch def
- /r exch def
- /y0 exch def
- /x0 exch def
-
- % if sin(theta) = 0 then line is horizontal and y must be y1
- theta sin abs 0.00001 lt
- {
- /a 1 def
- /b -2 x0 mul def
- /c x0 dup mul y1 y0 sub dup mul add r dup mul sub def
- a b c ldiagqroots dup
- 0 eq
- { pop
- 0
- }
- { 1 eq
- { y1 1
- }
- { y1 exch y1 2
- } ifelse
- } ifelse
- }
- {
- /ct theta cos theta sin div def
- /a ct ct mul 1 add def
- /b ct x1 x0 sub mul y1 add y0 sub 2 mul def
- /c x1 x0 sub dup mul y1 y0 sub dup mul add r dup mul sub def
- a b c ldiagqroots dup
- 0 eq
- { pop
- 0
- }
- { 1 eq
- { y1 add /yb exch def
- yb y1 sub ct mul x1 add /xb exch def
- xb yb 1
- }
- { y1 add /ya exch def
- ya y1 sub ct mul x1 add /xa exch def
- y1 add /yb exch def
- yb y1 sub ct mul x1 add /xb exch def
- xa ya xb yb 2
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving ldiagcircleintersect) 1 ldiagdebugprint
-} def
-
-% find line which is the perpendicular bisector of two points, defined
-% by two points
-% x1 y1 x2 y2 ldiaglinebetween x3 y3 x4 y4
-/ldiaglinebetween
-{ % (Entering ldiaglinebetween) 4 ldiagdebugprint
- /y2 exch def /x2 exch def
- /y1 exch def /x1 exch def
-
- % let x3, y3 be the point halfway between the two points
- x1 y1 x2 y2 ldiagpadd 0.5 ldiagpmul
- /y3 exch def /x3 exch def
-
- % find a point perpendicular to x3, y3
- x3 y3 50 x1 y1 x2 y2 ldiagangleto 90 dg add ldiagatangle
-
- % plus x3 y3 gives the two points
- x3 y3
-
- % (Leaving ldiaglinebetween) 4 ldiagdebugprint
-} def
-
-% find <proc>@<string>: <proc> <string> ldiagfindlabel <any> true
-% <proc> <string> false
-/ldiagfindlabel
-{
- % (Entering ldiagfindlabel) 2 ldiagdebugprint
- exch dup length 1 ne
- { exch false
- % (Leaving ldiagfindabel (length not 1)) 3 ldiagdebugprint
- }
- { dup 0 get type /nametype ne
- { exch false
- % (Leaving ldiagfindabel (not a name)) 3 ldiagdebugprint
- }
- { dup 0 get dup length string cvs (@) ldiagconcat
- 2 index ldiagconcat dup where
- { exch get exch pop exch pop cvx exec true
- % (Leaving ldiagfindlabel with success) 100 ldiagdebugprint
- }
- {
- pop exch false
- % (Leaving ldiagfindabel (concat not sensible)) 3 ldiagdebugprint
- } ifelse
- } ifelse
- } ifelse
-} bind def
-
-% execute <proc>@<string> or else default: <proc> <string> ldiagdolabel <various>
-/ldiagdolabel
-{
- % (Entering ldiagdolabel) 2 ldiagdebugprint
- ldiagfindlabel not
- {
- dup (CIRCUM) eq
- { pop pop pop 0 0
- }
- {
- dup (ANGLE) eq
- { pop pop 0
- }
- { pop cvx exec
- } ifelse
- } ifelse
- } if
- % (Leaving ldiagdolabel) 2 ldiagdebugprint
-} bind def
-
-% execute a proc depending on whether number is negative, zero, or positive
-% procneg proczero procpos number ldiagsigncase <anything>
-/ldiagsigncase
-{
- % (Entering ldiagsigncase) 4 ldiagdebugprint
- dup 0 lt
- { pop pop pop exec
- }
- { 0 gt
- { exch pop exch pop exec
- }
- { pop exch pop exec
- } ifelse
- } ifelse
- % (Leaving ldiagsigncase) 0 ldiagdebugprint
-} bind def
-
-% execute proci if angle is in ith quadrant
-% proc45 proc270 proc180 proc90 proc0 proc315 proc225 proc135 angle ldiagquadcase <anything>
-/ldiagquadcase
-{
- % (Entering ldiagquadcase) 9 ldiagdebugprint
- round ldiagfixangle cvi dup 90 mod 0 eq
- { 90 idiv 4 add } { 90 idiv } ifelse
- 8 exch roll pop pop pop pop pop pop pop exec
- % (Leaving ldiagquadcase) 0 ldiagdebugprint
-} bind def
-
-% decode Lout length into PostScript length
-% <string> ldiagdecodelength <number>
-/ldiagdecodelength
-{
- % (Entering ldiagdecodelength) 1 ldiagdebugprint
- (f) search
- { exch pop exch pop cvr ft
- }
- { (c) search
- { exch pop exch pop cvr cm
- }
- { (p) search
- { exch pop exch pop cvr pt
- }
- { (m) search
- { exch pop exch pop cvr em
- }
- { (s) search
- { exch pop exch pop cvr sp
- }
- { (v) search
- { exch pop exch pop cvr vs
- }
- { (i) search
- { exch pop exch pop cvr in
- }
- { pop 0
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- % (Leaving ldiagdecodelength) 1 ldiagdebugprint
-} def
-
-% implement aabout function
-% logical form: <circum> <extra> <centre> aabout <point>
-% actual form: { <labelorpoint> } cvlit <length> [ <point> ] cvx aabout <point>
-/ldiagaabout
-{
- /centre exch def
- /extra exch def
- /circum exch def
-
- /ZXCTR [ centre ] cvx def
- /ZFCTR [ circum (CTR) ldiagdolabel ] cvx def
- /ZAREF ZFCTR ZXCTR ldiagangleto def
- /ZAMIN 0 dg def
- /ZPMIN [ circum (CTR) ldiagdolabel ZAREF ZAMIN sub
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMIN sub ldiagatangle
- ldiagpadd ] cvx def
-
- /ZAMAX 90 dg def
- /ZPMAX [ circum (CTR) ldiagdolabel ZAREF ZAMAX sub
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMAX sub ldiagatangle
- ldiagpadd ] cvx def
-
- 1 1 20
- { /xval exch def
- /ZAMID ZAMIN ZAMAX add 0.5 mul def
- /ZPMID [ circum (CTR) ldiagdolabel ZAREF ZAMID sub
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMID sub ldiagatangle
- ldiagpadd ] cvx def
- ZPMID ZXCTR ldiagdistance ZFCTR ZXCTR ldiagdistance gt
- {
- /ZAMAX [ ZAMID ] cvx def
- /ZPMAX [ ZPMID ] cvx def
- }
- {
- /ZAMIN [ ZAMID ] cvx def
- /ZPMIN [ ZPMID ] cvx def
- } ifelse
- } for
- ZPMID
-} def
-
-% implement cabout function
-% logical form: <circum> <extra> <centre> cabout <point>
-% actual form: { <labelorpoint> } cvlit <length> [ <point> ] cvx cabout <point>
-/ldiagcabout
-{
- /centre exch def
- /extra exch def
- /circum exch def
-
- /ZXCTR [ centre ] cvx def
- /ZFCTR [ circum (CTR) ldiagdolabel ] cvx def
- /ZAREF ZFCTR ZXCTR ldiagangleto def
- /ZAMIN 0 dg def
- /ZPMIN [ circum (CTR) ldiagdolabel ZAREF ZAMIN add
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMIN add ldiagatangle
- ldiagpadd ] cvx def
-
- /ZAMAX 90 dg def
- /ZPMAX [ circum (CTR) ldiagdolabel ZAREF ZAMAX add
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMAX add ldiagatangle
- ldiagpadd ] cvx def
-
- 1 1 20
- { /xval exch def
- /ZAMID ZAMIN ZAMAX add 0.5 mul def
- /ZPMID [ circum (CTR) ldiagdolabel ZAREF ZAMID add
- circum (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 extra ZAREF ZAMID add ldiagatangle
- ldiagpadd ] cvx def
- ZPMID ZXCTR ldiagdistance ZFCTR ZXCTR ldiagdistance gt
- {
- /ZAMAX [ ZAMID ] cvx def
- /ZPMAX [ ZPMID ] cvx def
- }
- {
- /ZAMIN [ ZAMID ] cvx def
- /ZPMIN [ ZPMID ] cvx def
- } ifelse
- } for
- ZPMID
-} def
-
-% fromarrowlength toarrowlength { from } { to } xindent zindent ldiaglinepath -
-/ldiaglinepath
-{
- % (entering ldiaglinepath) 0 ldiagdebugprint
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel ldiagangleto
- /FROM@ANGLE ldiagangledef
- from (CTR) ldiagdolabel FROM@ANGLE from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FROM@ANGLE ldiagatangle ldiagpadd
- /FROM ldiagpointdef
-
- FROM@ANGLE /TO@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TO@ANGLE 180 dg sub to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TO@ANGLE 180 dg sub ldiagatangle ldiagpadd /TO ldiagpointdef
-
- FROM 0.5 ldiagpmul TO 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- FROM@ANGLE /LMID@ANGLE ldiagangledef
-
- /XINDENT xindent FROM LMID ldiagdistance ldiagmin def
- FROM 0 0 XINDENT FROM@ANGLE ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
-
- /ZINDENT zindent TO LMID ldiagdistance ldiagmin def
- 0 0 ZINDENT FROM@ANGLE ldiagatangle TO ldiagpsub /LTO ldiagpointdef
- FROM@ANGLE /LTO@ANGLE ldiagangledef
-
- direct { FROM TO } { FROM LFROM LMID LTO TO } ifelse
-
- % (leaving ldiaglinepath) 0 ldiagdebugprint
-} def
-
-% fromarrowlength toarrowlength { from } { to } xindent zindent pathgap ldiagdoublelinepath -
-/ldiagdoublelinepath
-{
- % (entering ldiagdoublelinepath) 0 ldiagdebugprint
- /pathgap exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel ldiagangleto
- /FROM@ANGLE ldiagangledef
- from (CTR) ldiagdolabel FROM@ANGLE from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FROM@ANGLE ldiagatangle ldiagpadd
- /FROM ldiagpointdef
-
- FROM@ANGLE /TO@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TO@ANGLE 180 dg sub to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TO@ANGLE 180 dg sub ldiagatangle ldiagpadd /TO ldiagpointdef
-
- FROM 0.5 ldiagpmul TO 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- FROM@ANGLE /LMID@ANGLE ldiagangledef
-
- /XINDENT xindent FROM LMID ldiagdistance ldiagmin def
- FROM 0 0 XINDENT FROM@ANGLE ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
-
- /ZINDENT zindent TO LMID ldiagdistance ldiagmin def
- 0 0 ZINDENT FROM@ANGLE ldiagatangle TO ldiagpsub /LTO ldiagpointdef
- FROM@ANGLE /LTO@ANGLE ldiagangledef
-
- direct {
- FROM pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- TO pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- []
- FROM pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- TO pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- }
- {
- FROM pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- LFROM pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- LMID pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- LTO pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- TO pathgap 2 div FROM@ANGLE 90 dg sub ldiagatangle
- []
- FROM pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- LFROM pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- LMID pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- LTO pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- TO pathgap 2 div FROM@ANGLE 90 dg add ldiagatangle
- } ifelse
-
- % (leaving ldiagdoublelinepath) 0 ldiagdebugprint
-} def
-
-% fromarrowlen toarrowlen { from } { to } xindent zindent bias ldiagacurvepath -
-/ldiagacurvepath
-{
- % (entering ldiagacurvepath) 0 ldiagdebugprint
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- %/B1 bias 0.02 ft ldiagmax def
- %/B2 from (CTR) ldiagdolabel to (CTR) ldiagdolabel ldiagdistance 0.5 mul def
- %/BIAS B1 B2 ldiagmin def
- /BIAS bias 0.02 ft ldiagmax def
- /XMID [ from (CTR) ldiagdolabel 0.5 ldiagpmul
- to (CTR) ldiagdolabel 0.5 ldiagpmul ldiagpadd ] cvx def
- /XTOP [ XMID 0 0 BIAS from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto 90 dg sub ldiagatangle ldiagpadd ] cvx def
- /CTR [ from (CTR) ldiagdolabel XTOP ldiaglinebetween
- to (CTR) ldiagdolabel XTOP ldiaglinebetween
- ldiaglineintersect ] cvx def
-
- from fromarrowlength [ CTR ] cvx ldiagaabout /FROM ldiagpointdef
- from (CTR) ldiagdolabel FROM ldiagdistance 0 gt
- { from (CTR) ldiagdolabel FROM ldiagangleto
- }
- { CTR FROM ldiagangleto 90 dg add
- } ifelse /FROM@ANGLE ldiagangledef
-
- to toarrowlength [ CTR ] cvx ldiagcabout /TO ldiagpointdef
- TO to (CTR) ldiagdolabel ldiagdistance 0 gt
- { TO to (CTR) ldiagdolabel ldiagangleto
- }
- { CTR TO ldiagangleto 90 dg add
- } ifelse /TO@ANGLE ldiagangledef
-
- /RADIUS CTR FROM ldiagdistance def
- CTR 0 0 RADIUS CTR FROM ldiagangleto 360 dg CTR TO ldiagangleto
- add CTR FROM ldiagangleto sub cvi 360 mod 0.5 mul add
- ldiagatangle ldiagpadd /LMID ldiagpointdef
- CTR LMID ldiagangleto 90 dg add /LMID@ANGLE ldiagangledef
-
- /XINDENT xindent FROM LMID ldiagdistance ldiagmin def
- CTR 0 0 RADIUS CTR FROM 0 0 XINDENT FROM@ANGLE ldiagatangle
- ldiagpadd ldiagangleto ldiagatangle ldiagpadd /LFROM ldiagpointdef
- CTR LFROM ldiagangleto 90 dg add /LFROM@ANGLE ldiagangledef
-
- /ZINDENT zindent TO LMID ldiagdistance ldiagmin def
- CTR 0 0 RADIUS CTR TO 0 0 ZINDENT TO@ANGLE 180 dg add
- ldiagatangle ldiagpadd ldiagangleto ldiagatangle ldiagpadd /LTO ldiagpointdef
- CTR LTO ldiagangleto 90 dg add /LTO@ANGLE ldiagangledef
-
- direct
- { FROM [CTR] TO }
- { FROM [CTR] LFROM [CTR] LMID [CTR] LTO [CTR] TO }
- ifelse
-
- % (leaving ldiagacurvepath) 0 ldiagdebugprint
-} def
-
-% fromarrowlen toarrowlen { from } { to } xindent zindent bias ldiagccurvepath -
-/ldiagccurvepath
-{
- % (entering ldiagccurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- %/B1 bias 0.02 ft ldiagmax def
- %/B2 from (CTR) ldiagdolabel to (CTR) ldiagdolabel ldiagdistance 0.5 mul def
- %/BIAS B1 B2 ldiagmin def
- /BIAS bias 0.02 ft ldiagmax def
- /XMID [ from (CTR) ldiagdolabel 0.5 ldiagpmul
- to (CTR) ldiagdolabel 0.5 ldiagpmul ldiagpadd ] cvx def
- /XTOP [ XMID 0 0 BIAS from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto 90 dg add ldiagatangle ldiagpadd ] cvx def
- /CTR [ from (CTR) ldiagdolabel XTOP ldiaglinebetween
- to (CTR) ldiagdolabel XTOP ldiaglinebetween ldiaglineintersect ] cvx def
-
- from fromarrowlength [ CTR ] cvx ldiagcabout /FROM ldiagpointdef
- from (CTR) ldiagdolabel FROM ldiagdistance 0 gt
- { from (CTR) ldiagdolabel FROM ldiagangleto }
- { CTR FROM ldiagangleto 90 dg sub }
- ifelse /FROM@ANGLE ldiagangledef
-
- to toarrowlength [ CTR ] cvx ldiagaabout /TO ldiagpointdef
- TO to (CTR) ldiagdolabel ldiagdistance 0 gt
- { TO to (CTR) ldiagdolabel ldiagangleto }
- { CTR TO ldiagangleto 90 dg sub }
- ifelse /TO@ANGLE ldiagangledef
-
- /RADIUS [ CTR FROM ldiagdistance ] cvx def
- CTR 0 0 RADIUS CTR TO ldiagangleto 360 dg CTR FROM ldiagangleto add
- CTR TO ldiagangleto sub cvi 360 cvi mod 2 div add ldiagatangle
- ldiagpadd /LMID ldiagpointdef
- CTR LMID ldiagangleto 90 dg sub /LMID@ANGLE ldiagangledef
-
- /XINDENT [ xindent FROM LMID ldiagdistance ldiagmin ] cvx def
- CTR 0 0 RADIUS CTR FROM 0 0 XINDENT FROM@ANGLE ldiagatangle ldiagpadd
- ldiagangleto ldiagatangle ldiagpadd /LFROM ldiagpointdef
- CTR LFROM ldiagangleto 90 dg sub /LFROM@ANGLE ldiagangledef
-
- /ZINDENT [ zindent TO LMID ldiagdistance ldiagmin ] cvx def
- CTR 0 0 RADIUS CTR TO 0 0 ZINDENT TO@ANGLE 180 dg add ldiagatangle
- ldiagpadd ldiagangleto ldiagatangle ldiagpadd /LTO ldiagpointdef
- CTR LTO ldiagangleto 90 dg sub /LTO@ANGLE ldiagangledef
-
- direct
- { FROM [CTR clockwise] TO }
- { FROM [CTR clockwise] LFROM [CTR clockwise]
- LMID [CTR clockwise] LTO [CTR clockwise] TO }
- ifelse
- % (leaving ldiagccurvepath) 0 ldiagdebugprint
-} def
-
-
-% farr tarr { from } { to } xindent zindent [frompt] [topt] ldiagbezierpath -
-/ldiagbezierpath
-{
- % (entering ldiagbezierpath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- cvx /topt exch def
- cvx /frompt exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel frompt ldiagangleto /FROM@ANGLE ldiagangledef
- from (CTR) ldiagdolabel FROM@ANGLE from (CIRCUM) ldiagdolabel
- ldiagpadd 0 0 fromarrowlength FROM@ANGLE ldiagatangle ldiagpadd
- /FROM ldiagpointdef
-
- topt to (CTR) ldiagdolabel ldiagangleto /TO@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TO@ANGLE 180 dg add to (CIRCUM) ldiagdolabel
- ldiagpadd 0 0 toarrowlength TO@ANGLE 180 dg add ldiagatangle ldiagpadd
- /TO ldiagpointdef
-
- FROM 0 0 xindent FROM@ANGLE ldiagatangle ldiagpadd
- /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
-
- TO 0 0 zindent TO@ANGLE 180 dg add ldiagatangle ldiagpadd
- /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
-
- FROM TO ldiagpadd frompt ldiagpadd topt ldiagpadd 0.25 ldiagpmul
- /LMID ldiagpointdef
-
- FROM [frompt topt] TO
-
- % (leaving ldiagbezierpath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-
-% farr tarr { from } { to } xindent zindent ldiagvhlinepath -
-/ldiagvhlinepath
-{
- % (entering ldiagvhlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /CTR [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel exch pop ] cvx def
- /FANG [ from (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
- /TANG [ to (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
-
- from (CTR) ldiagdolabel FANG from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FANG ldiagatangle ldiagpadd /FROM ldiagpointdef
- FANG /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel TANG to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TANG ldiagatangle ldiagpadd /TO ldiagpointdef
- TANG 180 dg add /TO@ANGLE ldiagangledef
-
- /FDIST [ FROM CTR ldiagdistance ] cvx def
- /TDIST [ TO CTR ldiagdistance ] cvx def
- /XINDENT [ xindent FDIST ldiagmin ] cvx def
- /ZINDENT [ zindent TDIST ldiagmin ] cvx def
- FROM 0 0 XINDENT FANG ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TANG ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
-
- CTR /LMID ldiagpointdef
- 0 0 1 ft FANG 180 dg add ldiagatangle
- 0 0 1 ft TANG 180 dg add ldiagatangle
- ldiagangleto /LMID@ANGLE ldiagangledef
-
- FROM LFROM LMID LTO TO
-
- % (leaving ldiagvhlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent radius ldiagvhcurvepath -
-/ldiagvhcurvepath
-{
- % (entering ldiagvhcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /CTR [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel exch pop ] cvx def
- /FANG [ from (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
- /TANG [ to (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
-
- from (CTR) ldiagdolabel FANG from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FANG ldiagatangle ldiagpadd /FROM ldiagpointdef
- FANG /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel TANG to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TANG ldiagatangle ldiagpadd /TO ldiagpointdef
- TANG 180 dg add /TO@ANGLE ldiagangledef
-
- /FDIST [ FROM CTR ldiagdistance ] cvx def
- /TDIST [ TO CTR ldiagdistance ] cvx def
- /RADIUS [ radius FDIST TDIST ldiagmin ldiagmin ] cvx def
- /XINDENT [ xindent FDIST RADIUS sub ldiagmin ] cvx def
- /ZINDENT [ zindent TDIST RADIUS sub ldiagmin ] cvx def
-
- FROM 0 0 XINDENT FANG ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TANG ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
-
- /FCTR [ CTR 0 0 RADIUS FROM@ANGLE 180 dg add ldiagatangle ldiagpadd ] cvx def
- /TCTR [ CTR 0 0 RADIUS TO@ANGLE ldiagatangle ldiagpadd ] cvx def
- /XCTR [ CTR 0 0 RADIUS FROM@ANGLE 180 dg add ldiagatangle ldiagpadd
- 0 0 RADIUS TO@ANGLE ldiagatangle ldiagpadd ] cvx def
- XCTR 0 0 RADIUS XCTR CTR ldiagangleto ldiagatangle ldiagpadd
- /LMID ldiagpointdef
- FCTR TCTR ldiagangleto /LMID@ANGLE ldiagangledef
-
- FROM LFROM FCTR
- {[XCTR clockwise]} {} {} {} {} {[XCTR]} {[XCTR clockwise]} {[XCTR]}
- FCTR TCTR ldiagangleto ldiagquadcase
- TCTR LTO TO
-
- % (leaving ldiagvhcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent ldiaghvlinepath -
-/ldiaghvlinepath
-{
- % (entering ldiaghvlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /CTR [ to (CTR) ldiagdolabel pop from (CTR) ldiagdolabel exch pop ] cvx def
- /FANG [ from (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
- /TANG [ to (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
-
- from (CTR) ldiagdolabel FANG from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FANG ldiagatangle ldiagpadd /FROM ldiagpointdef
- FANG /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel TANG to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TANG ldiagatangle ldiagpadd /TO ldiagpointdef
- TANG 180 dg add /TO@ANGLE ldiagangledef
-
- /FDIST [ FROM CTR ldiagdistance ] cvx def
- /TDIST [ TO CTR ldiagdistance ] cvx def
- /XINDENT [ xindent FDIST ldiagmin ] cvx def
- /ZINDENT [ zindent TDIST ldiagmin ] cvx def
-
- FROM 0 0 XINDENT FANG ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TANG ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
-
- CTR /LMID ldiagpointdef
- 0 0 1 ft FANG 180 dg add ldiagatangle
- 0 0 1 ft TANG 180 dg add ldiagatangle ldiagangleto
- /LMID@ANGLE ldiagangledef
-
- FROM LFROM LMID LTO TO
-
- % (leaving ldiaghvlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent radius ldiaghvcurvepath -
-/ldiaghvcurvepath
-{
- % (entering ldiaghvcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /CTR [ to (CTR) ldiagdolabel pop from (CTR) ldiagdolabel exch pop ] cvx def
- /FANG [ from (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
- /TANG [ to (CTR) ldiagdolabel CTR ldiagangleto ] cvx def
-
- from (CTR) ldiagdolabel FANG from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FANG ldiagatangle ldiagpadd /FROM ldiagpointdef
- FANG /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel TANG to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TANG ldiagatangle ldiagpadd /TO ldiagpointdef
- TANG 180 dg add /TO@ANGLE ldiagangledef
-
- /FDIST [ FROM CTR ldiagdistance ] cvx def
- /TDIST [ TO CTR ldiagdistance ] cvx def
- /RADIUS [ radius FDIST TDIST ldiagmin ldiagmin ] cvx def
- /XINDENT [ xindent FDIST RADIUS sub ldiagmin ] cvx def
- /ZINDENT [ zindent TDIST RADIUS sub ldiagmin ] cvx def
- FROM 0 0 XINDENT FANG ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TANG ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
-
- /FCTR [ CTR 0 0 RADIUS FROM@ANGLE 180 dg add ldiagatangle ldiagpadd ] cvx def
- /TCTR [ CTR 0 0 RADIUS TO@ANGLE ldiagatangle ldiagpadd ] cvx def
- /XCTR [ CTR 0 0 RADIUS FROM@ANGLE 180 dg add ldiagatangle ldiagpadd
- 0 0 RADIUS TO@ANGLE ldiagatangle ldiagpadd ] cvx def
- XCTR 0 0 RADIUS XCTR CTR ldiagangleto ldiagatangle ldiagpadd
- /LMID ldiagpointdef
- FCTR TCTR ldiagangleto /LMID@ANGLE ldiagangledef
-
- FROM LFROM FCTR
- {[XCTR]} {} {} {} {} {[XCTR clockwise]} {[XCTR]} {[XCTR clockwise]}
- FCTR TCTR ldiagangleto ldiagquadcase
- TCTR LTO TO
-
- % (leaving ldiaghvcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias ldiaglvrlinepath -
-/ldiaglvrlinepath
-{
- % (entering ldiaglvrlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 180 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 180 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 180 dg /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel 180 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 180 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 0 dg /TO@ANGLE ldiagangledef
-
- /XLEFT [ FROM pop TO pop ldiagmin bias sub ] cvx def
- XLEFT FROM exch pop /P1 ldiagpointdef
- XLEFT TO exch pop /P2 ldiagpointdef
- /VERT [ P1 P2 ldiagangleto ] cvx def
- P1 P1 0 0 1 ft 180 dg ldiagatangle ldiagpadd 0 0 1 ft VERT ldiagatangle
- ldiagpadd ldiagangleto /P1@ANGLE ldiagangledef
- P2 P2 0 0 1 ft 0 dg ldiagatangle ldiagpadd 0 0 1 ft VERT ldiagatangle
- ldiagpadd ldiagangleto /P2@ANGLE ldiagangledef
-
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- VERT /LMID@ANGLE ldiagangledef
-
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- XINDENT 0 FROM ldiagpsub /LFROM ldiagpointdef
- 180 dg /LFROM@ANGLE ldiagangledef
- ZINDENT 0 TO ldiagpsub /LTO ldiagpointdef
- 0 dg /LTO@ANGLE ldiagangledef
-
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiaglvrlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias radius ldiaglvrcurvepath -
-/ldiaglvrcurvepath
-{
- % (entering ldiaglvrcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 180 dg from (CIRCUM) ldiagdolabel ldiagpadd 0 0
- fromarrowlength 180 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 180 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 180 dg to (CIRCUM) ldiagdolabel ldiagpadd 0 0
- toarrowlength 180 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 0 dg /TO@ANGLE ldiagangledef
- /XLEFT [ FROM pop TO pop ldiagmin bias sub ] cvx def
- /XP1 [ XLEFT FROM exch pop ] cvx def
- /XP2 [ XLEFT TO exch pop ] cvx def
- /VERT [ XP1 XP2 ldiagangleto ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- VERT /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- XINDENT 0 FROM ldiagpsub /LFROM ldiagpointdef
- 180 dg /LFROM@ANGLE ldiagangledef
- ZINDENT 0 TO ldiagpsub /LTO ldiagpointdef
- 0 dg /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 2 div ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS 0 dg ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd
- /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS VERT ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS 0 dg ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RADIUS 0 dg ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd
- /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- FROM LFROM XP1PRE
- { } { [XP1CTR] P1 [XP1CTR] } { } { [XP1CTR clockwise] P1 [XP1CTR clockwise] }
- { } { } { } { } VERT round ldiagquadcase
- XP1POST LMID XP2PRE
- { } { [XP2CTR] P2 [XP2CTR] } { } { [XP2CTR clockwise] P2 [XP2CTR clockwise] }
- { } { } { } { } VERT round ldiagquadcase
- XP2POST LTO TO
-
- % (leaving ldiaglvrcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias ldiagrvllinepath -
-/ldiagrvllinepath
-{
- % (entering ldiagrvllinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 0 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 0 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 0 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 0 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 0 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 180 dg /TO@ANGLE ldiagangledef
- /XRIGHT [ FROM pop TO pop ldiagmax bias add ] cvx def
- XRIGHT FROM exch pop /P1 ldiagpointdef
- XRIGHT TO exch pop /P2 ldiagpointdef
- /VERT [ P1 P2 ldiagangleto ] cvx def
- P1 P1 0 0 1 ft 0 dg ldiagatangle ldiagpadd 0 0 1 ft VERT ldiagatangle
- ldiagpadd ldiagangleto /P1@ANGLE ldiagangledef
- P2 P2 0 0 1 ft 180 dg ldiagatangle ldiagpadd 0 0 1 ft VERT ldiagatangle
- ldiagpadd ldiagangleto /P2@ANGLE ldiagangledef
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- VERT /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- FROM XINDENT 0 ldiagpadd /LFROM ldiagpointdef
- 0 dg /LFROM@ANGLE ldiagangledef
- TO ZINDENT 0 ldiagpadd /LTO ldiagpointdef
- 180 dg /LTO@ANGLE ldiagangledef
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiagrvllinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-
-% farr tarr { from } { to } xindent zindent bias radius ldiagrvlcurvepath -
-/ldiagrvlcurvepath
-{
- % (entering ldiagrvlcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 0 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 0 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 0 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 0 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 0 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 180 dg /TO@ANGLE ldiagangledef
- /XRIGHT [ FROM pop TO pop ldiagmax bias add ] cvx def
- /XP1 [ XRIGHT FROM exch pop ] cvx def
- /XP2 [ XRIGHT TO exch pop ] cvx def
- /VERT [ XP1 XP2 ldiagangleto ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- VERT /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- FROM XINDENT 0 ldiagpadd /LFROM ldiagpointdef
- 0 dg /LFROM@ANGLE ldiagangledef
- TO ZINDENT 0 ldiagpadd /LTO ldiagpointdef
- 180 dg /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 0.5 mul ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS 180 dg ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd
- /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS VERT ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS 180 dg ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RADIUS 180 dg ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd
- /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- FROM LFROM XP1PRE
- {} {[XP1CTR clockwise] P1 [XP1CTR clockwise]} {} {[XP1CTR] P1 [XP1CTR]}
- {} {} {} {} VERT round ldiagquadcase
- XP1POST LMID XP2PRE
- {} {[XP2CTR clockwise] P2 [XP2CTR clockwise]} {} {[XP2CTR] P2 [XP2CTR]}
- {} {} {} {} VERT round ldiagquadcase
- XP2POST LTO TO
-
- % (leaving ldiagrvlcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias ldiagdhulinepath -
-/ldiagdhulinepath
-{
- % (entering ldiagdhulinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 270 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 270 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 270 dg /FROM@ANGLE ldiagangledef
-
- to (CTR) ldiagdolabel 270 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 270 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 90 dg /TO@ANGLE ldiagangledef
-
- /XDOWN [ FROM exch pop TO exch pop ldiagmin bias sub ] cvx def
- FROM pop XDOWN /P1 ldiagpointdef
- TO pop XDOWN /P2 ldiagpointdef
- /HORIZ [ P1 P2 ldiagangleto ] cvx def
- P1 P1 0 0 1 ft 270 dg ldiagatangle ldiagpadd 0 0 1 ft HORIZ ldiagatangle
- ldiagpadd ldiagangleto /P1@ANGLE ldiagangledef
- P2 P2 0 0 1 ft 90 dg ldiagatangle ldiagpadd 0 0 1 ft HORIZ ldiagatangle
- ldiagpadd ldiagangleto /P2@ANGLE ldiagangledef
-
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- HORIZ /LMID@ANGLE ldiagangledef
-
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- 0 XINDENT FROM ldiagpsub /LFROM ldiagpointdef
- 270 dg /LFROM@ANGLE ldiagangledef
- 0 ZINDENT TO ldiagpsub /LTO ldiagpointdef
- 90 dg /LTO@ANGLE ldiagangledef
-
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiagdhulinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias radius ldiagdhucurvepath -
-/ldiagdhucurvepath
-{
- % (entering ldiagdhucurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 270 dg from (CIRCUM) ldiagdolabel ldiagpadd 0 0
- fromarrowlength 270 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 270 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 270 dg to (CIRCUM) ldiagdolabel ldiagpadd 0 0
- toarrowlength 270 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 90 dg /TO@ANGLE ldiagangledef
- /XDOWN [ FROM exch pop TO exch pop ldiagmin bias sub ] cvx def
- /XP1 [ FROM pop XDOWN ] cvx def
- /XP2 [ TO pop XDOWN ] cvx def
- /HORIZ [ XP1 XP2 ldiagangleto ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- HORIZ /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- 0 XINDENT FROM ldiagpsub /LFROM ldiagpointdef
- 270 dg /LFROM@ANGLE ldiagangledef
- 0 ZINDENT TO ldiagpsub /LTO ldiagpointdef
- 90 dg /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 2 div ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS 90 dg ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS HORIZ ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS HORIZ ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd
- /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS HORIZ ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS 90 dg ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RADIUS 90 dg ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd
- /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- FROM LFROM XP1PRE
- {} {} { [XP1CTR clockwise] P1 [XP1CTR clockwise] } {} { [XP1CTR] P1 [XP1CTR] }
- {} {} {} HORIZ round ldiagquadcase
- XP1POST LMID XP2PRE
- {} {} { [XP2CTR clockwise ] P2 [XP2CTR clockwise ] } {} { [XP2CTR] P2 [XP2CTR] }
- {} {} {} HORIZ round ldiagquadcase
- XP2POST LTO TO
-
- % (leaving ldiagdhucurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias ldiaguhdlinepath -
-/ldiaguhdlinepath
-{
- % (entering ldiaguhdlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 90 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 90 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 90 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 90 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 90 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 270 dg /TO@ANGLE ldiagangledef
- /XUP [ FROM exch pop TO exch pop ldiagmax bias add ] cvx def
- FROM pop XUP /P1 ldiagpointdef
- TO pop XUP /P2 ldiagpointdef
- /HORIZ [ P1 P2 ldiagangleto ] cvx def
- P1 P1 0 0 1 ft 90 dg ldiagatangle ldiagpadd 0 0 1 ft HORIZ ldiagatangle
- ldiagpadd ldiagangleto /P1@ANGLE ldiagangledef
- P2 P2 0 0 1 ft 270 dg ldiagatangle ldiagpadd 0 0 1 ft HORIZ ldiagatangle
- ldiagpadd ldiagangleto /P2@ANGLE ldiagangledef
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- HORIZ /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 XINDENT ldiagpadd /LFROM ldiagpointdef
- 90 dg /LFROM@ANGLE ldiagangledef
- TO 0 ZINDENT ldiagpadd /LTO ldiagpointdef
- 270 dg /LTO@ANGLE ldiagangledef
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiaguhdlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-
-% farr tarr { from } { to } xindent zindent bias radius ldiaguhdcurvepath -
-/ldiaguhdcurvepath
-{
- % (entering ldiaguhdcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- from (CTR) ldiagdolabel 90 dg from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength 90 dg ldiagatangle ldiagpadd /FROM ldiagpointdef
- 90 dg /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel 90 dg to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength 90 dg ldiagatangle ldiagpadd /TO ldiagpointdef
- 270 dg /TO@ANGLE ldiagangledef
- /XUP [ FROM exch pop TO exch pop ldiagmax bias add ] cvx def
- /XP1 [ FROM pop XUP ] cvx def
- /XP2 [ TO pop XUP ] cvx def
- /HORIZ [ XP1 XP2 ldiagangleto ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- HORIZ /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 XINDENT ldiagpadd /LFROM ldiagpointdef
- 90 dg /LFROM@ANGLE ldiagangledef
- TO 0 ZINDENT ldiagpadd /LTO ldiagpointdef
- 270 dg /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 0.5 mul ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS 270 dg ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS HORIZ ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS HORIZ ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd
- /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS HORIZ ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS 270 dg ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RADIUS 270 dg ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd
- /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- FROM LFROM XP1PRE
- {} {} {[XP1CTR] P1 [XP1CTR]} {} {[XP1CTR clockwise] P1 [XP1CTR clockwise]}
- {} {} {} HORIZ round ldiagquadcase
- XP1POST LMID XP2PRE
- {} {} {[XP2CTR] P2 [XP2CTR]} {} {[XP2CTR clockwise] P2 [XP2CTR clockwise]}
- {} {} {} HORIZ round ldiagquadcase
- XP2POST LTO TO
-
- % (leaving ldiaguhdcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent hfrac hbias ldiaghvhlinepath -
-/ldiaghvhlinepath % still to do
-{
- % (entering ldiaghvhlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /hbias exch def
- /hfrac exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /FRDIRN [ { 0 dg } { 180 dg } { 180 dg } { 0 dg }
- { 0 dg } { 0 dg } { 180 dg } { 180 dg }
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto ldiagquadcase ] cvx def
- /TODIRN [ FRDIRN 180 dg add ] cvx def
- from (CTR) ldiagdolabel FRDIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FRDIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- FRDIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TODIRN to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TODIRN ldiagatangle ldiagpadd /TO ldiagpointdef
- FRDIRN /TO@ANGLE ldiagangledef
- /BIAS [ FROM pop TO pop sub abs hfrac mul hbias add ] cvx def
- FROM 0 0 BIAS FRDIRN ldiagatangle ldiagpadd /P1 ldiagpointdef
- P1 pop TO exch pop /P2 ldiagpointdef
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- P1 P2 ldiagangleto /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT FRDIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FRDIRN /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TODIRN ldiagatangle ldiagpadd /LTO ldiagpointdef
- FRDIRN /LTO@ANGLE ldiagangledef
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiaghvhlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-
-% farr tarr { from } { to } xindent zindent hfrac hbias radius ldiaghvhcurvepath -
-/ldiaghvhcurvepath % still to do
-{
- % (entering ldiaghvhcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /hbias exch def
- /hfrac exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /FRDIRN [ { 0 dg } { 180 dg } { 180 dg } { 0 dg }
- { 0 dg } { 0 dg } { 180 dg } { 180 dg }
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto ldiagquadcase ] cvx def
- /TODIRN [ FRDIRN 180 dg add ] cvx def
-
- from (CTR) ldiagdolabel FRDIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FRDIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- FRDIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TODIRN to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TODIRN ldiagatangle ldiagpadd /TO ldiagpointdef
-
- FRDIRN /TO@ANGLE ldiagangledef
- /BIAS [ FROM pop TO pop sub abs hfrac mul hbias add ] cvx def
- /XP1 [ FROM 0 0 BIAS FRDIRN ldiagatangle ldiagpadd ] cvx def
- /XP2 [ XP1 pop TO exch pop ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- /VERT [ XP1 XP2 ldiagangleto round ] cvx def
- VERT /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT FRDIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FRDIRN /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TODIRN ldiagatangle ldiagpadd /LTO ldiagpointdef
- FRDIRN /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 2 div ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS TODIRN ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS VERT ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS FRDIRN ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ 0 0 RADIUS VERT ldiagatangle XP2POST ldiagpsub ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- VERT FRDIRN sub 90 eq
- { /P1GO [ anticlockwise ] cvx def /P2GO [ clockwise ] cvx def }
- { /P1GO [ clockwise ] cvx def /P2GO [ anticlockwise ] cvx def }
- ifelse
- FROM LFROM
- XP1PRE [XP1CTR P1GO] P1 [XP1CTR P1GO] XP1POST
- LMID
- XP2PRE [XP2CTR P2GO] P2 [XP2CTR P2GO] XP2POST
- LTO TO
-
- % (leaving ldiaghvhcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent hfrac hbias ldiagvhvlinepath -
-/ldiagvhvlinepath % still to do
-{
- % (entering ldiagvhvlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /hbias exch def
- /hfrac exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /FRDIRN [ { 90 dg } { 270 dg } { 270 dg } { 0 dg }
- { 90 dg } { 270 dg } { 270 dg } { 90 dg }
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto ldiagquadcase ] cvx def
- /TODIRN [ FRDIRN 180 dg sub ] cvx def
- from (CTR) ldiagdolabel FRDIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FRDIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- FRDIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TODIRN to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TODIRN ldiagatangle ldiagpadd /TO ldiagpointdef
- FRDIRN /TO@ANGLE ldiagangledef
- /BIAS [ FROM exch pop TO exch pop sub abs hfrac mul hbias ft add ] cvx def
- FROM 0 0 BIAS FRDIRN ldiagatangle ldiagpadd /P1 ldiagpointdef
- TO pop P1 exch pop /P2 ldiagpointdef
- P1 0.5 ldiagpmul P2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- P1 P2 ldiagangleto /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent P2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT FRDIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FRDIRN /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TODIRN ldiagatangle ldiagpadd /LTO ldiagpointdef
- FRDIRN /LTO@ANGLE ldiagangledef
- FROM LFROM P1 LMID P2 LTO TO
-
- % (leaving ldiagvhvlinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-
-% farr tarr { from } { to } xindent zindent hfrac hbias radius ldiagvhvcurvepath -
-/ldiagvhvcurvepath % still to do
-{
- % (entering ldiagvhvcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /hbias exch def
- /hfrac exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /FRDIRN [ { 90 dg } { 270 dg } { 270 dg } { 0 dg }
- { 90 dg } { 270 dg } { 270 dg } { 90 dg }
- from (CTR) ldiagdolabel to (CTR) ldiagdolabel
- ldiagangleto ldiagquadcase ] cvx def
- /TODIRN [ FRDIRN 180 dg sub ] cvx def
- from (CTR) ldiagdolabel FRDIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength FRDIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- FRDIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel TODIRN to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength TODIRN ldiagatangle ldiagpadd /TO ldiagpointdef
- FRDIRN /TO@ANGLE ldiagangledef
- /BIAS [ FROM exch pop TO exch pop sub abs hfrac mul hbias add ] cvx def
- /XP1 [ FROM 0 0 BIAS FRDIRN ldiagatangle ldiagpadd ] cvx def
- /XP2 [ TO pop XP1 exch pop ] cvx def
- XP1 0.5 ldiagpmul XP2 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- /VERT [ XP1 XP2 ldiagangleto round ] cvx def
- VERT /LMID@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1 ldiagdistance ldiagmin ] cvx def
- /ZINDENT [ zindent XP2 TO ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT FRDIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FRDIRN /LFROM@ANGLE ldiagangledef
- TO 0 0 ZINDENT TODIRN ldiagatangle ldiagpadd /LTO ldiagpointdef
- FRDIRN /LTO@ANGLE ldiagangledef
- /RADIUS [ radius XP1 XP2 ldiagdistance 2 div ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RADIUS TODIRN ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RADIUS VERT ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RADIUS XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd /P1 ldiagpointdef
- XP1PRE XP1POST ldiagangleto /P1@ANGLE ldiagangledef
- /XP2PRE [ 0 0 RADIUS VERT ldiagatangle XP2 ldiagpsub ] cvx def
- /XP2POST [ XP2 0 0 RADIUS FRDIRN ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ 0 0 RADIUS VERT ldiagatangle XP2POST ldiagpsub ] cvx def
- XP2CTR 0 0 RADIUS XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd /P2 ldiagpointdef
- XP2PRE XP2POST ldiagangleto /P2@ANGLE ldiagangledef
- FRDIRN VERT sub 90 eq
- { /P1GO [ clockwise ] cvx def /P2GO [ anticlockwise ] cvx def }
- { /P1GO [ anticlockwise ] cvx def /P2GO [ clockwise ] cvx def }
- ifelse
- FROM LFROM
- XP1PRE [XP1CTR P1GO] P1 [XP1CTR P1GO] XP1POST
- LMID
- XP2PRE [XP2CTR P2GO] P2 [XP2CTR P2GO] XP2POST
- LTO TO
-
-
- % (leaving ldiagvhvcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias fbias tbias ldiagdwraplinepath -
-/ldiagdwraplinepath
-{
- % (entering ldiagdwraplinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /tbias exch def
- /fbias exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /DIRN [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop
- lt { 180 dg } { 0 dg } ifelse ] cvx def
- from (CTR) ldiagdolabel DIRN from (CIRCUM) ldiagdolabel ldiagpadd 0 0
- fromarrowlength DIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- DIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel DIRN 180 dg add to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength DIRN 180 dg add ldiagatangle ldiagpadd /TO ldiagpointdef
- DIRN /TO@ANGLE ldiagangledef
- FROM 0 0 fbias 0 ldiagmax DIRN ldiagatangle ldiagpadd /P1 ldiagpointdef
- DIRN 180 dg eq { 225 dg } { -45 dg } ifelse /P1@ANGLE ldiagangledef
- TO 0 0 tbias 0 ldiagmax DIRN 180 dg add ldiagatangle ldiagpadd
- /P4 ldiagpointdef
- DIRN 180 dg eq { 135 dg } { 45 dg } ifelse /P4@ANGLE ldiagangledef
- /YC [ from (CTR) ldiagdolabel 270 dg from (CIRCUM) ldiagdolabel ldiagpadd
- exch pop to (CTR) ldiagdolabel 270 dg to (CIRCUM) ldiagdolabel ldiagpadd
- exch pop ldiagmin bias 0 ldiagmax sub ] cvx def
- P1 pop YC /P2 ldiagpointdef
- P4@ANGLE 180 dg sub /P2@ANGLE ldiagangledef
- P4 pop YC /P3 ldiagpointdef
- P1@ANGLE 180 dg sub /P3@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT DIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- /ZINDENT [ zindent TO P4 ldiagdistance ldiagmin ] cvx def
- TO 0 0 ZINDENT DIRN 180 dg add ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
- P2 0.5 ldiagpmul P3 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- DIRN 180 dg sub /LMID@ANGLE ldiagangledef
- FROM P1 P2 P3 P4 TO
-
- % (leaving ldiagdwraplinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias fbias tbias radius
-% ldiagdwrapcurvepath -
-/ldiagdwrapcurvepath
-{
- % (entering ldiagdwrapcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /tbias exch def
- /fbias exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /DIRN [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop lt
- { 180 dg } { 0 dg } ifelse ] cvx def
- /CLOCK [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop lt
- { anticlockwise } { clockwise } ifelse ] cvx def
- from (CTR) ldiagdolabel DIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength DIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- DIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel DIRN 180 dg add to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength DIRN 180 dg add ldiagatangle ldiagpadd /TO ldiagpointdef
- DIRN /TO@ANGLE ldiagangledef
- /XP1 [ FROM 0 0 fbias 0 ldiagmax DIRN ldiagatangle ldiagpadd ] cvx def
- /XP4 [ TO 0 0 tbias 0 ldiagmax DIRN 180 dg add ldiagatangle ldiagpadd ] cvx def
- /YC [ from (CTR) ldiagdolabel 270 dg from (CIRCUM) ldiagdolabel ldiagpadd
- exch pop to (CTR) ldiagdolabel 270 dg to (CIRCUM) ldiagdolabel ldiagpadd
- exch pop ldiagmin bias 0 ldiagmax sub ] cvx def
- /XP2 [ XP1 pop YC ] cvx def
- /XP3 [ XP4 pop YC ] cvx def
- /RP1 [ radius XP1 FROM ldiagdistance XP1 XP2 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RP1 XP1 FROM ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RP1 XP1 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RP1 XP1 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RP1 XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd /P1 ldiagpointdef
- XP1CTR P1 ldiagangleto DIRN add 90 dg sub /P1@ANGLE ldiagangledef
- /RP2 [ radius XP1 XP2 ldiagdistance 2 div XP2 XP3 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP2PRE [ XP2 0 0 RP2 XP2 XP1 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP2POST [ XP2 0 0 RP2 XP2 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RP2 XP2 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RP2 XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd /P2 ldiagpointdef
- XP2CTR P2 ldiagangleto DIRN add 90 dg sub /P2@ANGLE ldiagangledef
- /RP3 [ radius XP2 XP3 ldiagdistance 2 div XP3 XP4 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP3PRE [ XP3 0 0 RP3 XP3 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP3POST [ XP3 0 0 RP3 XP3 XP4 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP3CTR [ XP3PRE 0 0 RP3 XP3 XP4 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP3CTR 0 0 RP3 XP3CTR XP3 ldiagangleto ldiagatangle ldiagpadd /P3 ldiagpointdef
- XP3CTR P3 ldiagangleto DIRN add 90 dg sub /P3@ANGLE ldiagangledef
- /RP4 [ radius XP4 XP3 ldiagdistance 2 div XP4 TO ldiagdistance
- ldiagmin ldiagmin ] cvx def
- /XP4PRE [ XP4 0 0 RP4 XP4 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP4POST [ XP4 0 0 RP4 XP4 TO ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP4CTR [ XP4PRE 0 0 RP4 XP4 TO ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP4CTR 0 0 RP4 XP4CTR XP4 ldiagangleto ldiagatangle ldiagpadd /P4 ldiagpointdef
- XP4CTR P4 ldiagangleto DIRN add 90 dg sub /P4@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1PRE ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT DIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- XP2 0.5 ldiagpmul XP3 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- DIRN 180 dg sub /LMID@ANGLE ldiagangledef
- /ZINDENT [ zindent TO XP4POST ldiagdistance ldiagmin ] cvx def
- TO 0 0 ZINDENT DIRN 180 dg add ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
- FROM LFROM
- XP1PRE [XP1CTR CLOCK] XP1POST
- XP2PRE [XP2CTR CLOCK] XP2POST
- LMID
- XP3PRE [XP3CTR CLOCK] XP3POST
- XP4PRE [XP4CTR CLOCK] XP4POST
- LTO TO
-
- % (leaving ldiagdwrapcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias fbias tbias ldiaguwraplinepath -
-/ldiaguwraplinepath
-{
- % (entering ldiaguwraplinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /tbias exch def
- /fbias exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /DIRN [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop lt
- { 180 dg } { 0 dg } ifelse ] cvx def
- from (CTR) ldiagdolabel DIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength DIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- DIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel DIRN 180 dg add to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength DIRN 180 dg add ldiagatangle ldiagpadd /TO ldiagpointdef
- DIRN /TO@ANGLE ldiagangledef
- FROM 0 0 fbias 0 ldiagmax DIRN ldiagatangle ldiagpadd /P1 ldiagpointdef
- DIRN 180 dg eq { 135 dg } { 45 dg } ifelse /P1@ANGLE ldiagangledef
- TO 0 0 tbias 0 ldiagmax DIRN 180 dg add ldiagatangle ldiagpadd
- /P4 ldiagpointdef
- DIRN 180 dg eq { 225 dg } { -45 dg } ifelse /P4@ANGLE ldiagangledef
- /YC [ from (CTR) ldiagdolabel 90 dg from (CIRCUM) ldiagdolabel ldiagpadd
- exch pop to (CTR) ldiagdolabel 90 dg to (CIRCUM) ldiagdolabel ldiagpadd
- exch pop ldiagmax bias 0 ldiagmax add ] cvx def
- P1 pop YC /P2 ldiagpointdef
- P4@ANGLE 180 dg sub /P2@ANGLE ldiagangledef
- P4 pop YC /P3 ldiagpointdef
- P1@ANGLE 180 dg sub /P3@ANGLE ldiagangledef
- /XINDENT [ xindent FROM P1 ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT DIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- /ZINDENT [ zindent TO P4 ldiagdistance ldiagmin ] cvx def
- TO 0 0 ZINDENT DIRN 180 dg add ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
- P2 0.5 ldiagpmul P3 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- DIRN 180 dg sub /LMID@ANGLE ldiagangledef
- FROM P1 P2 P3 P4 TO
-
- % (leaving ldiaguwraplinepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% farr tarr { from } { to } xindent zindent bias fbias tbias radius
-% ldiaguwrapcurvepath -
-/ldiaguwrapcurvepath
-{
- % (entering ldiaguwrapcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
- /radius exch def
- /tbias exch def
- /fbias exch def
- /bias exch def
- /zindent exch def
- /xindent exch def
- cvlit /to exch def
- cvlit /from exch def
- /toarrowlength exch def
- /fromarrowlength exch def
-
- /DIRN [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop lt
- { 180 dg } { 0 dg } ifelse ] cvx def
- /CLOCK [ from (CTR) ldiagdolabel pop to (CTR) ldiagdolabel pop lt
- { clockwise } { anticlockwise } ifelse ] cvx def
- from (CTR) ldiagdolabel DIRN from (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 fromarrowlength DIRN ldiagatangle ldiagpadd /FROM ldiagpointdef
- DIRN /FROM@ANGLE ldiagangledef
- to (CTR) ldiagdolabel DIRN 180 dg add to (CIRCUM) ldiagdolabel ldiagpadd
- 0 0 toarrowlength DIRN 180 dg add ldiagatangle ldiagpadd /TO ldiagpointdef
- DIRN /TO@ANGLE ldiagangledef
- /XP1 [ FROM 0 0 fbias 0 ldiagmax DIRN ldiagatangle ldiagpadd ] cvx def
- /XP4 [ TO 0 0 tbias 0 ldiagmax DIRN 180 dg add ldiagatangle ldiagpadd ] cvx def
- /YC [ from (CTR) ldiagdolabel 90 dg from (CIRCUM) ldiagdolabel ldiagpadd
- exch pop to (CTR) ldiagdolabel 90 dg to (CIRCUM) ldiagdolabel ldiagpadd
- exch pop ldiagmax bias 0 ldiagmax add ] cvx def
- /XP2 [ XP1 pop YC ] cvx def
- /XP3 [ XP4 pop YC ] cvx def
- /RP1 [ radius XP1 FROM ldiagdistance XP1 XP2 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP1PRE [ XP1 0 0 RP1 XP1 FROM ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP1POST [ XP1 0 0 RP1 XP1 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP1CTR [ XP1PRE 0 0 RP1 XP1 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP1CTR 0 0 RP1 XP1CTR XP1 ldiagangleto ldiagatangle ldiagpadd /P1 ldiagpointdef
- XP1CTR P1 ldiagangleto DIRN add 90 dg add /P1@ANGLE ldiagangledef
- /RP2 [ radius XP1 XP2 ldiagdistance 2 div XP2 XP3 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP2PRE [ XP2 0 0 RP2 XP2 XP1 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP2POST [ XP2 0 0 RP2 XP2 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP2CTR [ XP2PRE 0 0 RP2 XP2 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP2CTR 0 0 RP2 XP2CTR XP2 ldiagangleto ldiagatangle ldiagpadd /P2 ldiagpointdef
- XP2CTR P2 ldiagangleto DIRN add 90 dg add /P2@ANGLE ldiagangledef
- /RP3 [ radius XP2 XP3 ldiagdistance 2 div XP3 XP4 ldiagdistance 2 div
- ldiagmin ldiagmin ] cvx def
- /XP3PRE [ XP3 0 0 RP3 XP3 XP2 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP3POST [ XP3 0 0 RP3 XP3 XP4 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP3CTR [ XP3PRE 0 0 RP3 XP3 XP4 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP3CTR 0 0 RP3 XP3CTR XP3 ldiagangleto ldiagatangle ldiagpadd /P3 ldiagpointdef
- XP3CTR P3 ldiagangleto DIRN add 90 dg add /P3@ANGLE ldiagangledef
- /RP4 [ radius XP4 XP3 ldiagdistance 2 div XP4 TO ldiagdistance
- ldiagmin ldiagmin ] cvx def
- /XP4PRE [ XP4 0 0 RP4 XP4 XP3 ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP4POST [ XP4 0 0 RP4 XP4 TO ldiagangleto ldiagatangle ldiagpadd ] cvx def
- /XP4CTR [ XP4PRE 0 0 RP4 XP4 TO ldiagangleto ldiagatangle ldiagpadd ] cvx def
- XP4CTR 0 0 RP4 XP4CTR XP4 ldiagangleto ldiagatangle ldiagpadd /P4 ldiagpointdef
- XP4CTR P4 ldiagangleto DIRN add 90 dg add /P4@ANGLE ldiagangledef
- /XINDENT [ xindent FROM XP1PRE ldiagdistance ldiagmin ] cvx def
- FROM 0 0 XINDENT DIRN ldiagatangle ldiagpadd /LFROM ldiagpointdef
- FROM@ANGLE /LFROM@ANGLE ldiagangledef
- XP2 0.5 ldiagpmul XP3 0.5 ldiagpmul ldiagpadd /LMID ldiagpointdef
- DIRN 180 dg sub /LMID@ANGLE ldiagangledef
- /ZINDENT [ zindent TO XP4POST ldiagdistance ldiagmin ] cvx def
- TO 0 0 ZINDENT DIRN 180 dg add ldiagatangle ldiagpadd /LTO ldiagpointdef
- TO@ANGLE /LTO@ANGLE ldiagangledef
- FROM LFROM
- XP1PRE [XP1CTR CLOCK] XP1POST
- XP2PRE [XP2CTR CLOCK] XP2POST
- LMID
- XP3PRE [XP3CTR CLOCK] XP3POST
- XP4PRE [XP4CTR CLOCK] XP4POST
- LTO TO
-
- % (leaving ldiaguwrapcurvepath) 0 ldiagdebugprint
- % count ( stack size is) 1 ldiagdebugprint pop
-} def
-
-% shape and labels of the @SolidArrowHead symbol
-% - ldiagsolidarrowhead -
-/ldiagsolidarrowhead
-{
- 0 0 xsize ysize 0.5 mul 0 ysize
-} def
-
-% shape and labels of the @SolidWithBarArrowHead symbol
-% <pathwidth> ldiagsolidwithbararrowhead -
-/ldiagsolidwithbararrowhead
-{
- /pathwidth exch def
- /XBK [ xsize pathwidth 0.5 mul sub ] cvx def
- /XFW [ xsize pathwidth 0.5 mul add ] cvx def
- 0 0 XBK ysize 0.5 mul XBK 0 XFW 0 XFW ysize
- XBK ysize XBK ysize 0.5 mul 0 ysize 0 0
-} def
-
-% shape and labels of the @OpenArrowHead symbol
-% <pathwidth> <pathgap> ldiagopenarrowhead -
-/ldiagopenarrowhead
-{
- /pathgap exch def
- /pathwidth exch def
- /PSW [ 0 0 ] cvx def
- /PNW [ 0 ysize ] cvx def
- /PE [ xsize ysize 0.5 mul ] cvx def
- /REL [ 0 0 pathwidth PE PNW ldiagangleto 90 add ldiagatangle ] cvx def
- pathgap 0 eq
- {
- /PNA [ 0 ysize 0.5 mul pathwidth 0.5 mul add ] cvx def
- /PSA [ 0 ysize 0.5 mul pathwidth 0.5 mul sub ] cvx def
- /PNI [ PNA PNA xsize 0 ldiagpadd PNW REL ldiagpadd
- PE REL ldiagpadd ldiaglineintersect ] cvx def
- /PSI [ 0 pathwidth PNI ldiagpsub ] cvx def
-
- PSW PE PNW PNI PNA PSA PSI PSW
- }
- {
- /PNA [ 0 ysize 0.5 mul pathgap 0.5 mul add pathwidth 0.5 mul add ] cvx def
- /PSA [ 0 ysize 0.5 mul pathgap 0.5 mul sub pathwidth 0.5 mul sub ] cvx def
- /PNI [ PNA PNA xsize 0 ldiagpadd PNW REL ldiagpadd
- PE REL ldiagpadd ldiaglineintersect ] cvx def
- /PSI [ 0 pathwidth pathgap add PNI ldiagpsub ] cvx def
- /PXA [ 0 pathwidth PNA ldiagpsub ] cvx def
- /PXI [ 0 pathwidth PNI ldiagpsub ] cvx def
- /PYA [ 0 pathwidth PSA ldiagpadd ] cvx def
- /PYI [ 0 pathwidth PSI ldiagpadd ] cvx def
-
- PSW PE PNW PNI PNA PXA PXI PYI PYA PSA PSI PSW
- } ifelse
-} def
-
-% shape and labels of the @HalfOpenArrowHead symbol
-% <pathwidth> <pathgap> ldiaghalfopenarrowhead -
-/ldiaghalfopenarrowhead
-{
- /pathgap exch def
- /pathwidth exch def
- 0 0
- xsize ysize 0.5 mul
- 0 ysize
- pathgap 0 eq
- {
- xsize 0.3 mul ysize 0.5 mul pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathwidth 0.5 mul sub
- xsize 0.3 mul ysize 0.5 mul pathwidth 0.5 mul sub
- }
- {
- xsize 0.3 mul ysize 0.5 mul pathgap 0.5 mul add pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathgap 0.5 mul add pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathgap 0.5 mul add pathwidth 0.5 mul sub
- xsize 0.3 mul ysize 0.5 mul pathgap 0.5 mul add pathwidth 0.5 mul sub
- xsize 0.3 mul ysize 0.5 mul pathgap 0.5 mul sub pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathgap 0.5 mul sub pathwidth 0.5 mul add
- 0 ysize 0.5 mul pathgap 0.5 mul sub pathwidth 0.5 mul sub
- xsize 0.3 mul ysize 0.5 mul pathgap 0.5 mul sub pathwidth 0.5 mul sub
- } ifelse
- 0 0
-} def
-
-% shape and labels of the @SolidCurvedArrowHead symbol
-% - ldiagsolidcurvedarrowhead -
-/ldiagsolidcurvedarrowhead
-{
- 0 0
- [0 0 xsize ysize 0.5 mul ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect clockwise]
- xsize ysize 0.5 mul
- [xsize ysize 0.5 mul 0 ysize ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect clockwise]
- 0 ysize
-} def
-
-% shape and labels of the @OpenCurvedArrowHead symbol
-% <pathwidth> <pathgap> ldiagopencurvedarrowhead -
-/ldiagopencurvedarrowhead
-{
- /pathgap exch def
- /pathwidth exch def
- /LR [ 0 0 xsize ysize 0.5 mul ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect
- ] cvx def
- /UR [ xsize ysize 0.5 mul 0 ysize ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect
- ] cvx def
- /PW2 [ pathwidth 0.5 mul ] cvx def
- 0 0
- [LR clockwise]
- xsize ysize 0.5 mul
- [UR clockwise]
- 0 ysize
- pathgap 0 eq
- {
- /UMID [
- 0 ysize 0.5 mul PW2 add
- xsize ysize 0.5 mul PW2 add
- 0 ysize 0 0 1 ft UR 0 ysize ldiagangleto 90 add ldiagatangle
- ldiagpadd 0 ysize ldiaglineintersect
- ] cvx def
- /LMID [ 0 pathwidth UMID ldiagpsub ] cvx def
- UMID
- 0 ysize 0.5 mul PW2 add
- 0 ysize 0.5 mul PW2 sub
- LMID
- }
- {
- /UMIDU [
- 0 ysize 0.5 mul PW2 add pathgap 0.5 mul add
- xsize ysize 0.5 mul PW2 add pathgap 0.5 mul add
- 0 ysize 0 0 1 ft UR 0 ysize ldiagangleto 90 add ldiagatangle
- ldiagpadd 0 ysize ldiaglineintersect
- ] cvx def
- /UMIDL [ 0 pathwidth UMIDU ldiagpsub ] cvx def
- /LMIDL [ 0 pathgap 0 pathwidth UMIDU ldiagpsub ldiagpsub ] cvx def
- /LMIDU [ 0 pathwidth LMIDL ldiagpadd ] cvx def
- UMIDU
- 0 UMIDU exch pop
- 0 UMIDL exch pop
- UMIDL
- LMIDU
- 0 LMIDU exch pop
- 0 LMIDL exch pop
- LMIDL
- } ifelse
- 0 0
-} def
-
-% shape and labels of the @HalfOpenCurvedArrowHead symbol
-% <pathwidth> <pathgap> ldiaghalfopencurvedarrowhead -
-/ldiaghalfopencurvedarrowhead
-{
- /pathgap exch def
- /pathwidth exch def
- /LR [ 0 0 xsize ysize 0.5 mul ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect
- ] cvx def
- /UR [ xsize ysize 0.5 mul 0 ysize ldiaglinebetween
- xsize 0 xsize ysize ldiaglineintersect
- ] cvx def
- /BR [ 0 0 LR 0 ysize UR ldiaglineintersect ] cvx def
- /BRAD [ 0 0 BR ldiagdistance ] cvx def
- /PW2 [ pathwidth 0.5 mul ] cvx def
- 0 0
- [LR clockwise]
- xsize ysize 0.5 mul
- [UR clockwise]
- 0 ysize
- [BR clockwise]
- pathgap 0 eq
- {
- /XDIST [ BRAD dup mul PW2 dup mul sub sqrt ] cvx def
- /UMID [ BR XDIST PW2 ldiagpadd ] cvx def
- /LMID [ BR XDIST 0 PW2 sub ldiagpadd ] cvx def
- UMID
- 0 ysize 0.5 mul PW2 add
- 0 ysize 0.5 mul PW2 sub
- LMID
- }
- {
- /XDIST [ BRAD dup mul PW2 dup mul sub sqrt ] cvx def
- /UMIDU [ BR XDIST PW2 pathgap 0.5 mul add ldiagpadd ] cvx def
- /UMIDL [ 0 pathwidth UMIDU ldiagpsub ] cvx def
- /LMIDL [ BR XDIST 0 PW2 sub pathgap 0.5 mul sub ldiagpadd ] cvx def
- /LMIDU [ 0 pathwidth LMIDL ldiagpadd ] cvx def
- UMIDU
- 0 UMIDU exch pop
- 0 UMIDL exch pop
- UMIDL
- LMIDU
- 0 LMIDU exch pop
- 0 LMIDL exch pop
- LMIDL
- } ifelse
- [BR clockwise]
- 0 0
-} def
-
-% shape and labels of the @ManyArrowHead symbol
-% <pathwidth> ldiagmanyarrowhead -
-/ldiagmanyarrowhead
-{
- /pathwidth exch def
- /LL [ 0 ysize 2 div pathwidth 2 div sub ] cvx def
- /LU [ 0 ysize 2 div pathwidth 2 div add ] cvx def
- LL
- xsize 0
- xsize pathwidth
- LU
- LL
- []
- LL
- xsize LL exch pop
- xsize LU exch pop
- LU
- LL
- []
- LL
- xsize ysize pathwidth sub
- xsize ysize
- LU
- LL
-} def
-
-end
-%%EndResource
diff --git a/include/include/doc b/include/include/doc
deleted file mode 100644
index fca8d6a..0000000
--- a/include/include/doc
+++ /dev/null
@@ -1,466 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for ordinary documents #
-# #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude commands for standard packages. #
-# #
-###############################################################################
-
- @SysInclude { langdefs } # language definitions
- @SysInclude { bsf } # BasicSetup package
- @SysInclude { dsf } # DocumentSetup package
- @SysInclude { docf } # OrdinarySetup extension
-
-
-###############################################################################
-# #
-# @Include command for reading personal definitions from current directory. #
-# #
-###############################################################################
-
- @Include { mydefs }
-
-
-###############################################################################
-# #
-# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BasicSetup
- # @InitialFont { Times Base 12p } # initial font
- # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}}
- # @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- # @InitialSpace { lout } # initial space style
- # @InitialLanguage { English } # initial language
- # @InitialColour { black } # initial colour
- # @InitialBackgroundColour { white } # initial background colour
- # @OptimizePages { No } # optimize page breaks?
- # @HeadingFont { Bold } # font for @Heading
- # @FixedWidthFont { Courier Base -1p } # font for @F
- # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP
- # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays
- # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent
- # @DefaultIndent { 0.5rt } # @Display indent
- # @DisplayNumStyle { (num) } # style of display numbers
- # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent
- # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent
- # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists
- # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items
- # @ListIndent { 0s } # indent of list items
- # @ListRightIndent { 0s } # right indent of list items
- # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags
- # @ListLabelRight { No } # right-adjust list labels
- # @ListLabelRightGap { 2s } # gap when right-adjusting
- # @ListFont { } # font of list items
- # @ListBreak { } # break style of list items
- # @NumberSeparator { . } # separates nums like 2.3.7
- # @CrossLinkFormat { @Body } # format of cross links
- # @ExternalLinkFormat { @Body } # format of external links
-}
-
-
-###############################################################################
-# #
-# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DocumentSetup
- # @PageType { A4 @OrIfPlain Other} # page type (width, height)
- # @PageWidth { 80s } # page width if type Other
- # @PageHeight { 66f } # page height if type Other
- # @PageOrientation { Portrait } # Portrait, Landscape, etc.
- # @PageBackground { } # background of each page
- # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages
- # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages
- # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages
- # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages
- # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages
- # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages
- # @OddLeftBodyMargin { 0c } # extra margin for page body
- # @OddRightBodyMargin { 0c } # extra margin for page body
- # @EvenLeftBodyMargin { 0c } # extra margin for page body
- # @EvenRightBodyMargin{ 0c } # extra margin for page body
- # @PageBoxType { None } # None Box CurveBox ShadowBox
- # @PageBoxMargin { 1.00c } # page box margin
- # @PageBoxLineWidth { } # page box line thickness
- # @PageBoxPaint { none } # page box paint
- # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- # @PageEnclose { @Body } # enclose every page in this
- # @ColumnNumber { 1 } # number of columns (1 to 10)
- # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- # @FigureLocation { PageTop } # default figure location
- # @FigureFormat { @CC @Body } # default figure format
- # @FigureWord { figure } # "Figure" word else anything
- # @FigureNumbers { Arabic } # method of numbering figures
- # @FigureCaptionPos { Below } # Above or Below
- # @FigureCaptionFont { -2p } # figure caption font
- # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFigureContents { No } # list of figures at start
-
- # @TableLocation { PageTop } # default table location
- # @TableFormat { @CC @Body } # default table format
- # @TableWord { table } # "Table" word else anything
- # @TableNumbers { Arabic } # method of numbering tables
- # @TableCaptionPos { Below } # Above or Below
- # @TableCaptionFont { -2p } # table caption font
- # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break
- # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeTableContents { No } # list of tables at start
-
- # @FloaterLocation { PageTop } # default floater location
- # @FloaterFormat { @CC @Body } # default floater format
- # @FloaterWord { floater } # "Floater" word else anything
- # @FloaterNumbers { Arabic } # method of numbering floaters
- # @FloaterCaptionPos { Below } # Above or Below
- # @FloaterCaptionFont { -2p } # Floater caption font
- # @FloaterCaptionBreak{ adjust hyphen 1.2fx } # floater caption break
- # @FloaterCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFloaterContents{ No } # list of floater at start
-
- # @MakeContents { No } # make contents? Yes or No
- # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- # @ContentsFont { Bold } # font for major entry
- # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry
- # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry
- # @ContentsFormat { number @DotSep title } # contents entry format
- # @ContentsLeader { .. } # leader symbol in contents
- # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- # @MakeReferences { Yes } # make references? Yes or No
- # @RefCiteStyle { [cite] } # citation style
- # @RefCiteLabels { @RefNum } # citation items
- # @RefNumbers { Arabic } # reference numbers
- # @RefListFormat { Labels } # NoLabels, Labels, etc.
- # @RefListLabels { [@RefNum] } # ref list label format
- # @RefListTitle { references } # title of reference list
- # @ChapRefListTitle { references } # title of chapter ref list
- # @RefListIndent { 0s } # indent to left of labels
- # @RefListRightIndent { 0s } # indent to right of items
- # @RefListGap { @ListGap } # gap between ref list items
- # @RefListFont { } # font used in reference list
- # @RefListBreak { } # break style of ref list
- # @RefListLabelWidth { @ListLabelWidth } # Labels column width
- # @RefListSortKey { @Tag } # sorting key
-
- # @MakeGlossary { No } # make glossary? Yes or No
- # @GlossaryText { @Null } # glossary initial text
- # @GlossaryFont { } # glossary entries font
- # @GlossaryBreak { } # glossary entries break
- # @GlossaryFormat { +3p @Font @S @Name # glossary entries format
- # @Right @I { @Word&&page @PageNum }
- # @DP @RawIndentedDisplay @Body }
- # @GlossaryGap { @DisplayGap } # gap between glossary entries
- # @GlossaryColumnNumber{ 2 } # glossary columns (1 to 10)
- # @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- # @InGlossaryFont { smallcaps } # font for @InGlossary
- # @InGlossaryFormat { @Body } # format for @InGlossary
-
- # @MakeIndex { No } # make index? Yes or No
- # @IndexText { @Null } # index initial text
- # @IndexFont { } # index entries font
- # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexFormat { @Body } # @Index format
- # @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
- # @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
- # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexTypeMain { @B @PageNum } # Main pagenum format
- # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexRangeFormat { @From--@To } # index page range format
- # @IndexColumnNumber { 2 } # index columns (1 to 10)
- # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- # @IndexCtd { Yes } # include (ctd.) lines
- # @IndexCtdWord { continued } # "ctd." in current lang.
- # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexSpacerAbove { 2v } # space above index spacer
- # @IndexSpacerBelow { 1v } # space below index spacer
- # @IndexSpacerFont { +3p } # font of index spacer
- # @IndexSpacerFormat { @Body } # format of index spacer
-
- # @MakeIndexA { No } # make index A? Yes or No
- # @IndexAText { @Null } # index A initial text
- # @IndexAFont { } # index A entries font
- # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexAFormat { @Body } # @IndexA format
- # @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
- # @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
- # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexATypeMain { @B @PageNum } # Main pagenum format
- # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexARangeFormat { @From--@To } # index page range format
- # @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- # @IndexACtd { Yes } # include (ctd.) lines
- # @IndexACtdWord { continued } # "ctd." in current lang.
- # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexASpacerAbove { 2v } # space above index A spacer
- # @IndexASpacerBelow { 1v } # space below index A spacer
- # @IndexASpacerFont { +3p } # font of index A spacer
- # @IndexASpacerFormat { @Body } # format of index A spacer
-
- # @MakeIndexB { No } # make index B? Yes or No
- # @IndexBText { @Null } # index B initial text
- # @IndexBFont { } # index B entries font
- # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexBFormat { @Body } # @IndexB format
- # @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
- # @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
- # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexBTypeMain { @B @PageNum } # Main pagenum format
- # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexBRangeFormat { @From--@To } # index page range format
- # @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- # @IndexBCtd { Yes } # include (ctd.) lines
- # @IndexBCtdWord { continued } # "ctd." in current lang.
- # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexBSpacerAbove { 2v } # space above index B spacer
- # @IndexBSpacerBelow { 1v } # space below index B spacer
- # @IndexBSpacerFont { +3p } # font of index B spacer
- # @IndexBSpacerFormat { @Body } # format of index B spacer
-
- # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- # @FootNoteNumbers { Arabic } # footnote numbers
- # @FootNoteThrough { No } # numbered through chapter?
- # @FootNoteLocation { ColFoot } # where the footnote appears
- # @FootNoteFont { 0.80f } # font for footnotes
- # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format
- # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- # @FootAboveGap { @DisplayGap } # gap above footnote line
- # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
- # @MarginNoteFont { 0.80f } # font of margin notes
- # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- # @MarginNoteHGap { 0.5c } # horizontal gap to notes
- # @MarginNoteVGap { @DisplayGap } # min vertical gap between
- # @MarginNoteWidth { 1.50c } # width of margin notes
- # @EndNoteNumbers { Arabic } # endnote numbers
- # @EndNoteFont { 0.80f } # font of endnotes
- # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format
- # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- # @TheoremWord { theorem } # "Theorem" word, etc.
- # @TheoremTitleFormat { (title) } # only if title present
- # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @DefinitionWord { definition } # "Definition" word, etc.
- # @DefinitionTitleFormat { (title) } # only if title present
- # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ClaimWord { claim } # "Claim" word, etc.
- # @ClaimTitleFormat { (title) } # only if title present
- # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @PropositionWord { proposition } # "Proposition" word, etc.
- # @PropositionTitleFormat { (title) } # only if title present
- # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @LemmaWord { lemma } # "Lemma" word, etc.
- # @LemmaTitleFormat { (title) } # only if title present
- # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @CorollaryWord { corollary } # "Corollary" word, etc.
- # @CorollaryTitleFormat { (title) } # only if title present
- # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ExampleWord { example } # "Example" word, etc.
- # @ExampleTitleFormat { (title) } # only if title present
- # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ProofWord { proof } # "Proof" word, etc.
-
- # @PageHeaders { Simple } # None Simple Titles NoTitles
- # @PageNumbers { Arabic } # page numbers
- # @FirstPageNumber { 1 } # number of first page
- # @IntroPageNumbers { Roman } # intro page numbers
- # @IntroFirstPageNumber{ 1 } # number of first intro page
- # @StructPageNums { No } # make structured page numbers
- # @PageNumberFormat { number } # format of all page numbers
-
- # @OddTop { @Centre{- @PageNum -} } # Simple page headers
- # @OddFoot { @Null }
- # @EvenTop { @Centre{- @PageNum -} }
- # @EvenFoot { @Null }
- # @StartOddTop { @Null }
- # @StartOddFoot { @Null }
- # @StartEvenTop { @Null }
- # @StartEvenFoot { @Null }
- # @IntroOddTop { @Null }
- # @IntroOddFoot { @Centre @PageNum }
- # @IntroEvenTop { @Null }
- # @IntroEvenFoot { @Centre @PageNum }
- # @IntroStartOddTop { @Null }
- # @IntroStartOddFoot { @Null }
- # @IntroStartEvenTop { @Null }
- # @IntroStartEvenFoot { @Null }
-
- # Titles, NoTitles headers
- # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum }
- # @RunningOddFoot { @Null }
- # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} }
- # @RunningEvenFoot { @Null }
- # @RunningStartOddTop { @Null }
- # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningStartEvenTop { @Null }
- # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningIntroOddTop { @Null }
- # @RunningIntroOddFoot { @Right @PageNum }
- # @RunningIntroEvenTop { @Null }
- # @RunningIntroEvenFoot { @PageNum }
- # @RunningIntroStartOddTop { @Null }
- # @RunningIntroStartOddFoot { @Null }
- # @RunningIntroStartEvenTop { @Null }
- # @RunningIntroStartEvenFoot { @Null }
-}
-
-
-###############################################################################
-# #
-# The @OrdinarySetup @Use clause - options specific to ordinary documents. #
-# #
-###############################################################################
-
-@Use { @OrdinarySetup
- # @IndexWord { index } # word for "Index" word etc.
- # @IndexAWord { index } # word for "Index" (A)
- # @IndexBWord { index } # word for "Index" (B)
- # @AppendixWord { appendix } # word for "Appendix"
- # @SectionNumbers { Arabic } # kind of section numbers
- # @FirstSectionNumber { 1 } # first section num (Arabic)
- # @SubSectionNumbers { Arabic } # kind of subsection numbers
- # @FirstSubSectionNumber { 1 } # first subsect num (Arabic)
- # @SubSubSectionNumbers { Arabic } # kind of sub-subsect numbers
- # @FirstSubSubSectionNumber { 1 } # first subsub. num (Arabic)
- # @AppendixNumbers { UCAlpha } # kind of appendix numbers
- # @FirstAppendixNumber { 1 } # first appendix num (Arabic)
- # @SubAppendixNumbers { Arabic } # kind of subappendix numbers
- # @FirstSubAppendixNumber { 1 } # first sub-app. num (Arabic)
- # @SubSubAppendixNumbers { Arabic } # kind of sub-subapp. numbers
- # @FirstSubSubAppendixNumber { 1 } # first sub-sub. num (Arabic)
- # @SectionHeadingFont { Bold } # section head font
- # @SectionHeadingBreak { ragged 1.2fx nohyphen } # section head break
- # @SectionHeadingFormat { number @DotSep title } # section head fmt
- # @SubSectionHeadingFont { Bold } # subsect head font
- # @SubSectionHeadingBreak { ragged 1.2fx nohyphen } # subsect head break
- # @SubSectionHeadingFormat { number @DotSep title } # subsect head fmt
- # @SubSubSectionHeadingFont { Slope } # sub-ss. head font
- # @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } # sub-ss. head break
- # @SubSubSectionHeadingFormat { number @DotSep title } # sub-ss. head fmt
- # @AppendixHeadingFont { Bold } # appendix head font
- # @AppendixHeadingBreak { ragged 1.2fx nohyphen } # appendix head break
- # @AppendixHeadingFormat { number @DotSep title } # appendix head fmt
- # @SubAppendixHeadingFont { Bold } # subapp. head font
- # @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } # subapp. head break
- # @SubAppendixHeadingFormat { number @DotSep title } # subapp. head format
- # @SubSubAppendixHeadingFont { Slope } # sub-sa. head font
- # @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } # sub-sa. head break
- # @SubSubAppendixHeadingFormat{ number @DotSep title } # sub-sa. head fmt
- # @ReferencesHeadingFont { Bold } # refs head font
- # @ReferencesHeadingBreak { ragged 1.2fx nohyphen } # refs head break
- # @ReferencesHeadingFormat { title } # refs head format
- # @IndexHeadingFont { Bold } # index head font
- # @IndexHeadingBreak { ragged 1.2fx nohyphen } # index head break
- # @IndexHeadingFormat { title } # index head format
- # @IndexAHeadingFont { Bold } # index A head font
- # @IndexAHeadingBreak { ragged 1.2fx nohyphen } # index A head break
- # @IndexAHeadingFormat { title } # index A head fmt
- # @IndexBHeadingFont { Bold } # index B head font
- # @IndexBHeadingBreak { ragged 1.2fx nohyphen } # index B head break
- # @IndexBHeadingFormat { title } # index B head fmt
- # @SectionGap { 2.0v @OrIfPlain 3f } # between sections
- # @SubSectionGap { 1.5v @OrIfPlain 2f } # between subsects
- # @SubSubSectionGap { 1.5v @OrIfPlain 2f } # between sub-subs.
- # @AppendixGap { 2.0v @OrIfPlain 3f } # between appendices
- # @SubAppendixGap { 1.5v @OrIfPlain 2f } # between subappendices
- # @SubSubAppendixGap { 1.5v @OrIfPlain 2f } # between sub-subapps
- # @SectionInContents { Yes } # add sections to contents
- # @SubSectionInContents { Yes } # add subsections to contents
- # @SubSubSectionInContents { No } # add sub-subsects to contents
- # @AppendixInContents { Yes } # add appendices to contents
- # @SubAppendixInContents { Yes } # add subappendices to contents
- # @SubSubAppendixInContents { No } # add sub-subapps to contents
- # @ReferencesInContents { Yes } # add ref. section to contents
- # @IndexInContents { Yes } # add index to contents
- # @IndexAInContents { Yes } # add index A to contents
- # @IndexBInContents { Yes } # add index B to contents
- # @SectionContentsIndent { 0f } # contents indent of sections
- # @SubSectionContentsIndent { 3f } # contents indent of subsections
- # @SubSubSectionContentsIndent{ 6f } # contents indent of sub-subsections
- # @AppendixContentsIndent { 0f } # contents indent of appendices
- # @SubAppendixContentsIndent { 3f } # contents indent of sub-appendices
- # @SubSubAppendixContentsIndent { 6f } # contents indent of sub-subappendices
- # @ReferencesContentsIndent { 0f } # contents indent of references
- # @IndexContentsIndent { 0f } # contents indent of index
- # @IndexAContentsIndent { 0f } # contents indent of index A
- # @IndexBContentsIndent { 0f } # contents indent of index B
- # @SectionNumInTheorems { No } # theorem num has section num
- # @SubSectionNumInTheorems { No } # theorem num has subsect num
- # @SubSubSectionNumInTheorems { No } # theorem num has sub-ss. num
- # @AppendixNumInTheorems { No } # theorem num has appendix num
- # @SubAppendixNumInTheorems { No } # theorem num has sub-app num
- # @SubSubAppendixNumInTheorems{ No } # theorem num has sub-sa. num
- # @SectionNumInDisplays { Yes } # display num has section num
- # @SubSectionNumInDisplays { No } # display num has subsect num
- # @SubSubSectionNumInDisplays { No } # display num has sub-ss. num
- # @AppendixNumInDisplays { Yes } # display num has appendix num
- # @SubAppendixNumInDisplays { Yes } # display num has sub-app num
- # @SubSubAppendixNumInDisplays{ No } # display num has sub-sa. num
- # @SectionNumInFigures { No } # figure num has section num
- # @SubSectionNumInFigures { No } # figure num has subsect num
- # @SubSubSectionNumInFigures { No } # figure num has sub-ss. num
- # @AppendixNumInFigures { No } # figure num has appendix num
- # @SubAppendixNumInFigures { No } # figure num has sub-app num
- # @SubSubAppendixNumInFigures { No } # figure num has sub-sa. num
- # @SectionNumInTables { No } # table num has section num
- # @SubSectionNumInTables { No } # table num has subsect num
- # @SubSubSectionNumInTables { No } # table num has sub-ss. num
- # @AppendixNumInTables { No } # table num has appendix num
- # @SubAppendixNumInTables { No } # table num has sub-app num
- # @SubSubAppendixNumInTables { No } # table num has sub-sa. num
- # @SectionNumInFloaters { No } # floater num has section num
- # @SubSectionNumInFloaters { No } # floater num has subsect num
- # @SubSubSectionNumInFloaters { No } # floater num has sub-ss. num
- # @AppendixNumInFloaters { No } # floater num has appendix num
- # @SubAppendixNumInFloaters { No } # floater num has sub-app num
- # @SubSubAppendixNumInFloaters{ No } # floater num has sub-sa. num
- # @SectionNumInRunners { Yes } # runners have section num
- # @SubSectionNumInRunners { No } # runners have subsect num
- # @SubSubSectionNumInRunners { No } # runners have sub-ss. num
- # @AppendixNumInRunners { Yes } # runners have appendix num
- # @SubAppendixNumInRunners { No } # runners have sub-app num
- # @SubSubAppendixNumInRunners { No } # runners have sub-sa. num
- # @SectionPrefix { } # for structured page nums
- # @AppendixPrefix { } # for structured page nums
- # @ReferencesPrefix { } # for structured page nums
- # @IndexPrefix { } # for structured page nums
- # @IndexAPrefix { } # for structured page nums
- # @IndexBPrefix { } # for structured page nums
-}
-
-
-###############################################################################
-# #
-# @Database (and @SysDatabase) clauses go here. #
-# #
-###############################################################################
-
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/include/include/docf b/include/include/docf
deleted file mode 100644
index a1e64a8..0000000
--- a/include/include/docf
+++ /dev/null
@@ -1,845 +0,0 @@
-
-###########################################################################
-# #
-# @OrdinarySetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package extends DocumentSetup for ordinary documents. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @Doc @Document @Text
-def @OrdinarySetup
-
- named @IndexWord { index }
- named @IndexAWord { index }
- named @IndexBWord { index }
- named @AppendixWord { appendix }
-
- named @SectionNumbers { Arabic }
- named @FirstSectionNumber { 1 }
- named @SubSectionNumbers { Arabic }
- named @FirstSubSectionNumber { 1 }
- named @SubSubSectionNumbers { Arabic }
- named @FirstSubSubSectionNumber { 1 }
- named @AppendixNumbers { UCAlpha }
- named @FirstAppendixNumber { 1 }
- named @SubAppendixNumbers { Arabic }
- named @FirstSubAppendixNumber { 1 }
- named @SubSubAppendixNumbers { Arabic }
- named @FirstSubSubAppendixNumber { 1 }
-
- named @SectionHeadingFont { Bold }
- named @SectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SectionHeadingFormat
- left number right title { number @Sep title }
-
- named @SubSectionHeadingFont { Bold }
- named @SubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSectionHeadingFormat
- left number right title { number @Sep title }
-
- named @SubSubSectionHeadingFont { Slope }
- named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubSectionHeadingFormat
- left number right title { number @Sep title }
-
- named @AppendixHeadingFont { Bold }
- named @AppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @AppendixHeadingFormat
- left number right title { number @Sep title }
-
- named @SubAppendixHeadingFont { Bold }
- named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubAppendixHeadingFormat
- left number right title { number @Sep title }
-
- named @SubSubAppendixHeadingFont { Slope }
- named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubAppendixHeadingFormat
- left number right title { number @Sep title }
-
- named @ReferencesHeadingFont { Bold }
- named @ReferencesHeadingBreak { ragged 1.2fx nohyphen }
- named @ReferencesHeadingFormat
- right title { title }
-
- named @IndexHeadingFont { Bold }
- named @IndexHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexHeadingFormat
- right title { title }
-
- named @IndexAHeadingFont { Bold }
- named @IndexAHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexAHeadingFormat
- right title { title }
-
- named @IndexBHeadingFont { Bold }
- named @IndexBHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexBHeadingFormat
- right title { title }
-
- named @SectionGap { 2.0v @OrIfPlain 3f }
- named @SubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubSubSectionGap { 1.5v @OrIfPlain 2f }
- named @AppendixGap { 2.0v @OrIfPlain 3f }
- named @SubAppendixGap { 1.5v @OrIfPlain 2f }
- named @SubSubAppendixGap { 1.5v @OrIfPlain 2f }
-
- named @SectionInContents { Yes }
- named @SubSectionInContents { Yes }
- named @SubSubSectionInContents { No }
- named @AppendixInContents { Yes }
- named @SubAppendixInContents { Yes }
- named @SubSubAppendixInContents { No }
- named @ReferencesInContents { Yes }
- named @IndexInContents { Yes }
- named @IndexAInContents { Yes }
- named @IndexBInContents { Yes }
-
- named @SectionContentsIndent { 0f }
- named @SubSectionContentsIndent { 3f }
- named @SubSubSectionContentsIndent { 6f }
- named @AppendixContentsIndent { 0f }
- named @SubAppendixContentsIndent { 3f }
- named @SubSubAppendixContentsIndent { 6f }
- named @ReferencesContentsIndent { 0f }
- named @IndexContentsIndent { 0f }
- named @IndexAContentsIndent { 0f }
- named @IndexBContentsIndent { 0f }
-
- named @SectionNumInTheorems { No }
- named @SubSectionNumInTheorems { No }
- named @SubSubSectionNumInTheorems { No }
- named @AppendixNumInTheorems { No }
- named @SubAppendixNumInTheorems { No }
- named @SubSubAppendixNumInTheorems { No }
-
- named @SectionNumInDisplays { Yes }
- named @SubSectionNumInDisplays { No }
- named @SubSubSectionNumInDisplays { No }
- named @AppendixNumInDisplays { Yes }
- named @SubAppendixNumInDisplays { No }
- named @SubSubAppendixNumInDisplays { No }
-
- named @SectionNumInFigures { No }
- named @SubSectionNumInFigures { No }
- named @SubSubSectionNumInFigures { No }
- named @AppendixNumInFigures { No }
- named @SubAppendixNumInFigures { No }
- named @SubSubAppendixNumInFigures { No }
-
- named @SectionNumInTables { No }
- named @SubSectionNumInTables { No }
- named @SubSubSectionNumInTables { No }
- named @AppendixNumInTables { No }
- named @SubAppendixNumInTables { No }
- named @SubSubAppendixNumInTables { No }
-
- named @SectionNumInFloaters { No }
- named @SubSectionNumInFloaters { No }
- named @SubSubSectionNumInFloaters { No }
- named @AppendixNumInFloaters { No }
- named @SubAppendixNumInFloaters { No }
- named @SubSubAppendixNumInFloaters { No }
-
- named @SectionNumInRunners { Yes }
- named @SubSectionNumInRunners { No }
- named @SubSubSectionNumInRunners { No }
- named @AppendixNumInRunners { Yes }
- named @SubAppendixNumInRunners { No }
- named @SubSubAppendixNumInRunners { No }
-
- named @SectionPrefix { }
- named @AppendixPrefix { }
- named @ReferencesPrefix { }
- named @IndexPrefix { }
- named @IndexAPrefix { }
- named @IndexBPrefix { }
-@Begin
-
- #######################################################################
- # #
- # Lists of sections, sub(-sub)sections, appendices, etc. #
- # #
- #######################################################################
-
- def @TextPlace { @Galley }
-
- export num
- def @SectionList named @Tag {} right num
- {
- @Galley
- //@SectionGap @SectionList @Next num
- }
-
- export num
- def @SubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSectionGap @SubSectionList @Next num
- }
-
- export num
- def @SubSubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSubSectionGap @SubSubSectionList @Next num
- }
-
- export num
- def @AppendixList named @Tag {} right num
- {
- @Galley
- //@AppendixGap @AppendixList @Next num
- }
-
- export num
- def @SubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubAppendixGap @SubAppendixList @Next num
- }
-
- export num
- def @SubSubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubSubAppendixGap @SubSubAppendixList @Next num
- }
-
-
- #######################################################################
- # #
- # @SendFull - send full-width text. #
- # #
- #######################################################################
-
- def @SendFull force into { @FullPlace&&following }
- right x
- {
- x
- }
-
-
- #######################################################################
- # #
- # Document. #
- # #
- #######################################################################
-
- def @Document
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @PageOrientation { @PageOrientation }
- named @PageHeaders { @PageHeaders }
- named @ColumnNumber { @ColumnNumber }
- named @FirstPageNumber { @FirstPageNumber }
- named @OptimizePages { @OptimizePages }
- named @Unpaginated { No }
- named @IndexText { @IndexText }
- named @IndexAText { @IndexAText }
- named @IndexBText { @IndexBText }
- {
- def @ReferencesPart
- named @Tag {}
- {
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @RefHeading @RefListTitle }
- headingfont { @ReferencesHeadingFont }
- headingbreak { @ReferencesHeadingBreak }
- headingformat { @ReferencesHeadingFormat @Body }
- incontents { @ReferencesInContents }
- contentsindent { @ReferencesContentsIndent }
- pnprefix { @ReferencesPrefix }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { @RefHeading @RefListTitle }
- inrunners { Yes }
- sendheader { @Body }
- aboveheadinggap { 0f }
- { //@RefListGap @ReferencesSection }
-
- }
-
- def @IndexPart
- named @Tag {}
- {
-
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexWord }
- headingfont { @IndexHeadingFont }
- headingbreak { @IndexHeadingBreak }
- headingformat { @IndexHeadingFormat @Body }
- headingtext { @IndexText }
- incontents { @IndexInContents }
- contentsindent { @IndexContentsIndent }
- pnprefix { @IndexPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexWord }
- sendheader { @SendFull @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexSection @Run
-
- }
-
- def @IndexAPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexAWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexAPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexAWord }
- headingfont { @IndexAHeadingFont }
- headingbreak { @IndexAHeadingBreak }
- headingformat { @IndexAHeadingFormat @Body }
- headingtext { @IndexAText }
- incontents { @IndexAInContents }
- contentsindent { @IndexAContentsIndent }
- pnprefix { @IndexAPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexAWord }
- sendheader { @SendFull @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexASection @Run
-
- }
-
- def @IndexBPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexBWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexBPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexBWord }
- headingfont { @IndexBHeadingFont }
- headingbreak { @IndexBHeadingBreak }
- headingformat { @IndexBHeadingFormat @Body }
- headingtext { @IndexBText }
- incontents { @IndexBInContents }
- contentsindent { @IndexBContentsIndent }
- pnprefix { @IndexBPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexBWord }
- sendheader { @SendFull @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexBSection @Run
-
- }
-
- def @DocumentBody force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- # this whole comment is now obsolete:
- # It's important that the first component of @DocumentBody be
- # indefinite. If it was definite, then @DocumentBody would
- # attach immediately to the first page. This would prevent
- # @FullWidth from attaching to that page, with the result that
- # a document starting with @FullWidth would start on page 2!
-
- // @FootNoteThrough @Do @BeginFootNoteCounter
- // @TextPlace
- //@SectionGap @EndFigureList
- //@SectionGap @EndNoteList 1
- //@SectionGap @MakeReferences @Do @ReferencesPart
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndex @Do @IndexPart
- // NonStart @Runner
- }
-
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- {
- Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginTableCounter {}
- // Yes @BeginFloaterCounter {}
- // @BackEnd @Case {
-
- PlainText @Yield {
- @Unpaginated @Case {
-
- { Yes yes } @Yield {
- @ContinuousPageList
- @Orient { @PageOrientation }
- }
-
- { No no } @Yield {
- @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- extra { Yes }
- @FirstPageNumber
- }
- }
- }
-
- else @Yield {
- @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- extra { Yes }
- @FirstPageNumber
- }
- }
- // @DocumentBody
- }
- }
-
- macro @Doc { @Document // }
-
-
- #######################################################################
- # #
- # @Text containing sections, appendices, etc. #
- # #
- #######################################################################
-
- export @ContentsGoesHere @FullWidth
- @BeginSections @EndSections @Section
- @BeginAppendices @EndAppendices @Appendix
- def @Text force into { @TextPlace&&preceding }
- body @Body
- {
-
- def @ContentsGoesHere { @ContentsSection }
-
- export @ContentsGoesHere
- def @FullWidth body @Body
- {
- def @ContentsGoesHere {}
-
- @SendFull { Start @Runner // @Body }
- & NonStart @Runner & &2.1b &
- }
-
- def @EndSectionsPlace { @Galley }
-
- def @EndSections force into { @EndSectionsPlace&&preceding }
- {}
-
- macro @BeginSections
- { //@SectionGap @SectionList @FirstSectionNumber
- // @EndSectionsPlace //
- }
-
- export @BeginSubSections @EndSubSections @SubSection @Title
- def @Section force into { @SectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSectionsPlace { @Galley }
-
- def @EndSubSections force into { @EndSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSections
- { //@SubSectionGap @SubSectionList @FirstSubSectionNumber
- // @EndSubSectionsPlace //
- }
-
- def @SectionShortNum
- {
- @SectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionNumbers @Num @SectionList&&@Tag @Open { num }
- }
- }
- }
-
- export @BeginSubSubSections @EndSubSubSections @SubSubSection
- def @SubSection force into { @SubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubSectionsPlace { @Galley }
-
- def @EndSubSubSections force into
- { @EndSubSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSubSections
- { //@SubSubSectionGap
- @SubSubSectionList @FirstSubSubSectionNumber
- // @EndSubSubSectionsPlace //
- }
-
- def @SubSectionShortNum
- {
- @SubSectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionShortNum @Join @SubSectionNumbers @Num
- { @SubSectionList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubSection force into { @SubSubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubSectionHeadingFont }
- headingbreak { @SubSubSectionHeadingBreak }
- headingformat { @Num @SubSubSectionHeadingFormat @Body }
- incontents { @SubSubSectionInContents }
- contentsindent { @SubSubSectionContentsIndent }
- numbers { @SubSubSectionNumbers }
- attachnum { @SubSubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubSectionShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSubSectionNumInTheorems }
- indisplays { @SubSubSectionNumInDisplays }
- infigures { @SubSubSectionNumInFigures }
- intables { @SubSubSectionNumInTables }
- infloaters { @SubSubSectionNumInFloaters }
- inrunners { @SubSubSectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSectionHeadingFont }
- headingbreak { @SubSectionHeadingBreak }
- headingformat { @Num @SubSectionHeadingFormat @Body }
- incontents { @SubSectionInContents }
- contentsindent { @SubSectionContentsIndent }
- numbers { @SubSectionNumbers }
- attachnum { @SubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SectionShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSectionNumInTheorems }
- indisplays { @SubSectionNumInDisplays }
- infigures { @SubSectionNumInFigures }
- intables { @SubSectionNumInTables }
- infloaters { @SubSectionNumInFloaters }
- inrunners { @SubSectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SectionHeadingFont }
- headingbreak { @SectionHeadingBreak }
- headingformat { @Num @SectionHeadingFormat @Body }
- incontents { @SectionInContents }
- contentsindent { @SectionContentsIndent }
- numbers { @SectionNumbers }
- attachnum { @SectionList&&preceding @Tagged @Tag }
- retrievenum { @SectionList&&@Tag @Open { num } }
- pnprefix { @SectionPrefix }
- majornum {}
- majortitle {}
- bypassnumber { @BypassNumber }
- intheorems { @SectionNumInTheorems }
- indisplays { @SectionNumInDisplays }
- infigures { @SectionNumInFigures }
- intables { @SectionNumInTables }
- infloaters { @SectionNumInFloaters }
- inrunners { @SectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- def @EndAppendicesPlace { @Galley }
-
- def @EndAppendices force into { @EndAppendicesPlace&&preceding }
- {}
-
- macro @BeginAppendices
- { //@AppendixGap @AppendixList @FirstAppendixNumber
- // @EndAppendicesPlace //
- }
-
- export @BeginSubAppendices @EndSubAppendices @SubAppendix
- def @Appendix force into { @AppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubAppendicesPlace { @Galley }
-
- def @EndSubAppendices force into
- { @EndSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubAppendices
- { //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber
- // @EndSubAppendicesPlace //
- }
-
- def @AppendixShortNum
- {
- @AppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixNumbers @Num @AppendixList&&@Tag @Open { num }
- }
- }
- }
-
- export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix
- def @SubAppendix force into { @SubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubAppendicesPlace { @Galley }
-
- def @EndSubSubAppendices force into
- { @EndSubSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubSubAppendices
- { //@SubSubAppendixGap
- @SubSubAppendixList @FirstSubSubAppendixNumber
- // @EndSubSubAppendicesPlace //
- }
-
- def @SubAppendixShortNum
- {
- @SubAppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixShortNum @Join @SubAppendixNumbers @Num
- { @SubAppendixList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubAppendix force into {@SubSubAppendixList&&preceding}
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubAppendixHeadingFont }
- headingbreak { @SubSubAppendixHeadingBreak }
- headingformat { @Num @SubSubAppendixHeadingFormat @Body }
- incontents { @SubSubAppendixInContents }
- contentsindent { @SubSubAppendixContentsIndent }
- numbers { @SubSubAppendixNumbers }
- attachnum { @SubSubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubSubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubAppendixShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSubAppendixNumInTheorems }
- indisplays { @SubSubAppendixNumInDisplays }
- infigures { @SubSubAppendixNumInFigures }
- intables { @SubSubAppendixNumInTables }
- infloaters { @SubSubAppendixNumInFloaters }
- inrunners { @SubSubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubAppendixHeadingFont }
- headingbreak { @SubAppendixHeadingBreak }
- headingformat { @Num @SubAppendixHeadingFormat @Body }
- incontents { @SubAppendixInContents }
- contentsindent { @SubAppendixContentsIndent }
- numbers { @SubAppendixNumbers }
- attachnum { @SubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @AppendixShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubAppendixNumInTheorems }
- indisplays { @SubAppendixNumInDisplays }
- infigures { @SubAppendixNumInFigures }
- intables { @SubAppendixNumInTables }
- infloaters { @SubAppendixNumInFloaters }
- inrunners { @SubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @AppendixHeadingFont }
- headingbreak { @AppendixHeadingBreak }
- headingformat { @Num @AppendixHeadingFormat @Body }
- incontents { @AppendixInContents }
- contentsindent { @AppendixContentsIndent }
- word { appendix @WordVal @AppendixWord }
- numbers { @AppendixNumbers }
- attachnum { @AppendixList&&preceding @Tagged @Tag }
- retrievenum { @AppendixList&&@Tag @Open { num } }
- pnprefix { @AppendixPrefix }
- majornum {}
- majortitle {}
- bypassnumber { @BypassNumber }
- intheorems { @AppendixNumInTheorems }
- indisplays { @AppendixNumInDisplays }
- infigures { @AppendixNumInFigures }
- intables { @AppendixNumInTables }
- infloaters { @AppendixNumInFloaters }
- inrunners { Yes }
- newpage { @NewPage }
- @Body
-
- }
-
- //1.1f
- // Start @Runner
- // @Body
- // NonStart @Runner
-
- }
-
-@End @OrdinarySetup
diff --git a/include/include/dsf b/include/include/dsf
deleted file mode 100644
index 96e115e..0000000
--- a/include/include/dsf
+++ /dev/null
@@ -1,5426 +0,0 @@
-###############################################################################
-# #
-# Lout @DocumentSetup package #
-# #
-# Version 1.0 by Jeffrey H. Kingston, 17 July 1991. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Version 3.0 by Jeffrey H. Kingston, 19 April 1994. #
-# Version 3.03 by Jeffrey H. Kingston, 6 May 1995. #
-# Versions 3.04 and 3.05 by Jeffrey H. Kingston, 11 June 1995. #
-# Version 3.05 by Jeffrey H. Kingston, 25 July 1995. #
-# Version 3.07 by Jeffrey H. Kingston, February 1996. #
-# Version 3.10 by Jeffrey H. Kingston, September 1996. #
-# Version 3.11 by Jeffrey H. Kingston, December 1996. #
-# Version 3.13 by Jeffrey H. Kingston, October 1998. #
-# Version 3.16 by Jeffrey H. Kingston, May 1999. #
-# Version 3.17 by Jeffrey H. Kingston, September 1999. #
-# Version 3.21 by Jeffrey H. Kingston, May 2000. #
-# Minor changes in later versions undated. #
-# #
-# This Lout package contains the general definitions used by all types of #
-# documents. It needs to be extended (see docf, reportf, bookf, slidesf, #
-# etc.) with definitions for particular document types. Consult "A User's #
-# Guide to the Lout Document Formatting System" for user information. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-extend @BasicSetup
-
-export
-
- @Runner
-
- @Figure @Table @Floater
- @FootNote @AnotherFootNote @EndNote
- @LeftNote @RightNote @OuterNote @InnerNote # @Place
- @Theorem @Proof @EndProof
- @Definition @Claim @Proposition @Lemma @Corollary @Example
- @Reference @RefStyle @RefPrint
- @Ref @NoRef @ChapRef @NoChapRef
- @Cite @NoCite @ChapCite @NoChapCite
-
- @Glossary @InGlossary
-
- @IndexA @SubIndexA @SubSubIndexA
- @RawIndexA @RawSubIndexA @RawSubSubIndexA
- @IndexABlanks @IndexASpacer @InitialIndexASpacer @IndexALetters
-
- @IndexB @SubIndexB @SubSubIndexB
- @RawIndexB @RawSubIndexB @RawSubSubIndexB
- @IndexBBlanks @IndexBSpacer @InitialIndexBSpacer @IndexBLetters
-
- @Index @SubIndex @SubSubIndex
- @RawIndex @RawSubIndex @RawSubSubIndex
- @IndexBlanks @IndexSpacer @InitialIndexSpacer @IndexLetters
-
- @BypassContentsEntry @BypassMajorContentsEntry
- @BypassFigureContentsEntry @BypassTableContentsEntry @BypassFloaterContentsEntry
- @BypassReference @BypassChapReference
- @BypassBeginIndex @BypassRawIndex @BypassEndIndex
- @BypassBeginIndexA @BypassRawIndexA @BypassEndIndexA
- @BypassBeginIndexB @BypassRawIndexB @BypassEndIndexB
-
-
-def @DocumentSetup
- named @PageType { A4 @OrIfPlain Other} # page type (width, height)
- named @PageWidth { 80s } # page width if type Other
- named @PageHeight { 66f } # page height if type Other
- named @PageOrientation { Portrait } # Portrait, Landscape, etc.
- named @PageBackground { } # background of each page
- named @TopMargin { 2.50c @OrIfPlain 6f } # top margin of all pages
- named @FootMargin { 2.50c @OrIfPlain 6f } # bottom margin of all pages
- named @OddLeftMargin { 2.50c @OrIfPlain 10s } # left margin of odd pages
- named @OddRightMargin { 2.50c @OrIfPlain 10s } # right margin of odd pages
- named @EvenLeftMargin { 2.50c @OrIfPlain 10s } # left margin of even pages
- named @EvenRightMargin { 2.50c @OrIfPlain 10s } # right margin of even pages
- named @OddLeftBodyMargin { 0c } # extra margin for page body
- named @OddRightBodyMargin { 0c } # extra margin for page body
- named @EvenLeftBodyMargin { 0c } # extra margin for page body
- named @EvenRightBodyMargin { 0c } # extra margin for page body
- named @PageBoxType { None } # None Box CurveBox ShadowBox
- named @PageBoxMargin { 1.00c } # page box margin
- import @PSLengths named @PageBoxLineWidth
- { } # page box line thickness
- named @PageBoxPaint { none } # page box paint
- named @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- named @PageEnclose right @Body { @Body } # page enclose
- named @ColumnNumber { 1 } # number of columns (1 to 10)
- named @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- named @FigureLocation { PageTop } # default figure location
- named @FigureFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @CC @Body } # default figure format
- named @FigureWord { figure } # "Figure" word else anything
- named @FigureNumbers { Arabic } # method of numbering figures
- named @FigureCaptionPos { Below } # Above or Below
- named @FigureCaptionFont { -2p } # figure caption font
- named @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- named @FigureCaptionFormat named word {} named number {} named caption {}
- { {@B { word @NumSep number. &2s }} @Insert caption }
- named @MakeFigureContents { No } # list of figures at start
-
- named @TableLocation { PageTop } # default table location
- named @TableFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @CC @Body } # default table format
- named @TableWord { table } # "Table" word else anything
- named @TableNumbers { Arabic } # method of numbering tables
- named @TableCaptionPos { Below } # Above or Below
- named @TableCaptionFont { -2p } # figure caption font
- named @TableCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- named @TableCaptionFormat named word {} named number {} named caption {}
- { {@B { word @NumSep number. &2s }} @Insert caption }
- named @MakeTableContents { No } # list of tables at start
-
- named @FloaterLocation { PageTop } # default floater location
- named @FloaterFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @CC @Body } # default floater format
- named @FloaterWord { floater } # "Floater" word else anything
- named @FloaterNumbers { Arabic } # method of numbering floaters
- named @FloaterCaptionPos { Below } # Above or Below
- named @FloaterCaptionFont { -2p } # figure caption font
- named @FloaterCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- named @FloaterCaptionFormat named word {} named number {} named caption {}
- { {@B { word @NumSep number. &2s }} @Insert caption }
- named @MakeFloaterContents { No } # list of floaters at start
-
- named @MakeContents { No } # make contents? Yes or No
- named @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- named @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- named @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- named @ContentsFont { Bold } # font for major entry
- named @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above part entry
- named @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below part entry
- named @ContentsFormat
- left number
- right title
- { number @Sep title } # contents format
- named @ContentsLeader { .. } # leader symbol in contents
- named @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- named @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- named @MakeReferences { Yes } # make references? Yes or No
- named @RefCiteStyle right cite { [cite] } # citation style
- named @RefCiteLabels
- named @RefNum {}
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- { @RefNum } # citation items
- named @RefNumbers { Arabic } # reference numbers
-
- named @RefListFormat { Labels } # NoLabels, Labels,
- # DropLabels, IntegrateLabels
- named @RefListLabels
- named @RefNum {}
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- { [@RefNum] } # ref list label format
- named @RefListTitle { references } # title of reference list
- named @ChapRefListTitle { references } # title of chapter ref list
- named @RefListIndent { 0s } # indent to left of labels
- named @RefListRightIndent { 0s } # indent to right of items
- named @RefListGap { @ListGap } # gap between ref list items
- named @RefListFont { } # font used in reference list
- named @RefListBreak { } # break style of ref list
- named @RefListLabelWidth { @ListLabelWidth } # numeric labels column width
- named @RefListSortKey
- named @Tag {}
- named @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @CiteOrder {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @Volume {}
- named @Year {}
- named ":" { "\037" }
- { @Tag } # sorting key
-
- named @MakeGlossary { No } # make glossary? Yes or No
- named @GlossaryText { @Null } # initial glossary text
- named @GlossaryFont { } # font for glossary
- named @GlossaryBreak { } # break style for glossary
- named @GlossaryFormat # format for glossary
- named @Name {}
- named @PageNum {}
- named @Body {}
- { +3p @Font @S @Name
- @Right @I { @Word&&page @PageNum }
- @DP @RawIndentedDisplay @Body }
- named @GlossaryGap { @DisplayGap } # gap between glossary items
- named @GlossaryColumnNumber { 2 } # glossary columns (1 to 10)
- named @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- named @InGlossaryFont { smallcaps } # font for @InGlossary
- named @InGlossaryFormat right @Body { @Body } # format for @InGlossary
-
- named @MakeIndex { No } # make index? Yes or No
- named @IndexText { @Null } # initial index text
- named @IndexFont { } # index entries font
- named @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index entries break
- named @IndexFormat
- right @Body { @Body } # @Index format
- named @SubIndexFormat
- right @Body { {1f @Wide}@Body } # @SubIndex format
- named @SubSubIndexFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndex format
- named @IndexTypeOrdinary
- right @PageNum { @PageNum } # ordinary page numbers
- named @IndexTypeMain
- right @PageNum { @B @PageNum } # main page numbers
- named @IndexTypeSpecial
- right @PageNum { @I @PageNum } # special page numbers
- named @IndexRangeFormat
- left @From
- right @To { @From--@To }
- named @IndexColumnNumber { 2 } # index columns (1 to 10)
- named @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- named @IndexCtd { Yes } # include (ctd.) lines
- named @IndexCtdWord { continued } # "ctd." in current lang
- named @IndexCtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexSpacerAbove { 2v } # space above index spacer
- named @IndexSpacerBelow { 1v } # space below index spacer
- named @IndexSpacerFont { +3p } # font of index spacer
- named @IndexSpacerFormat
- right @Body { @Body } # format of index spacer
-
- named @MakeIndexA { No } # make index A? Yes or No
- named @IndexAText { @Null } # initial index text
- named @IndexAFont { } # index A entries font
- named @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index A entries break
- named @IndexAFormat
- right @Body { @Body } # @IndexA format
- named @SubIndexAFormat
- right @Body { {1f @Wide}@Body } # @SubIndexA format
- named @SubSubIndexAFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndexA format
- named @IndexATypeOrdinary
- right @PageNum { @PageNum } # ordinary page numbers
- named @IndexATypeMain
- right @PageNum { @B @PageNum } # main page numbers
- named @IndexATypeSpecial
- right @PageNum { @I @PageNum } # special page numbers
- named @IndexARangeFormat
- left @From
- right @To { @From--@To }
- named @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- named @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- named @IndexACtd { Yes } # include (ctd.) lines
- named @IndexACtdWord { continued } # "ctd." in current lang
- named @IndexACtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexASpacerAbove { 2v } # space above index A spacer
- named @IndexASpacerBelow { 1v } # space below index A spacer
- named @IndexASpacerFont { +3p } # font of index A spacer
- named @IndexASpacerFormat
- right @Body { @Body } # format of index A spacer
-
- named @MakeIndexB { No } # make index B? Yes or No
- named @IndexBText { @Null } # initial index text
- named @IndexBFont { } # index B entries font
- named @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # index B entries break
- named @IndexBFormat
- right @Body { @Body } # @IndexB format
- named @SubIndexBFormat
- right @Body { {1f @Wide}@Body } # @SubIndexB format
- named @SubSubIndexBFormat
- right @Body { {2f @Wide}@Body } # @SubSubIndexB format
- named @IndexBTypeOrdinary
- right @PageNum { @PageNum } # ordinary page numbers
- named @IndexBTypeMain
- right @PageNum { @B @PageNum } # main page numbers
- named @IndexBTypeSpecial
- right @PageNum { @I @PageNum } # special page numbers
- named @IndexBRangeFormat
- left @From
- right @To { @From--@To }
- named @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- named @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- named @IndexBCtd { Yes } # include (ctd.) lines
- named @IndexBCtdWord { continued } # "ctd." in current lang
- named @IndexBCtdFormat
- left @Body
- right @CtdWord
- { @Body @I (@CtdWord) } # (ctd.) format
- named @IndexBSpacerAbove { 2v } # space above index B spacer
- named @IndexBSpacerBelow { 1v } # space below index B spacer
- named @IndexBSpacerFont { +3p } # font of index B spacer
- named @IndexBSpacerFormat
- right @Body { @Body } # format of index B spacer
-
- named @MakeColophon { No } # make colophon? Yes or No
- named @ColophonFont { } # font for colophon
- named @ColophonBreak { } # break style for colophon
- named @ColophonColumnNumber { 1 } # colophon columns (1 to 10)
- named @ColophonColumnGap { 1.00c @OrIfPlain 6s } # colophon column gap
-
- named @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- named @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- named @FootNoteNumbers { Arabic } # footnote numbers
- named @FootNoteThrough { No } # numbered through chapter?
- named @FootNoteLocation { ColFoot } # where the footnote appears
- named @FootNoteFont { 0.80f } # font for footnotes
- named @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- named @FootNoteFormat left number right body
- { { number &0.05f } @Insert body } # break for footnotes
- named @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- named @FootAboveGap { @DisplayGap } # gap above footnote line
- named @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
-
- named @MarginNoteFont { 0.80f } # font of margin notes
- named @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- named @MarginNoteHGap { 0.5c } # horizontal gap to notes
- named @MarginNoteVGap { @DisplayGap } # min vertical gap between
- named @MarginNoteWidth { 1.50c } # width of margin notes
-
- named @EndNoteNumbers { Arabic } # endnote numbers
- named @EndNoteFont { 0.80f } # font of endnotes
- named @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- named @EndNoteFormat left number right body
- { { number &0.05f } @Insert body } # break for endnotes
- named @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- named @TheoremWord { theorem } # "Theorem" word, etc.
- named @TheoremTitleFormat right title
- { (title) } # Theorem title format if present
- named @TheoremFormat named word {} named number {} named title {} named body {} # theorem format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @DefinitionWord { definition } # "Definition" word, etc.
- named @DefinitionTitleFormat right title
- { (title) } # Definition title format if present
- named @DefinitionFormat named word {} named number {} named title {} named body {} # definition format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ClaimWord { claim } # "Claim" word, etc.
- named @ClaimTitleFormat right title
- { (title) } # Claim title format if present
- named @ClaimFormat named word {} named number {} named title {} named body {} # claim format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @PropositionWord { proposition } # "Proposition" word, etc.
- named @PropositionTitleFormat right title
- { (title) } # Proposition title format if present
- named @PropositionFormat named word {} named number {} named title {} named body {} # proposition format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @LemmaWord { lemma } # "Lemma" word, etc.
- named @LemmaTitleFormat right title
- { (title) } # Lemma title format if present
- named @LemmaFormat named word {} named number {} named title {} named body {} # lemma format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @CorollaryWord { corollary } # "Corollary" word, etc.
- named @CorollaryTitleFormat right title
- { (title) } # Corollary title format if present
- named @CorollaryFormat named word {} named number {} named title {} named body {} # corollary format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ExampleWord { example } # "Example" word, etc.
- named @ExampleTitleFormat right title
- { (title) } # Example title format if present
- named @ExampleFormat named word {} named number {} named title {} named body {} # example format
- { { @B { word @NumSep number title: } &2s } @Insert body }
- named @ProofWord { proof } # "Proof" word, etc.
-
- named @PageHeaders { Simple } # None Simple Titles NoTitles
- named @PageNumbers { Arabic } # page numbers
- named @FirstPageNumber { 1 } # number of first page
- named @IntroPageNumbers { Roman } # intro page numbers
- named @IntroFirstPageNumber { 1 } # number of first intro page
- named @StructPageNums { No } # structured page numbers
- named @PageNumberFormat right number { number } # format of page numbers
-
- named @OddTop right @PageNum { @Centre { - @PageNum - } }
- named @OddFoot right @PageNum { @Null }
- named @EvenTop right @PageNum { @Centre { - @PageNum - } }
- named @EvenFoot right @PageNum { @Null }
- named @StartOddTop right @PageNum { @Null }
- named @StartOddFoot right @PageNum { @Null }
- named @StartEvenTop right @PageNum { @Null }
- named @StartEvenFoot right @PageNum { @Null }
-
- named @IntroOddTop right @PageNum { @Null }
- named @IntroOddFoot right @PageNum { @Centre @PageNum }
- named @IntroEvenTop right @PageNum { @Null }
- named @IntroEvenFoot right @PageNum { @Centre @PageNum }
- named @IntroStartOddTop right @PageNum { @Null }
- named @IntroStartOddFoot right @PageNum { @Null }
- named @IntroStartEvenTop right @PageNum { @Null }
- named @IntroStartEvenFoot right @PageNum { @Null }
-
- named @RunningOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @I { @MinorNum @Sep @MinorTitle } @Right @B @PageNum }
-
- named @RunningOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @B @PageNum @Right @I { @MajorNum @Sep @MajorTitle } }
-
- named @RunningEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Centre { Bold 0.8f } @Font @PageNum }
-
- named @RunningStartEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningStartEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Centre { Bold 0.8f } @Font @PageNum }
-
-
- named @RunningIntroOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Right @PageNum }
-
- named @RunningIntroEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @PageNum }
-
- named @RunningIntroStartOddTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartOddFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartEvenTop
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
- named @RunningIntroStartEvenFoot
- named @MajorNum {} named @MajorTitle {}
- named @MinorNum {} named @MinorTitle {} right @PageNum
- { @Null }
-
-
-@Begin
-
-
- ###########################################################################
- # #
- # @Protect x #
- # #
- # Like @CNP, this reserves space on the current page or else makes sure #
- # x appears on the following page. #
- # #
- # Prior to Version 3.31 the amount of lookahead was just 3.0f. But #
- # in Version 3.31, following a suggestion of Ludovic Courtes, this #
- # was changed to @OneRow { 1.0f @High @LP 2.0v @High }, which #
- # approximates the height of a title line, a paragraph separator, and #
- # the first two lines of the section, and so works somewhat better. #
- # #
- ###########################################################################
-
- def @Protect right x { @OneRow { 1.0f @High @LP 2.0v @High } //0io // x }
-
-
- ###########################################################################
- # #
- # @HLine #
- # #
- # Draws a horizontal line to fill available space. #
- # #
- ###########################################################################
-
- def @HLine
- {
- @BackEnd @Case {
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- PostScript @Yield { {0 0 moveto xsize 0 lineto stroke} @Graphic {} }
- PDF @Yield { {0 0 m __xsize 0 l S} @Graphic {} }
- }
- }
-
-
- ###########################################################################
- # #
- # x @WordVal y #
- # #
- # Returns @Word&&x if x == y, otherwise y. #
- # #
- ###########################################################################
-
- def @WordVal
- left x
- right y
- {
- y @Case {
- x @Yield @Word&&x
- else @Yield y
- }
- }
-
- ###########################################################################
- # #
- # x @Dft y #
- # #
- # This returns x unless its value is "dft", in which case it returns y. #
- # Useful for defaulting the value of one parameter to another. #
- # #
- ###########################################################################
-
- def @Dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # x @Do y #
- # #
- # This returns @Null if x is No or None, otherwise y. #
- # #
- ###########################################################################
-
- def @Do
- left x
- right y
- {
- x @Case {
- { No None } @Yield @Null
- else @Yield y
- }
- }
-
-
- ###########################################################################
- # #
- # x @NoDo y #
- # #
- # Negation of @Do: This returns y if x is No or None, otherwise @Null. #
- # #
- ###########################################################################
-
- def @NoDo
- left x
- right y
- {
- x @Case {
- { No None } @Yield y
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # x @Then y #
- # #
- # This returns the empty object if x is No or None, otherwise y. #
- # #
- ###########################################################################
-
- def @Then
- left x
- right y
- {
- x @Case {
- { No None } @Yield {}
- else @Yield y
- }
- }
-
-
- ###########################################################################
- # #
- # x @NoThen y #
- # #
- # Negation of @Then: returns y if x is No or None, otherwise empty. #
- # #
- ###########################################################################
-
- def @NoThen
- left x
- right y
- {
- x @Case {
- { No None } @Yield y
- else @Yield {}
- }
- }
-
-
- ###########################################################################
- # #
- # Number markers. #
- # #
- ###########################################################################
-
- def @Num
- left numtype
- right num
- {
- numtype @Case {
- None @Yield {}
- Arabic @Yield num
- Roman @Yield @Roman&&num
- UCRoman @Yield @UCRoman&&num
- Alpha @Yield @Alpha&&num
- UCAlpha @Yield @UCAlpha&&num
- Bullets @Yield @FnBullets&&num
- Symbols @Yield @FnSymbols&&num
- }
- }
-
-
- ###########################################################################
- # #
- # @MakePageNum #
- # #
- # Make a page number. #
- # #
- ###########################################################################
-
- def @MakePageNum
- named numbers {}
- named rawnum {}
- named prefix {}
- named owner {}
- {
- def @OwnerNum { @PageMarker&&owner @Open { rawnum } }
-
- def @StructNum { @FirstPageNumber @Plus rawnum @Minus @OwnerNum }
-
- @PageHeaders.@StructPageNums @Case {
- { Titles.Yes NoTitles.Yes } @Yield {
- prefix @Join @PageNumberFormat { numbers @Num @StructNum } }
- else @Yield @PageNumberFormat { numbers @Num rawnum }
- }
- }
-
-
- ###########################################################################
- # #
- # Page size, margins, and boxes. This code culminates in @OddPage x #
- # and @EvenPage x, which produce one odd or even page containing x. #
- # #
- ###########################################################################
-
- def @Width
- {
- @PageType @Case {
- Letter @Yield 612p
- Tabloid @Yield 792p
- Ledger @Yield 1224p
- Legal @Yield 612p
- Statement @Yield 396p
- Executive @Yield 540p
- A0 @Yield 2380p
- A1 @Yield 1684p
- A2 @Yield 1190p
- A3 @Yield 842p
- A4 @Yield 595p
- A5 @Yield 420p
- ISOB4 @Yield 709p
- ISOB5 @Yield 499p
- JISB4 @Yield 729p
- JISB5 @Yield 516p
- B4 @Yield 729p
- B5 @Yield 516p
- Folio @Yield 612p
- Quarto @Yield 610p
- 10x14 @Yield 720p
- Other @Yield @PageWidth
- }
- }
-
- def @Height
- {
- @PageType @Case {
- Letter @Yield 792p
- Tabloid @Yield 1224p
- Ledger @Yield 792p
- Legal @Yield 1008p
- Statement @Yield 612p
- Executive @Yield 720p
- A0 @Yield 3368p
- A1 @Yield 2380p
- A2 @Yield 1684p
- A3 @Yield 1190p
- A4 @Yield 842p
- A5 @Yield 595p
- ISOB4 @Yield 1001p
- ISOB5 @Yield 709p
- JISB4 @Yield 1032p
- JISB5 @Yield 729p
- B4 @Yield 1032p
- B5 @Yield 729p
- Folio @Yield 936p
- Quarto @Yield 780p
- 10x14 @Yield 1008p
- Other @Yield @PageHeight
- }
- }
-
- def @OrientedWidth right @Orient
- {
- @Orient @Case {
- { Portrait ReversePortrait } @Yield @Width
- { Landscape ReverseLandscape } @Yield @Height
- }
- }
-
- def @OrientedHeight right @Orient
- {
- @Orient @Case {
- { Portrait ReversePortrait } @Yield @Height
- { Landscape ReverseLandscape } @Yield @Width
- }
- }
-
- def @OrientationAngle right @Orient
- {
- @Orient @Case {
- Portrait @Yield 0d
- Landscape @Yield 90d
- ReversePortrait @Yield 180d
- ReverseLandscape @Yield 270d
- }
- }
-
- def @PageBox right x
- {
- @PageBoxType @Case {
- None @Yield x
- Box @Yield @Box
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth } x
- CurveBox @Yield @CurveBox
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth } x
- ShadowBox @Yield @ShadowBox
- margin { @PageBoxMargin }
- paint { @PageBoxPaint }
- linewidth { @PageBoxLineWidth }
- shadow { @PageBoxShadow } x
- }
- }
-
- def @PageSet right x
- {
-# "LoutPageSet" @Graphic # VT: case PDF produces nothing
- { @BackEnd @Case {
- PostScript @Yield "LoutPageSet"
- else @Yield "% @DoBackground/LoutPageSet UNIMPLEMENTED"
- }
- } @Graphic x
- }
-
- def @ColouriseBackground left color right x
- {
- color @Colour
- @Box margin { 0c } paint { color } linewidth { 0c }
- @InitialColour @Colour x
- }
-
- def @MargSet
- left parity
- right x
- {
-# { parity "LoutMargSet" } @Graphic x # VT: case PDF produces nothing
- { @BackEnd @Case {
- PostScript @Yield { parity "LoutMargSet" }
- else @Yield "% @MargSet/LoutMargSet UNIMPLEMENTED"
- }
- } @Graphic x
- }
-
- def @OddPage
- left extra
- named @Orient {}
- right x
- {
- @PageSet
- @InitialBackgroundColour @ColouriseBackground
- { @OrientationAngle @Orient } @Rotate
- { @OrientedWidth @Orient } @Wide { @OrientedHeight @Orient } @High
- { //@TopMargin ||@OddLeftMargin
- { // || @PageBackground } @Background
- # 1 @MargSet
- @PageEnclose @PageBox @HExpand { extra // @VExpand x }
- ||@OddRightMargin //@FootMargin
- }
- }
-
- def @EvenPage
- left extra
- named @Orient {}
- right x
- {
- @PageSet
- @InitialBackgroundColour @ColouriseBackground
- { @OrientationAngle @Orient } @Rotate
- { @OrientedWidth @Orient } @Wide { @OrientedHeight @Orient } @High
- { //@TopMargin ||@EvenLeftMargin
- { // || @PageBackground } @Background
- # 0 @MargSet
- @PageEnclose @PageBox @HExpand { extra // @VExpand x }
- ||@EvenRightMargin //@FootMargin
- }
- }
-
-
- ###########################################################################
- # #
- # Definitions for page headers and footers. There are 16 symbols here, #
- # in the following arrangement: #
- # #
- # @(- | Running)(- | Intro)(Odd | Even)(Top | Foot)Header #
- # #
- # Running means that running headers are to be used. #
- # Intro means that the header is destined for an introductory page. #
- # Odd or Even means whether the page number will be odd or even. #
- # Top or Foot means whether the header is for the top or foot of page. #
- # #
- ###########################################################################
-
- export @Start @MajorNum @MajorTitle @MinorNum @MinorTitle @Owner @Prefix
- def @Runner
- left @Start
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- named @Owner {}
- named @Prefix {}
- named @Tag {}
- {
- @Null
- # red @Colour "(@Runner:"@Start":"@MajorTitle":"@MinorTitle")"
- }
-
- def @DupRunner # duplicate previous runner
- {
- @Runner&&preceding @Open {
- NonStart @Runner
- @MajorNum { @MajorNum }
- @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum }
- @MinorTitle { @MinorTitle }
- @Owner { @Owner }
- @Prefix { @Prefix }
- }
- }
-
- def @OddTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartOddTop @PageNum
- Simple.NonStart @Yield @OddTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @OddFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartOddFoot @PageNum
- Simple.NonStart @Yield @OddFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @EvenTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartEvenTop @PageNum
- Simple.NonStart @Yield @EvenTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @EvenFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @StartEvenFoot @PageNum
- Simple.NonStart @Yield @EvenFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroOddTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartOddTop @PageNum
- Simple.NonStart @Yield @IntroOddTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroOddFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartOddFoot @PageNum
- Simple.NonStart @Yield @IntroOddFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroEvenTopHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartEvenTop @PageNum
- Simple.NonStart @Yield @IntroEvenTop @PageNum
- Simple.None @Yield @Null
- }
- }
-
- def @IntroEvenFootHeader
- left @PageHeadersAndStart
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- None.Start @Yield @Null
- None.NonStart @Yield @Null
- None.None @Yield @Null
- Simple.Start @Yield @IntroStartEvenFoot @PageNum
- Simple.NonStart @Yield @IntroEvenFoot @PageNum
- Simple.None @Yield @Null
- }
- }
-
-
- def @RunningOddTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningStartOddTop @PageNum
- NoTitles.NonStart @Yield @RunningOddTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningStartOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningOddFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningStartOddFoot @PageNum
- NoTitles.NonStart @Yield @RunningOddFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningStartOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningEvenTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningStartEvenTop @PageNum
- NoTitles.NonStart @Yield @RunningEvenTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningStartEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningEvenFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningStartEvenFoot @PageNum
- NoTitles.NonStart @Yield @RunningEvenFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningStartEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroOddTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningIntroStartOddTop @PageNum
- NoTitles.NonStart @Yield @RunningIntroOddTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningIntroStartOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroOddTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroOddFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningIntroStartOddFoot @PageNum
- NoTitles.NonStart @Yield @RunningIntroOddFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningIntroStartOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroOddFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroEvenTopHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield ??
- NoTitles.Start @Yield @RunningIntroStartEvenTop @PageNum
- NoTitles.NonStart @Yield @RunningIntroEvenTop @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield ??
- Titles.Start @Yield @RunningIntroStartEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroEvenTop
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
- def @RunningIntroEvenFootHeader
- left @PageHeadersAndStart
- named @MajorNum {}
- named @MajorTitle {}
- named @MinorNum {}
- named @MinorTitle {}
- right @PageNum
- {
- @PageHeadersAndStart @Case {
- NoTitles.?? @Yield @Null
- NoTitles.Start @Yield @RunningIntroStartEvenFoot @PageNum
- NoTitles.NonStart @Yield @RunningIntroEvenFoot @PageNum
- NoTitles.None @Yield @Null
- Titles.?? @Yield @Null
- Titles.Start @Yield @RunningIntroStartEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.NonStart @Yield @RunningIntroEvenFoot
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- @PageNum
- Titles.None @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Helper definitions for laying out pages. #
- # #
- ###########################################################################
-
- def @PageTopPlace { @Galley }
- def @PageFootAndTopPlace { @Galley }
- def @PageFootNotePlace { @Galley }
- def @FullPlace { @Galley }
- def @OddFullPlace { @Galley }
- def @EvenFullPlace { @Galley }
- def @FullPagePlace { @Galley }
- def @EvenFullPagePlace { @Galley }
- def @EvenPagePlace { @Galley }
- def @OddFullPagePlace { @Galley }
- def @ColTopPlace { @Galley }
- def @ColFootAndTopPlace { @Galley }
- def @ColPlace { @Galley }
- def @ColFootNotePlace { @Galley }
- def @IntroFullPlace { @Galley }
- def @IntroOddFullPlace { @Galley }
- def @IntroEvenFullPlace { @Galley }
- def @IntroColPlace { @Galley }
- def @GlossaryPlace { @Galley }
- def @IndexPlace { @Galley }
- def @IndexAPlace { @Galley }
- def @IndexBPlace { @Galley }
- def @ColophonPlace { @Galley }
- def @AfterLinePlace { @ForceGalley }
-
- def @TryAfterLinePlace right x
- {
- x @Case {
- noforce @Yield @Galley
- force @Yield @ForceGalley
- }
- }
-
- def @EvenFullPageSection
- {
- @OneRow @EvenFullPagePlace
- // @FullPagePlace
- //@MidGap @EvenFullPageSection
- }
-
- def @OddFullPageSection
- {
- @OneRow @OddFullPagePlace
- // @FullPagePlace
- //@MidGap @OddFullPageSection
- }
-
- def @EvenPageTopSect
- {
- @OneRow @EvenPagePlace
- // @PageTopPlace
- //@MidGap @PageFootAndTopPlace
- //@MidGap @EvenPageTopSect
- }
-
- def @OddPageTopSect
- {
- @PageTopPlace
- //@MidGap @PageFootAndTopPlace
- //@MidGap @OddPageTopSect
- }
-
- def @PageOddTopSection right @Orient
- {
- @OddPageTopSect ||{@OrientedWidth @Orient} @FullPlace
- ||{@OrientedWidth @Orient} @OddFullPlace
- }
-
- def @PageEvenTopSection right @Orient
- {
- @EvenPageTopSect ||{@OrientedWidth @Orient} @FullPlace
- ||{@OrientedWidth @Orient} @EvenFullPlace
- }
-
- def @PageIntroOddTopSection right @Orient
- {
- @OddPageTopSect ||{@OrientedWidth @Orient} @IntroFullPlace
- ||{@OrientedWidth @Orient} @IntroOddFullPlace
- }
-
- def @PageIntroEvenTopSection right @Orient
- {
- @EvenPageTopSect
- ||{@OrientedWidth @Orient} @IntroFullPlace
- ||{@OrientedWidth @Orient} @IntroEvenFullPlace
- }
-
- def @PageFootNoteList
- {
- @PageFootNotePlace
- //@FootGap @PageFootNoteList
- }
-
- def @PageFootNoteSection
- {
- @FootLen @Wide @HLine
- //@FootGap @PageFootNoteList
- }
-
- def @PageFootAndTopSect
- {
- @PageFootAndTopPlace
- //@MidGap @PageFootAndTopSect
- }
-
- def @PageFootSection
- {
- //@MidGap @PageFootAndTopSect
- //@FootAboveGap @PageFootNoteSection
- }
-
- def @ColTopSection
- {
- @ColTopPlace
- //@MidGap @ColFootAndTopPlace
- //@MidGap @TryAfterLinePlace noforce
- //@MidGap @ColTopSection
- }
-
- def @RestOfColSection
- {
- @AfterLinePlace
- //@MidGap @TryAfterLinePlace force
- //@MidGap @ColPlace @NotRevealed
- //@MidGap @RestOfColSection
- }
-
- def @IntroRestOfColSection
- {
- @AfterLinePlace
- //@MidGap @TryAfterLinePlace force
- //@MidGap @IntroColPlace @NotRevealed
- //@MidGap @IntroRestOfColSection
- }
-
- def @ColFootAndTopList { @ColFootAndTopPlace //@TopGap @ColFootAndTopList }
-
- def @ColFootNoteList
- {
- @ColFootNotePlace
- //@FootGap @ColFootNoteList
- }
-
- def @ColFootNoteSection
- {
- @FootLen @Wide @HLine
- //@FootGap @ColFootNoteList
- }
-
- def @ColFootSection
- {
- //@TopGap @ColFootAndTopList
- //@FootAboveGap @ColFootNoteSection
- }
-
- def @ColsOf
- left num
- named gap { @ColumnGap }
- right x
- {
- def @Two { x ||gap x }
- def @Four { @Two ||gap @Two }
- def @Eight { @Four ||gap @Four }
-
- num @Case {
- 1 @Yield { x }
- 2 @Yield { @Two }
- 3 @Yield { @Two ||gap x }
- 4 @Yield { @Four }
- 5 @Yield { @Four ||gap x }
- 6 @Yield { @Four ||gap @Two }
- 7 @Yield { @Four ||gap @Two ||gap x }
- 8 @Yield { @Four ||gap @Four }
- 9 @Yield { @Four ||gap @Four ||gap x }
- 10 @Yield { @Four ||gap @Four ||gap @Two }
- }
- }
-
- def @EqualWidth right x { 500c @Wide x } # believe it or not
-
- def @ColList right num
- {
- @HExpand num @ColsOf @EqualWidth @VExpand
- {
- @ColTopSection //@TopGap
- @ColPlace //@MidGap @RestOfColSection // //1rt
- @OneRow { @ColFootSection }
-
- }
- }
-
- def @IntroColList right num
- {
- @HExpand num @ColsOf @EqualWidth @VExpand
- {
- @ColTopSection //@TopGap
- @IntroColPlace //@MidGap @IntroRestOfColSection // //1rt
- @OneRow { @ColFootSection }
- }
- }
-
- def @ZeroColList right num
- {
- @HExpand num @ColsOf @EqualWidth 0c @High @ColPlace
- }
-
- def @ZeroIntroColList right num
- {
- @HExpand num @ColsOf @EqualWidth 0c @High @IntroColPlace
- }
-
- def @GlossaryColList right num
- {
- @HExpand num @ColsOf gap { @GlossaryColumnGap } @EqualWidth @VExpand @GlossaryPlace
- }
-
- def @IndexColList right num
- {
- @HExpand num @ColsOf gap { @IndexColumnGap } @EqualWidth @VExpand @IndexPlace
- }
-
- def @IndexAColList right num
- {
- @HExpand num @ColsOf gap { @IndexAColumnGap } @EqualWidth @VExpand @IndexAPlace
- }
-
- def @IndexBColList right num
- {
- @HExpand num @ColsOf gap { @IndexBColumnGap } @EqualWidth @VExpand @IndexBPlace
- }
-
- def @ColophonColList right num
- {
- @HExpand num @ColsOf gap { @ColophonColumnGap } @EqualWidth @VExpand @ColophonPlace
- }
-
-
- ###########################################################################
- # #
- # Footnotes. #
- # #
- ###########################################################################
-
- export @Tag count
- def @FootNoteCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @FootNoteNum right tag
- {
- @FootNoteCounterMarker&&tag @Open { @Next count }
- }
-
- def @FootNoteCounterIncrement
- right tag
- {
- @FootNoteCounterMarker&&preceding @Tagged tag
- // @FootNoteCounterMarker count { @FootNoteNum tag }
- // @NumberMarker @Tag { tag }
- @Value { @FootNoteNumbers @Num @FootNoteNum tag }
- }
-
- def @BeginFootNoteCounter
- {
- @FootNoteCounterMarker count { 0 }
- }
-
- def @FootNote
- named @Tag {}
- named @Location { @FootNoteLocation }
- named @Another { No }
- named @Label { Numbered }
- right x
- {
-
- def @FootLabelFmt
- right x
- {
- @FootNoteFont @Font @FootNoteBreak @Break
- +0.3v @VShift { Base 0.8f } @Font x
- }
-
- def @FootExtra
- {
- @BackEnd @Case {
- PlainText @Yield ","
- else @Yield @FootLabelFmt ","
- }
- }
-
- def @FootLabel
- {
- @Label @Case {
- "Numbered" @Yield { @BackEnd @Case {
- PlainText @Yield { ({@NumberOf @Tag}) }
- else @Yield @FootLabelFmt @NumberOf @Tag
- } }
- else @Yield { @BackEnd @Case {
- PlainText @Yield @Label
- else @Yield @FootLabelFmt @Label
- } }
- }
- }
-
- def @LongFootLabel
- {
- @Another @Case {
- No @Yield { @FootLabel }
- Yes @Yield { @FootExtra &0iu @FootLabel }
- }
- }
-
- def @FootVal
- {
- @FootNoteFont @Font @FootNoteBreak @Break @Label @Case {
- "Numbered" @Yield {
- { @FootNoteCounterIncrement @Tag & @FootLabel }
- @FootNoteFormat x
- }
- else @Yield { @FootLabel @FootNoteFormat x }
- }
- }
-
- def @PageFootNote into { @PageFootNotePlace&&following } { @FootVal }
- def @ColFootNote into { @ColFootNotePlace&&following } { @FootVal }
-
- @Location @Case {
- ColFoot @Yield { @Null &0iu @LongFootLabel & @ColFootNote }
- PageFoot @Yield { @Null &0iu @LongFootLabel & @PageFootNote }
- }
- }
-
- macro @AnotherFootNote { @FootNote @Another { Yes } }
-
-
- ###########################################################################
- # #
- # Definitions for page lists. There are four symbols here, in the #
- # following arrangement: #
- # #
- # @(Simple | Running)(- | Intro)PageList #
- # #
- # Running means that the page list is to support running headers. #
- # Intro means that the page list is an introductory page list. #
- # These are then packaged into @PageList and @IntroPageList. #
- # #
- ###########################################################################
-
- def @SStart right @PageNum
- {
- @PageNum @Case {
- { 1 0 } @Yield Start
- else @Yield NonStart
- }
- }
-
- def @ChooseColList right colnum
- {
- @OneOf
- {
- @ColList colnum
- @GlossaryColList @GlossaryColumnNumber
- @IndexAColList @IndexAColumnNumber
- @IndexBColList @IndexBColumnNumber
- @IndexColList @IndexColumnNumber
- @ColophonColList @ColophonColumnNumber
- }
- }
-
- def @ChooseIntroColList right colnum
- {
- @OneOf
- {
- @IntroColList colnum
- @GlossaryColList @GlossaryColumnNumber
- @IndexAColList @IndexAColumnNumber
- @IndexBColList @IndexBColumnNumber
- @IndexColList @IndexColumnNumber
- @ColophonColList @ColophonColumnNumber
- }
- }
-
- def @OddBodyMargins right x
- {
- @OddLeftBodyMargin @Wide {} || 1 @MargSet x || @OddRightBodyMargin @Wide {}
- }
-
- def @EvenBodyMargins right x
- {
- @EvenLeftBodyMargin @Wide {} || 0 @MargSet x || @EvenRightBodyMargin @Wide {}
- }
-
- def @SimplePageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @OrdinaryOddPage
- {
- {@PageHeaders.{@SStart @PageNum}} @OddTopHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageOddTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap {@PageHeaders.{@SStart @PageNum}} @OddFootHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- }
- }
-
- def @FullPageOddPage
- {
- {@PageHeaders.{@SStart @PageNum}} @OddTopHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- //@MidGap @OddBodyMargins @OddFullPageSection
- //1rt @OneRow
- { //@MidGap {@PageHeaders.{@SStart @PageNum}} @OddFootHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- }
- }
-
- def @SimpleEvenPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- right @PageNum
- {
-
- def @OrdinaryEvenPage
- {
- @PageHeaders.NonStart @EvenTopHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageEvenTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @EvenFootHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- }
- }
-
- def @FullPageEvenPage
- {
- @PageHeaders.NonStart @EvenTopHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- //@MidGap @EvenBodyMargins @EvenFullPageSection
- //1rt @OneRow
- { //@MidGap @PageHeaders.NonStart @EvenFootHeader
- @PageNumberFormat { @PageNumbers @Num @PageNum }
- }
- }
-
- @PageMarker
- rawnum { @PageNum }
- num { @PageNumbers @Num @PageNum }
- parity { "Even" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- {
- @OrdinaryEvenPage ||{@OrientedWidth @Orient} @FullPageEvenPage
- }
- // @SimplePageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- @PageMarker
- rawnum { @PageNum }
- num { @PageNumbers @Num @PageNum }
- parity { "Odd" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- @OrdinaryOddPage ||{@OrientedWidth @Orient} @FullPageOddPage
- }
- // @SimpleEvenPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Next @PageNum
- }
-
- def @SimpleIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- parity { "Odd" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- {@PageHeaders.{@SStart @PageNum}} @IntroOddTopHeader
- @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap
- {@PageHeaders.{@SStart @PageNum}} @IntroOddFootHeader
- @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @PageMarker
- num { @IntroPageNumbers @Num @Next @PageNum }
- rawnum { @Next @PageNum }
- parity { "Even" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageHeaders.NonStart @IntroEvenTopHeader @PageNumberFormat { @IntroPageNumbers @Num @Next @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @IntroEvenFootHeader
- @PageNumberFormat { @IntroPageNumbers @Num @Next @PageNum }
- }
- }
- // @SimpleIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @Next @PageNum
- }
-
- def @SimpleOddOrEvenIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @SimpleEvenIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @PageNum
- {
-
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- parity { "Even" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageHeaders.NonStart @IntroEvenTopHeader @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.NonStart @IntroEvenFootHeader
- @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @SimpleOddOrEvenIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
- @PageMarker
- num { @IntroPageNumbers @Num @PageNum }
- rawnum { @PageNum }
- parity { "Odd" }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- {@PageHeaders.{@SStart @PageNum}} @IntroOddTopHeader
- @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap
- {@PageHeaders.{@SStart @PageNum}} @IntroOddFootHeader
- @PageNumberFormat { @IntroPageNumbers @Num @PageNum }
- }
- }
- // @SimpleEvenIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- def @RunningPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @PageNum
- {
-
- def @OrdinaryOddPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- parity { "Odd" }
- // @PageHeaders.@Start @RunningOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageOddTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @FullPageOddPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- parity { "Odd" }
- // @PageHeaders.@Start @RunningOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @OddFullPageSection
- }
- //1rt @OneRow
- {
- //@MidGap @PageHeaders.@Start @RunningOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @RunningEvenPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- right @PageNum
- {
-
- def @OrdinaryEvenPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- parity { "Even" }
- // @PageHeaders.@Start @RunningEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins {
- @PageEvenTopSection @Orient
- //@MidGap @ChooseColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- def @FullPageEvenPage
- {
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- parity { "Even" }
- // @PageHeaders.@Start @RunningEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins @EvenFullPageSection
- //1rt @OneRow
- {
- //@MidGap @PageHeaders.@Start @RunningEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @PageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- }
-
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- {
- @OrdinaryEvenPage ||{@OrientedWidth @Orient} @FullPageEvenPage
- }
- // @RunningPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- @Next @PageNum
- }
-
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroColList @ColumnNumber } @OddPage @Orient { @Orient }
- {
- @OrdinaryOddPage ||{@OrientedWidth @Orient} @FullPageOddPage
- }
- // @RunningEvenPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Next @PageNum
- }
-
- def @RunningIntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @AtTop { @Null }
- named @Orient {}
- named extra { No }
- right @PageNum
- {
- @FootNoteThrough @NoDo @BeginFootNoteCounter
- // { extra @Then @OddBodyMargins @ZeroIntroColList @ColumnNumber } @OddPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @PageNum }
- parity { "Odd" }
- // @PageHeaders.@Start @RunningIntroOddTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @OddBodyMargins {
- @AtTop
- //@MidGap @PageIntroOddTopSection @Orient
- //@MidGap @IntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @OddBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningIntroOddFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- // @FootNoteThrough @NoDo @BeginFootNoteCounter
- // {} @EvenPage @Orient { @Orient }
- @Runner&&following @Open
- {
- @PageMarker
- num { @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner } }
- rawnum { @Next @PageNum }
- parity { "Even" }
- // @PageHeaders.@Start @RunningIntroEvenTopHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- //@MidGap
- @EvenBodyMargins {
- @PageIntroEvenTopSection @Orient
- //@MidGap @ChooseIntroColList @ColumnNumber
- }
- //1rt @OneRow
- { // @EvenBodyMargins @PageFootSection
- //@MidGap @PageHeaders.@Start @RunningIntroEvenFootHeader
- @MajorNum { @MajorNum } @MajorTitle { @MajorTitle }
- @MinorNum { @MinorNum } @MinorTitle { @MinorTitle }
- {
- @MakePageNum
- numbers { @IntroPageNumbers }
- rawnum { @Next @PageNum }
- prefix { @Prefix }
- owner { @Owner }
- }
- }
- }
- // @RunningIntroPageList
- @PageHeaders { @PageHeaders }
- @ColumnNumber { @ColumnNumber }
- @Orient { @Orient }
- @Next @Next @PageNum
- }
-
- def @PageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named extra { No }
- named @Orient {}
- named @AtTop { @Null }
- right @FirstPageNum
- {
- @PageHeaders @Case {
- { None Simple } @Yield @SimplePageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- { Running Titles NoTitles } @Yield @RunningPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- }
- //
- @PageMark last.page
- }
-
- def @IntroPageList
- named @ColumnNumber {}
- named @PageHeaders {}
- named @Orient {}
- named extra { No }
- named @AtTop { @Null }
- right @FirstPageNum
- {
- @PageHeaders @Case {
- { None Simple } @Yield @SimpleIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- { Running Titles NoTitles } @Yield @RunningIntroPageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @Orient }
- extra { extra }
- @AtTop { @AtTop }
- @FirstPageNum
- }
- }
-
- def @ContinuousPageList
- named @Orient {}
- {
- {@OrientedWidth @Orient} @Wide
- { //@TopMargin ||@EvenLeftMargin
- {
- @BeginFootNoteCounter
- // @ColPlace
- //@FootAboveGap @ColFootNoteSection
- //@FootAboveGap @PageFootNoteSection
- }
- ||@EvenRightMargin //@FootMargin
- }
- }
-
-
- ###########################################################################
- # #
- # Table of contents (including lists of figures and tables). #
- # #
- ###########################################################################
-
- def @ContentsItem
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- named protect { No }
- {
-# def @Leaders { @ContentsLeader &@ContentsLeaderGap @Leaders }
-
- def @Leaders { @ContentsLeaderGap @Wide {} & @ContentsLeader & @Leaders }
-
- def @OptionalCrossLink right x
- {
- crosstag @Case {
- "" @Yield x
- else @Yield { crosstag @CrossLink x }
- }
- }
-
- def @RightPart
- {
- @ContentsRightWidth @Wide {
- &1rt { @OptionalCrossLink pagenum //0.5vx }
- }
- }
-
-# def @Item
-# {
-# |indent @OptionalCrossLink number @ContentsFormat @HExpand {
-# title & @ContentsLeaderGap @Wide &1rt @OneCol {
-# @Leaders & @RightPart &0io
-# }
-# }
-# |@ContentsRightWidth
-# }
-
- def @Item
- {
- |indent @OptionalCrossLink number @ContentsFormat @HExpand {
- title &1rt @OneCol {
- @Leaders & @RightPart &0io
- }
- }
- |@ContentsRightWidth
- }
-
- //pregap
- //0.5vx
- protect @Case {
- No @Yield @Item
- Yes @Yield @Protect @Item
- }
- //postgap
- }
-
- def @ContentsPlace { @Galley }
- def @FigureContentsPlace { @Galley }
- def @TableContentsPlace { @Galley }
- def @FloaterContentsPlace { @Galley }
-
- def @SendContents into { @ContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @SendFigureContents into { @FigureContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @SendTableContents into { @TableContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @SendFloaterContents into { @FloaterContentsPlace&&foll_or_prec }
- right x
- {
- x
- }
-
- def @ContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeContents.wanted @Case {
- Yes.Yes @Yield { @SendContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @FigureContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeFigureContents.wanted @Case {
- Yes.Yes @Yield { @SendFigureContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @TableContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeTableContents.wanted @Case {
- Yes.Yes @Yield { @SendTableContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @FloaterContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGap }
- named postgap { 0c }
- {
- @MakeFloaterContents.wanted @Case {
- Yes.Yes @Yield { @SendFloaterContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- }
- else @Yield @Null
- }
- }
-
- def @MajorContentsEntry
- left wanted
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- named pregap { @ContentsGapAbove }
- named postgap { @ContentsGapBelow }
- {
- @MakeContents.wanted @Case {
- Yes.Yes @Yield { @SendContents @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { @ContentsFont @Font number }
- title { @ContentsFont @Font title }
- pagenum { pagenum }
- pregap { pregap }
- postgap { postgap }
- protect { Yes }
- }
- else @Yield @Null
- }
- }
-
- def @VeryMajorContentsEntry
- left wanted
- named indent { 0.5rt }
- named title {}
- named pregap { @ContentsPartGapAbove }
- named postgap { @ContentsPartGapBelow }
- {
- def item
- {
- //pregap
- //0.5vx
- |indent @ContentsFont @Font @OneCol title |
- //0.5vx
- //postgap
- }
-
- @MakeContents.wanted @Case {
- Yes.Yes @Yield @SendContents item
- else @Yield @Null
- }
-
- }
-
- def @ContentsSection
- {
- def @ContentsList { @ContentsPlace // @ContentsList }
-
- @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsList
- else @Yield @Null
- }
- }
-
- def @FigureContentsSection
- {
- def @FigureContentsList { @FigureContentsPlace // @FigureContentsList }
-
- @MakeFigureContents @Case {
- { Yes Bypass } @Yield @FigureContentsList
- else @Yield @Null
- }
- }
-
- def @TableContentsSection
- {
- def @TableContentsList { @TableContentsPlace // @TableContentsList }
-
- @MakeTableContents @Case {
- { Yes Bypass } @Yield @TableContentsList
- else @Yield @Null
- }
- }
-
- def @FloaterContentsSection
- {
- def @FloaterContentsList { @FloaterContentsPlace // @FloaterContentsList }
-
- @MakeFloaterContents @Case {
- { Yes Bypass } @Yield @FloaterContentsList
- else @Yield @Null
- }
- }
-
- ###########################################################################
- # #
- # Bypass table of contents. #
- # #
- ###########################################################################
-
- def @BypassContentsEntry into { @ContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassFigureContentsEntry into { @FigureContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeFigureContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassTableContentsEntry into { @TableContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeTableContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassFloaterContentsEntry into { @FloaterContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeFloaterContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { number }
- title { title }
- pagenum { pagenum }
- pregap { @ContentsGap }
- postgap { 0c }
- }
- else @Yield @Null
- }
- }
-
- def @BypassMajorContentsEntry into { @ContentsPlace&&preceding }
- named indent { 0f }
- named crosstag {}
- named number {}
- named title {}
- named pagenum {}
- {
- @MakeContents @Case {
- Bypass @Yield { @ContentsItem
- indent { indent }
- crosstag { crosstag }
- number { @B number }
- title { @B title }
- pagenum { pagenum }
- pregap { @ContentsGapAbove }
- postgap { @ContentsGapBelow }
- }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Endnotes. #
- # #
- ###########################################################################
-
- export num
- def @EndNoteList
- named @Tag {}
- right num
- {
- @Galley //@EndNoteGap @EndNoteList @Next num
- }
-
- def endtag right num
- {
- @BackEnd @Case {
- PlainText @Yield {
- ({@EndNoteNumbers @Num num})
- }
- else @Yield {
- +0.3v @VShift 0.8f @Font @EndNoteNumbers @Num num
- }
- }
- }
-
- def @EndNote
- named @Tag {}
- right x
- {
- def ftag
- {
- @EndNoteFont @Font @EndNoteList&&@Tag @Open { endtag num }
- }
-
- def @ENote into { @EndNoteList&&following }
- {
- @EndNoteFont @Font @EndNoteBreak @Break
- { { @EndNoteList&&preceding @Tagged @Tag ftag } @EndNoteFormat x }
- }
-
- @Null & @EndNoteFont @Font ftag & @ENote
- }
-
-
- ###########################################################################
- # #
- # Margin Notes. #
- # #
- ###########################################################################
-
- # moved to bsf
- #def @ZeroSize right x
- #{
- # @HContract @VContract { ^/0io |0io @OneCol @OneRow x |0io /0io }
- #}
-
- def @MargPut
- left parity
- right x
- {
- @MarginNoteFont @Font @MarginNoteBreak @Break @ZeroSize {
- @BackEnd @Case {
- PlainText @Yield ""
- PostScript @Yield {
- { parity "LoutMargShift gsave" // "grestore" } @Graphic
- {
- |@MarginNoteHGap @MarginNoteWidth @Wide @OneRow x
- |@MarginNoteHGap //@MarginNoteVGap
- }
- }
- PDF @Yield { "% @MargPut/LoutMargShift UNIMPLEMENTED" @Graphic {
- |@MarginNoteHGap @MarginNoteWidth @Wide @OneRow x
- |@MarginNoteHGap //@MarginNoteVGap
- } # VT: PDF currently has no output
- }
- }
- }
- }
-
- def @LeftNote right x { @Null & 0 @MargPut x }
- def @RightNote right x { @Null & 1 @MargPut x }
- def @OuterNote right x { @Null & 2 @MargPut x }
- def @InnerNote right x { @Null & 3 @MargPut x }
-
-
- ###########################################################################
- # #
- # @Place: places an object at an arbitrary point on the page. #
- # #
- ###########################################################################
-
-#
-# VT: the expressions in the braces will work for PostScript but not for PDF
-# they should be modified in the way the "named c { " cm" }" blocks were modified above
-# but since the point of @Place is to output a matrix (?), I have not implemented this change
-#
- def @OldPlace
- import @PSLengths named x
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- # named c precedence 99 left a { a "cm" }
- # named i precedence 99 left a { a "in" }
- # named e precedence 99 left a { a "em" }
- # named p precedence 99 left a { a "pt" }
- # named f precedence 99 left a { a "ft" }
- # named s precedence 99 left a { a "sp" }
- # named v precedence 99 left a { a "vs" }
- # named cm precedence 99 left a { a "cm" }
- # named in precedence 99 left a { a "in" }
- # named em precedence 99 left a { a "em" }
- # named pt precedence 99 left a { a "pt" }
- # named ft precedence 99 left a { a "ft" }
- # named sp precedence 99 left a { a "sp" }
- # named vs precedence 99 left a { a "vs" }
- { 0 }
- import @PSLengths named y
- named "+" precedence 96 associativity left left a right b { a b "add" }
- named "-" precedence 96 associativity left left a right b { a b "sub" }
- named "/" precedence 97 associativity left left a right b { a b "div" }
- named "*" precedence 98 associativity left left a right b { a b "mul" }
- # named c precedence 99 left a { a "cm" }
- # named i precedence 99 left a { a "in" }
- # named e precedence 99 left a { a "em" }
- # named p precedence 99 left a { a "pt" }
- # named f precedence 99 left a { a "ft" }
- # named s precedence 99 left a { a "sp" }
- # named v precedence 99 left a { a "vs" }
- # named cm precedence 99 left a { a "cm" }
- # named in precedence 99 left a { a "in" }
- # named em precedence 99 left a { a "em" }
- # named pt precedence 99 left a { a "pt" }
- # named ft precedence 99 left a { a "ft" }
- # named sp precedence 99 left a { a "sp" }
- # named vs precedence 99 left a { a "vs" }
- { 0 }
- right val
- {
- @ZeroSize {
- @BackEnd @Case {
- PlainText @Yield ""
- PostScript @Yield {
- { "LoutPageDict begin matr setmatrix" x y "translate end gsave"
- // "grestore" } @Graphic val
- }
- else @Yield { { "% @Place UNIMPLEMENTED" } @Graphic val # VT: PDF currently has no output
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @Theorem, @Proof, and @EndProof #
- # #
- ###########################################################################
-
- export @Tag val
- def @TheoremCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginTheoremCounter
- right prefix
- {
- @TheoremCounterMarker val { prefix @Join 0 }
- }
-
- def @TheoremNum right tag
- {
- @TheoremCounterMarker&&tag @Open { @Next val }
- }
-
- def @TheoremCounterIncrement
- right tag
- {
- @TheoremCounterMarker&&preceding @Tagged tag
- @TheoremCounterMarker val { @TheoremNum tag }
- @NumberMarker @Tag { tag } @Value { @TheoremNum tag }
- }
-
- def @Theorem
- named @Tag {}
- named @Title {}
- right x
- {
- def @TheoremTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @TheoremTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @TheoremCounterIncrement @Tag } @Insert
- @TheoremFormat
- word { theorem @WordVal @TheoremWord }
- number { @TheoremNum @Tag }
- title { @TheoremTitle }
- body { x }
- }
-
- macro @Proof { @B { {proof @WordVal @ProofWord}: } &2s }
-
- macro @EndProof { &1rt @Box {} }
-
-
- ###########################################################################
- # #
- # @Definition #
- # #
- ###########################################################################
-
- export @Tag val
- def @DefinitionCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginDefinitionCounter
- right prefix
- {
- @DefinitionCounterMarker val { prefix @Join 0 }
- }
-
- def @DefinitionNum right tag
- {
- @DefinitionCounterMarker&&tag @Open { @Next val }
- }
-
- def @DefinitionCounterIncrement
- right tag
- {
- @DefinitionCounterMarker&&preceding @Tagged tag
- @DefinitionCounterMarker val { @DefinitionNum tag }
- @NumberMarker @Tag { tag } @Value { @DefinitionNum tag }
- }
-
- def @Definition
- named @Tag {}
- named @Title {}
- right x
- {
- def @DefinitionTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @DefinitionTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @DefinitionCounterIncrement @Tag } @Insert
- @DefinitionFormat
- word { definition @WordVal @DefinitionWord }
- number { @DefinitionNum @Tag }
- title { @DefinitionTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Claim #
- # #
- ###########################################################################
-
- export @Tag val
- def @ClaimCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginClaimCounter
- right prefix
- {
- @ClaimCounterMarker val { prefix @Join 0 }
- }
-
- def @ClaimNum right tag
- {
- @ClaimCounterMarker&&tag @Open { @Next val }
- }
-
- def @ClaimCounterIncrement
- right tag
- {
- @ClaimCounterMarker&&preceding @Tagged tag
- @ClaimCounterMarker val { @ClaimNum tag }
- @NumberMarker @Tag { tag } @Value { @ClaimNum tag }
- }
-
- def @Claim
- named @Tag {}
- named @Title {}
- right x
- {
- def @ClaimTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @ClaimTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @ClaimCounterIncrement @Tag } @Insert
- @ClaimFormat
- word { claim @WordVal @ClaimWord }
- number { @ClaimNum @Tag }
- title { @ClaimTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Proposition #
- # #
- ###########################################################################
-
- export @Tag val
- def @PropositionCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginPropositionCounter
- right prefix
- {
- @PropositionCounterMarker val { prefix @Join 0 }
- }
-
- def @PropositionNum right tag
- {
- @PropositionCounterMarker&&tag @Open { @Next val }
- }
-
- def @PropositionCounterIncrement
- right tag
- {
- @PropositionCounterMarker&&preceding @Tagged tag
- @PropositionCounterMarker val { @PropositionNum tag }
- @NumberMarker @Tag { tag } @Value { @PropositionNum tag }
- }
-
- def @Proposition
- named @Tag {}
- named @Title {}
- right x
- {
- def @PropositionTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @PropositionTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @PropositionCounterIncrement @Tag } @Insert
- @PropositionFormat
- word { proposition @WordVal @PropositionWord }
- number { @PropositionNum @Tag }
- title { @PropositionTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Lemma #
- # #
- ###########################################################################
-
- export @Tag val
- def @LemmaCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginLemmaCounter
- right prefix
- {
- @LemmaCounterMarker val { prefix @Join 0 }
- }
-
- def @LemmaNum right tag
- {
- @LemmaCounterMarker&&tag @Open { @Next val }
- }
-
- def @LemmaCounterIncrement
- right tag
- {
- @LemmaCounterMarker&&preceding @Tagged tag
- @LemmaCounterMarker val { @LemmaNum tag }
- @NumberMarker @Tag { tag } @Value { @LemmaNum tag }
- }
-
- def @Lemma
- named @Tag {}
- named @Title {}
- right x
- {
- def @LemmaTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @LemmaTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @LemmaCounterIncrement @Tag } @Insert
- @LemmaFormat
- word { lemma @WordVal @LemmaWord }
- number { @LemmaNum @Tag }
- title { @LemmaTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Corollary #
- # #
- ###########################################################################
-
- export @Tag val
- def @CorollaryCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginCorollaryCounter
- right prefix
- {
- @CorollaryCounterMarker val { prefix @Join 0 }
- }
-
- def @CorollaryNum right tag
- {
- @CorollaryCounterMarker&&tag @Open { @Next val }
- }
-
- def @CorollaryCounterIncrement
- right tag
- {
- @CorollaryCounterMarker&&preceding @Tagged tag
- @CorollaryCounterMarker val { @CorollaryNum tag }
- @NumberMarker @Tag { tag } @Value { @CorollaryNum tag }
- }
-
- def @Corollary
- named @Tag {}
- named @Title {}
- right x
- {
- def @CorollaryTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @CorollaryTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @CorollaryCounterIncrement @Tag } @Insert
- @CorollaryFormat
- word { corollary @WordVal @CorollaryWord }
- number { @CorollaryNum @Tag }
- title { @CorollaryTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @Example #
- # #
- ###########################################################################
-
- export @Tag val
- def @ExampleCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @BeginExampleCounter
- right prefix
- {
- @ExampleCounterMarker val { prefix @Join 0 }
- }
-
- def @ExampleNum right tag
- {
- @ExampleCounterMarker&&tag @Open { @Next val }
- }
-
- def @ExampleCounterIncrement
- right tag
- {
- @ExampleCounterMarker&&preceding @Tagged tag
- @ExampleCounterMarker val { @ExampleNum tag }
- @NumberMarker @Tag { tag } @Value { @ExampleNum tag }
- }
-
- def @Example
- named @Tag {}
- named @Title {}
- right x
- {
- def @ExampleTitle
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @ExampleTitleFormat @Title
- }
- }
-
- { @PageMark @Tag & @ExampleCounterIncrement @Tag } @Insert
- @ExampleFormat
- word { example @WordVal @ExampleWord }
- number { @ExampleNum @Tag }
- title { @ExampleTitle }
- body { x }
- }
-
-
- ###########################################################################
- # #
- # @BeginAllCounters - begin all counters #
- # #
- ###########################################################################
-
- def @BeginAllCounters
- left condition
- right prefix
- {
- condition @Do {
- @BeginTheoremCounter prefix
- // @BeginDefinitionCounter prefix
- // @BeginClaimCounter prefix
- // @BeginPropositionCounter prefix
- // @BeginLemmaCounter prefix
- // @BeginCorollaryCounter prefix
- // @BeginExampleCounter prefix
- }
- }
-
-
- ###########################################################################
- # #
- # @Reference - a reference. #
- # #
- ###########################################################################
-
- export @Tag @Type @Abstract @Address @Annote @Author @Day @Edition
- @HowPublished @InAuthor @InTitle @Institution @Journal @Keywords
- @Label @Month @Note @Number @Organization @Page @Pages @Pinpoint
- @Publisher @Title @TitleNote @TRType @URL @Volume @Year
-
- def @Reference
- named compulsory @Tag {}
- named compulsory @Type {}
- named @Abstract {}
- named @Address {}
- named @Annote {}
- named @Author {}
- named @Day {}
- named @Edition {}
- named @HowPublished {}
- named @InAuthor {}
- named @InTitle {}
- named @Institution {}
- named @Journal {}
- named @Keywords {}
- named @Label {}
- named @Month {}
- named @Note {}
- named @Number {}
- named @Organization {}
- named @Page {}
- named @Pages {}
- named @Pinpoint {}
- named @Publisher {}
- named @Title {}
- named @TitleNote {}
- named @TRType {}
- named @URL
- named "~" { "~" }
- named "/" { "/" &0p }
- named "//" { "//" &0p } {}
- named @Volume {}
- named @Year {}
- { @Null }
-
-
- ###########################################################################
- # #
- # @CiteLabel - the value of the label of a reference within a citation. #
- # #
- ###########################################################################
-
- def @CiteLabel
- left label
- right tag
- {
- tag @CrossLink @RefCiteLabels
- @RefNum { @NumberOf tag }
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- } }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @ListLabel - the value of the label of a reference within a ref list. #
- # #
- ###########################################################################
-
- def @ListLabel
- left label
- right tag
- {
- @RefListLabels
- @RefNum { @NumberOf tag }
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- } }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @SortKey - the value of the sort key of a reference. #
- # #
- ###########################################################################
-
- def @SortKey
- left label
- right tag
- {
- @RefListSortKey
- @Tag { tag }
- @Type { @Reference&&tag @Open { @Type } }
- @Abstract { @Reference&&tag @Open { @Abstract } }
- @Address { @Reference&&tag @Open { @Address } }
- @Annote { @Reference&&tag @Open { @Annote } }
- @Author { @Reference&&tag @Open { @Author } }
-
- @CiteOrder { {@NumberOf tag} @Case {
- "??" @Yield "??"
- else @Yield { "1000" @Plus @NumberOf tag }
- }
- }
-
- @Day { @Reference&&tag @Open { @Day } }
- @Edition { @Reference&&tag @Open { @Edition } }
- @HowPublished { @Reference&&tag @Open { @HowPublished } }
- @InAuthor { @Reference&&tag @Open { @InAuthor } }
- @InTitle { @Reference&&tag @Open { @InTitle } }
- @Institution { @Reference&&tag @Open { @Institution } }
- @Journal { @Reference&&tag @Open { @Journal } }
- @Keywords { @Reference&&tag @Open { @Keywords } }
-
- @Label { label @Case {
- "" @Yield {@Reference&&tag @Open {@Label}}
- else @Yield label
- }
- }
-
- @Month { @Reference&&tag @Open { @Month } }
- @Note { @Reference&&tag @Open { @Note } }
- @Number { @Reference&&tag @Open { @Number } }
- @Organization { @Reference&&tag @Open { @Organization } }
- @Page { @Reference&&tag @Open { @Page } }
- @Pages { @Reference&&tag @Open { @Pages } }
- @Pinpoint { @Reference&&tag @Open { @Pinpoint } }
- @Publisher { @Reference&&tag @Open { @Publisher } }
- @Title { @Reference&&tag @Open { @Title } }
- @TitleNote { @Reference&&tag @Open { @TitleNote } }
- @TRType { @Reference&&tag @Open { @TRType } }
- @Volume { @Reference&&tag @Open { @Volume } }
- @Year { @Reference&&tag @Open { @Year } }
- }
-
-
- ###########################################################################
- # #
- # @RefStyle - a reference printing style. #
- # #
- ###########################################################################
-
- export @Style
- def @RefStyle
- left @Tag
- named @Style right reftag {}
- {}
-
-
- ###########################################################################
- # #
- # @RefPrint - prints reference with tag reftag in appropriate style. #
- # #
- ###########################################################################
-
- def @RefPrint right reftag
- { & @RefStyle&&{ @Reference&&reftag @Open { @Type } }
- @Open { @Style reftag } &
- }
-
-
- ###########################################################################
- # #
- # @ReferencesSection and @ChapReferencesSection - a list of references. #
- # #
- ###########################################################################
-
- def @RefPlace { @Galley }
- def @ChapRefPlace { @Galley }
-
- def @BypassRefPlace { @Galley }
- def @BypassChapRefPlace { @Galley }
-
- def @ReferencesSection
- {
- def @RefList right num
- {
- @NumberMarker @Value { @RefNumbers @Num num } & | @RefPlace
- //@RefListGap @RefList @Next num
- }
-
- def @BypassRefList
- {
- @BypassRefPlace //@RefListGap @BypassRefList
- }
-
- @RefList 1
- //@RefListGap
- @BypassRefList
- }
-
- def @ChapReferencesSection
- {
- def @ChapRefList right num
- {
- @NumberMarker @Value { @RefNumbers @Num num } & | @ChapRefPlace
- //@RefListGap @ChapRefList @Next num
- }
-
- def @BypassChapRefList
- {
- @BypassChapRefPlace //@RefListGap @BypassChapRefList
- }
-
- @ChapRefList 1
- //@RefListGap
- @BypassChapRefList
- }
-
-
- ###########################################################################
- # #
- # @RefHeading - heading for reference lists. #
- # #
- ###########################################################################
-
- def @RefHeading right x
- { x @Case {
- references @Yield @Word&&references
- bibliography @Yield @Word&&bibliography
- else @Yield x
- }
- }
-
-
- #######################################################################
- # #
- # @ChapRefSection #
- # #
- #######################################################################
-
- def @ChapRefSection
- {
- @Heading @RefHeading @ChapRefListTitle
- @DP
- @ChapReferencesSection
- }
-
-
- ###########################################################################
- # #
- # @SendRef and @ChapSendRef - send one reference to the reference list. #
- # #
- ###########################################################################
-
- def @RefItem
- left lab
- right ref
- {
- def @ZeroWidth right x { &0io @OneCol x &0io }
-
- @RefListFormat @Case {
- NoLabels @Yield { ref }
- Labels @Yield { @ZeroWidth lab |@RefListLabelWidth ref }
- DropLabels @Yield { lab //1vx |@RefListLabelWidth ref }
- InLabels @Yield { lab & 2s @Wide & ref }
- }
- }
-
-
- def @RefListItem
- left label
- right tag
- {
- @RefListFont @Font @RefListBreak @Break {
- @NumberMarker&&preceding @Tagged tag & @PageMark tag
- |@RefListIndent {label @ListLabel tag} @RefItem {@RefPrint tag}
- |@RefListRightIndent
- }
- }
-
-
- def @SendRef into { @RefPlace&&foll_or_prec }
- left label
- right tag
- {
- def @Key { label @SortKey tag }
-
- # no @Merge i.e. omit duplicates
-
- label @RefListItem tag
- }
-
-
- def @ChapSendRef into { @ChapRefPlace&&foll_or_prec }
- left label
- right tag
- {
- def @Key { label @SortKey tag }
-
- # no @Merge i.e. omit duplicates
-
- label @RefListItem tag
- }
-
-
- ###########################################################################
- # #
- # @Ref (bare citation) and its variants. #
- # #
- ###########################################################################
-
- def @Ref
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @CiteLabel tag & label @SendRef tag }
- else @Yield @Null
- }
- }
-
- def @NoRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @SendRef tag }
- else @Yield @Null
- }
- }
-
- def @ChapRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @CiteLabel tag & label @ChapSendRef tag }
- else @Yield @Null
- }
- }
-
- def @NoChapRef
- named label {}
- right tag
- {
- @MakeReferences @Case {
- Yes @Yield { label @ChapSendRef tag }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # Bypass references. #
- # #
- ###########################################################################
-
- def @BypassReference into { @BypassRefPlace&&preceding }
- named label {}
- named value {}
- {
- @MakeReferences @Case {
- Bypass @Yield { label @RefItem value }
- else @Yield @Null
- }
- }
-
- def @BypassChapReference into { @BypassChapRefPlace&&preceding }
- named label {}
- named value {}
- {
- @MakeReferences @Case {
- Bypass @Yield { label @RefItem value }
- else @Yield @Null
- }
- }
-
-
- ###########################################################################
- # #
- # @Cite (citation) and its variants. #
- # #
- ###########################################################################
-
- export "$" "," ";"
- def @Cite body cite
- {
- macro "$" { @Ref }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield {
- @RefCiteStyle cite
- }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @NoCite body cite
- {
- macro "$" { @NoRef }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { cite }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @ChapCite body cite
- {
- macro "$" { @ChapRef }
- def "," precedence 90 left x { x"," }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { @RefCiteStyle cite }
- else @Yield @Null
- }
- }
-
- export "$" "," ";"
- def @NoChapCite body cite
- {
- macro "$" { @NoChapRef }
- def "," precedence 90 left x { x }
- def ";" precedence 90 left x { x";" }
-
- @MakeReferences @Case {
- Yes @Yield { cite }
- else @Yield @Null
- }
- }
-
- ###########################################################################
- # #
- # Floating figures. #
- # #
- ###########################################################################
-
- export @Tag prefix
- def @FigurePrefixMarker
- named @Tag {}
- named prefix {}
- {
- @Null
- }
-
- export @Tag count
- def @FigureCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @RawFigureNum right tag
- {
- @FigureCounterMarker&&tag @Open { @Next count }
- }
-
- def @FigureCounterIncrement
- right tag
- {
- @FigureCounterMarker&&preceding @Tagged tag
- // @FigurePrefixMarker&&preceding @Tagged tag
- // @FigureCounterMarker count { @RawFigureNum tag }
- // @NumberMarker @Tag { tag }
- @Value { { @FigurePrefixMarker&&tag @Open { prefix } }
- @Join {@FigureNumbers @Num @RawFigureNum tag}
- }
- }
-
- def @BeginFigureCounter
- left condition
- right prefix
- {
- condition @Do {
- @FigurePrefixMarker prefix { prefix }
- // @FigureCounterMarker count { 0 }
- }
- }
-
- def @EndFigureList { @Galley //@MidGap @EndFigureList }
-
- def @Figure
- named @Tag {}
- named @Caption { dft }
- named @ShortCaption { dft }
- named @CaptionPos { @FigureCaptionPos }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @FigureFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @OnePage { dft }
- named @Location { @FigureLocation }
- right @Body
- {
- def @FigureNumber
- {
- @BypassNumber @Dft @NumberOf @Tag
- }
-
- def @ContentsCaption
- {
- @ShortCaption @Dft @Caption
- }
-
- def @OnePg
- {
- @OnePage @Case {
- { No no } @Yield No
- { Yes yes } @Yield Yes
- dft @Yield { @Location @Case {
- PageTop @Yield No
- EvenPageTop @Yield No
- FullPage @Yield No
- EvenFullPage @Yield No
- PageFoot @Yield Yes
- ColTop @Yield No
- ColFoot @Yield Yes
- ColEnd @Yield No
- Display @Yield Yes
- AfterLine @Yield Yes
- TryAfterLine @Yield Yes
- Raw @Yield No
- }
- }
- }
- }
-
- def @CaptionState
- {
- @Caption @Case {
- dft @Yield None
- else @Yield { @CaptionPos @Case {
- { Below below } @Yield Below
- { Above above } @Yield Above
- } }
- }
- }
-
- #def @FigureLabel
- #{
- # @FigureNumbers @Case {
- # No @Yield @Null
- # else @Yield {
- # @CaptionFormat { {figure @WordVal @FigureWord} @NumSep @FigureNumber }
- # }
- # }
- #}
-
- def @CaptionVal
- {
- @FigureCaptionFont @Font @FigureCaptionBreak @Break
- { ||0.5rt @FigureCaptionFormat
- word { figure @WordVal @FigureWord }
- number { @FigureNumber }
- caption { @Caption }
- }
- }
-
- def @FigureVal
- {
- @InitialLanguage @Language
- {
- @MakeFigureContents @FigureContentsEntry
- indent { 0f }
- crosstag { @Tag }
- number { @FigureNumber }
- title { @InitialLanguage @Language @ContentsCaption }
- pagenum { @PageOf @Tag }
- // @FigureCounterIncrement @Tag
- // @TitleMarker @Tag { @Tag } @Value { @Caption }
- // @Body
- // @PageMark @Tag
- }
- }
-
- def @FigureTarget
- {
- @Location @Case {
- PageTop @Yield @PageTopPlace&&following
- EvenPageTop @Yield @PageTopPlace&&following
- FullPage @Yield @FullPagePlace&&following
- EvenFullPage @Yield @FullPagePlace&&following
- PageFoot @Yield @PageFootAndTopPlace&&following
- ColTop @Yield @ColTopPlace&&following
- ColFoot @Yield @ColFootAndTopPlace&&following
- ColEnd @Yield @EndFigureList&&following
- Display @Yield @AfterLinePlace&&following
- AfterLine @Yield @AfterLinePlace&&following
- TryAfterLine @Yield @TryAfterLinePlace&&following
- }
- }
-
- def @SendEncl into { @FigureTarget }
- right x
- {
- def @Enclose right x
- {
- @OnePg @Case {
- No @Yield @Format x
- Yes @Yield x
- }
- }
-
- x
- }
-
- def @Send into { @FigureTarget }
- right x
- {
- x
- }
-
- def @EvenFullPageSend into { @EvenFullPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @EvenPageSend into { @EvenPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @RawFigureVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield @OneRow { @Format @FigureVal @DP @CaptionVal }
- Yes.Above @Yield @OneRow { @CaptionVal @DP @Format @FigureVal }
- Yes.None @Yield @OneRow { @Format @FigureVal }
- No.Below @Yield { @Format @FigureVal @DP @CaptionVal }
- No.Above @Yield { @CaptionVal @DP @Format @FigureVal }
- No.None @Yield { @Format @FigureVal }
- }
- }
-
- def @NonRawFigureVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield {
- @Send @OneRow @HExpand { @Format @FigureVal @DP @CaptionVal // @DupRunner}
- }
- Yes.Above @Yield {
- @Send @OneRow @HExpand { @CaptionVal @DP @Format @FigureVal // @DupRunner}
- }
- Yes.None @Yield {
- @Send @OneRow @HExpand { @Format @FigureVal // @DupRunner }
- }
- No.Below @Yield {
- @SendEncl { @FigureVal // @Send { @CaptionVal // @DupRunner } }
- }
- No.Above @Yield {
- @Send { @CaptionVal // @SendEncl { @FigureVal // @DupRunner } }
- }
- No.None @Yield {
- @SendEncl { @FigureVal // @DupRunner }
- }
- }
- }
-
- @Location @Case {
- Raw @Yield @RawFigureVal
- Display @Yield { @NonRawFigureVal &1rt }
- EvenPageTop @Yield @EvenPageSend @NonRawFigureVal
- EvenFullPage @Yield @EvenFullPageSend @NonRawFigureVal
- else @Yield @NonRawFigureVal
- }
- }
-
-
- ###########################################################################
- # #
- # Floating tables (exact clone of figure code immediately above). #
- # #
- ###########################################################################
-
- export @Tag prefix
- def @TablePrefixMarker
- named @Tag {}
- named prefix {}
- {
- @Null
- }
-
- export @Tag count
- def @TableCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @RawTableNum right tag
- {
- @TableCounterMarker&&tag @Open { @Next count }
- }
-
- def @TableCounterIncrement
- right tag
- {
- @TableCounterMarker&&preceding @Tagged tag
- // @TablePrefixMarker&&preceding @Tagged tag
- // @TableCounterMarker count { @RawTableNum tag }
- // @NumberMarker @Tag { tag }
- @Value { { @TablePrefixMarker&&tag @Open { prefix } }
- @Join {@TableNumbers @Num @RawTableNum tag}
- }
- }
-
- def @BeginTableCounter
- left condition
- right prefix
- {
- condition @Do {
- @TablePrefixMarker prefix { prefix }
- // @TableCounterMarker count { 0 }
- }
- }
-
- def @EndTableList { @Galley //@MidGap @EndTableList }
-
- def @Table
- named @Tag {}
- named @Caption { dft }
- named @ShortCaption { dft }
- named @CaptionPos { @TableCaptionPos }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @TableFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @OnePage { dft }
- named @Location { @TableLocation }
- right @Body
- {
- def @TableNumber
- {
- @BypassNumber @Dft @NumberOf @Tag
- }
-
- def @ContentsCaption
- {
- @ShortCaption @Dft @Caption
- }
-
- def @OnePg
- {
- @OnePage @Case {
- { No no } @Yield No
- { Yes yes } @Yield Yes
- dft @Yield { @Location @Case {
- PageTop @Yield No
- EvenPageTop @Yield No
- FullPage @Yield No
- EvenFullPage @Yield No
- PageFoot @Yield Yes
- ColTop @Yield No
- ColFoot @Yield Yes
- ColEnd @Yield No
- Display @Yield Yes
- AfterLine @Yield Yes
- TryAfterLine @Yield Yes
- Raw @Yield No
- }
- }
- }
- }
-
- def @CaptionState
- {
- @Caption @Case {
- dft @Yield None
- else @Yield { @CaptionPos @Case {
- { Below below } @Yield Below
- { Above above } @Yield Above
- } }
- }
- }
-
- def @CaptionVal
- {
- @TableCaptionFont @Font @TableCaptionBreak @Break
- { ||0.5rt @TableCaptionFormat
- word { table @WordVal @TableWord }
- number { @TableNumber }
- caption { @Caption }
- }
- }
-
- def @TableVal
- {
- @InitialLanguage @Language
- {
- @MakeTableContents @TableContentsEntry
- indent { 0f }
- crosstag { @Tag }
- number { @TableNumber }
- title { @InitialLanguage @Language @ContentsCaption }
- pagenum { @PageOf @Tag }
- // @TableCounterIncrement @Tag
- // @TitleMarker @Tag { @Tag } @Value { @Caption }
- // @Body
- // @PageMark @Tag
- }
- }
-
- def @TableTarget
- {
- @Location @Case {
- PageTop @Yield @PageTopPlace&&following
- EvenPageTop @Yield @PageTopPlace&&following
- FullPage @Yield @FullPagePlace&&following
- EvenFullPage @Yield @FullPagePlace&&following
- PageFoot @Yield @PageFootAndTopPlace&&following
- ColTop @Yield @ColTopPlace&&following
- ColFoot @Yield @ColFootAndTopPlace&&following
- ColEnd @Yield @EndTableList&&following
- Display @Yield @AfterLinePlace&&following
- AfterLine @Yield @AfterLinePlace&&following
- TryAfterLine @Yield @TryAfterLinePlace&&following
- }
- }
-
- def @SendEncl into { @TableTarget }
- right x
- {
- def @Enclose right x
- {
- @OnePg @Case {
- No @Yield @Format x
- Yes @Yield x
- }
- }
-
- x
- }
-
- def @Send into { @TableTarget }
- right x
- {
- x
- }
-
- def @EvenFullPageSend into { @EvenFullPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @EvenPageSend into { @EvenPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @RawTableVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield @OneRow { @Format @TableVal @DP @CaptionVal }
- Yes.Above @Yield @OneRow { @CaptionVal @DP @Format @TableVal }
- Yes.None @Yield @OneRow { @Format @TableVal }
- No.Below @Yield { @Format @TableVal @DP @CaptionVal }
- No.Above @Yield { @CaptionVal @DP @Format @TableVal }
- No.None @Yield { @Format @TableVal }
- }
- }
-
- def @NonRawTableVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield {
- @Send @OneRow @HExpand { @Format @TableVal @DP @CaptionVal // @DupRunner}
- }
- Yes.Above @Yield {
- @Send @OneRow @HExpand { @CaptionVal @DP @Format @TableVal // @DupRunner}
- }
- Yes.None @Yield {
- @Send @OneRow @HExpand { @Format @TableVal // @DupRunner }
- }
- No.Below @Yield {
- @SendEncl { @TableVal // @Send { @CaptionVal // @DupRunner } }
- }
- No.Above @Yield {
- @Send { @CaptionVal // @SendEncl { @TableVal // @DupRunner } }
- }
- No.None @Yield {
- @SendEncl { @TableVal // @DupRunner }
- }
- }
- }
-
- @Location @Case {
- Raw @Yield @RawTableVal
- Display @Yield { @NonRawTableVal &1rt }
- EvenPageTop @Yield @EvenPageSend @NonRawTableVal
- EvenFullPage @Yield @EvenFullPageSend @NonRawTableVal
- else @Yield @NonRawTableVal
- }
- }
-
-
- ###########################################################################
- # #
- # Floating floaters (exact clone of figure and table code above). #
- # #
- ###########################################################################
-
- export @Tag prefix
- def @FloaterPrefixMarker
- named @Tag {}
- named prefix {}
- {
- @Null
- }
-
- export @Tag count
- def @FloaterCounterMarker
- named @Tag {}
- named count {}
- {
- @Null
- }
-
- def @RawFloaterNum right tag
- {
- @FloaterCounterMarker&&tag @Open { @Next count }
- }
-
- def @FloaterCounterIncrement
- right tag
- {
- @FloaterCounterMarker&&preceding @Tagged tag
- // @FloaterPrefixMarker&&preceding @Tagged tag
- // @FloaterCounterMarker count { @RawFloaterNum tag }
- // @NumberMarker @Tag { tag }
- @Value { { @FloaterPrefixMarker&&tag @Open { prefix } }
- @Join {@FloaterNumbers @Num @RawFloaterNum tag}
- }
- }
-
- def @BeginFloaterCounter
- left condition
- right prefix
- {
- condition @Do {
- @FloaterPrefixMarker prefix { prefix }
- // @FloaterCounterMarker count { 0 }
- }
- }
-
- def @EndFloaterList { @Galley //@MidGap @EndFloaterList }
-
- def @Floater
- named @Tag {}
- named @Caption { dft }
- named @ShortCaption { dft }
- named @CaptionPos { @FloaterCaptionPos }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @FloaterFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @OnePage { dft }
- named @Location { @FloaterLocation }
- right @Body
- {
- def @FloaterNumber
- {
- @BypassNumber @Dft @NumberOf @Tag
- }
-
- def @ContentsCaption
- {
- @ShortCaption @Dft @Caption
- }
-
- def @OnePg
- {
- @OnePage @Case {
- { No no } @Yield No
- { Yes yes } @Yield Yes
- dft @Yield { @Location @Case {
- PageTop @Yield No
- EvenPageTop @Yield No
- FullPage @Yield No
- EvenFullPage @Yield No
- PageFoot @Yield Yes
- ColTop @Yield No
- ColFoot @Yield Yes
- ColEnd @Yield No
- Display @Yield Yes
- AfterLine @Yield Yes
- TryAfterLine @Yield Yes
- Raw @Yield No
- }
- }
- }
- }
-
- def @CaptionState
- {
- @Caption @Case {
- dft @Yield None
- else @Yield { @CaptionPos @Case {
- { Below below } @Yield Below
- { Above above } @Yield Above
- } }
- }
- }
-
- def @CaptionVal
- {
- @FloaterCaptionFont @Font @FloaterCaptionBreak @Break
- { ||0.5rt @FloaterCaptionFormat
- word { floater @WordVal @FloaterWord }
- number { @FloaterNumber }
- caption { @Caption }
- }
- }
-
- def @FloaterVal
- {
- @InitialLanguage @Language
- {
- @MakeFloaterContents @FloaterContentsEntry
- indent { 0f }
- crosstag { @Tag }
- number { @FloaterNumber }
- title { @InitialLanguage @Language @ContentsCaption }
- pagenum { @PageOf @Tag }
- // @FloaterCounterIncrement @Tag
- // @TitleMarker @Tag { @Tag } @Value { @Caption }
- // @Body
- // @PageMark @Tag
- }
- }
-
- def @FloaterTarget
- {
- @Location @Case {
- PageTop @Yield @PageTopPlace&&following
- EvenPageTop @Yield @PageTopPlace&&following
- FullPage @Yield @FullPagePlace&&following
- EvenFullPage @Yield @FullPagePlace&&following
- PageFoot @Yield @PageFootAndTopPlace&&following
- ColTop @Yield @ColTopPlace&&following
- ColFoot @Yield @ColFootAndTopPlace&&following
- ColEnd @Yield @EndFloaterList&&following
- Display @Yield @AfterLinePlace&&following
- AfterLine @Yield @AfterLinePlace&&following
- TryAfterLine @Yield @TryAfterLinePlace&&following
- }
- }
-
- def @SendEncl into { @FloaterTarget }
- right x
- {
- def @Enclose right x
- {
- @OnePg @Case {
- No @Yield @Format x
- Yes @Yield x
- }
- }
-
- x
- }
-
- def @Send into { @FloaterTarget }
- right x
- {
- x
- }
-
- def @EvenFullPageSend into { @EvenFullPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @EvenPageSend into { @EvenPagePlace&&following }
- right x
- {
- @OneRow @HExpand x
- }
-
- def @RawFloaterVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield @OneRow { @Format @FloaterVal @DP @CaptionVal }
- Yes.Above @Yield @OneRow { @CaptionVal @DP @Format @FloaterVal }
- Yes.None @Yield @OneRow { @Format @FloaterVal }
- No.Below @Yield { @Format @FloaterVal @DP @CaptionVal }
- No.Above @Yield { @CaptionVal @DP @Format @FloaterVal }
- No.None @Yield { @Format @FloaterVal }
- }
- }
-
- def @NonRawFloaterVal
- {
- @OnePg.@CaptionState @Case
- {
- Yes.Below @Yield {
- @Send @OneRow @HExpand { @Format @FloaterVal @DP @CaptionVal // @DupRunner}
- }
- Yes.Above @Yield {
- @Send @OneRow @HExpand { @CaptionVal @DP @Format @FloaterVal // @DupRunner}
- }
- Yes.None @Yield {
- @Send @OneRow @HExpand { @Format @FloaterVal // @DupRunner }
- }
- No.Below @Yield {
- @SendEncl { @FloaterVal // @Send { @CaptionVal // @DupRunner } }
- }
- No.Above @Yield {
- @Send { @CaptionVal // @SendEncl { @FloaterVal // @DupRunner } }
- }
- No.None @Yield {
- @SendEncl { @FloaterVal // @DupRunner }
- }
- }
- }
-
- @Location @Case {
- Raw @Yield @RawFloaterVal
- Display @Yield { @NonRawFloaterVal &1rt }
- EvenPageTop @Yield @EvenPageSend @NonRawFloaterVal
- EvenFullPage @Yield @EvenFullPageSend @NonRawFloaterVal
- else @Yield @NonRawFloaterVal
- }
- }
-
-
- ###########################################################################
- # #
- # Glossary. #
- # #
- ###########################################################################
-
- def @GlossaryList { @Galley //@GlossaryGap @GlossaryList }
-
- def @GlossarySection into { @GlossaryPlace&&following }
- right etc
- {
- // @GlossaryList
- // etc
- //1rt
- }
-
- def @DoGlossary into { @GlossaryList&&following }
- left @Key
- named name {}
- named pnum {}
- right body
- {
- @GlossaryFont @Font @GlossaryBreak @Break @GlossaryFormat
- @Name { name }
- @PageNum { pnum }
- @Body { body }
- }
-
- def @Glossary
- left name
- named sortkey { dft }
- right body
- {
- def key { sortkey @Dft name }
-
- @MakeGlossary @Case {
- { Yes yes } @Yield { @PageMark key &
- key @DoGlossary name { name } pnum { @PageOf key } body
- }
- else @Yield @Null
- }
- }
-
- def @InGlossary
- right x
- {
- @MakeGlossary @Case {
- { Yes yes } @Yield { @InGlossaryFormat @InGlossaryFont @Font x }
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # Index. #
- # #
- ###########################################################################
-
- def @IndexList { @Galley //1vx @IndexList }
- def @BypassIndexList { @Galley //1vx @BypassIndexList }
-
- def @IndexSection into { @IndexPlace&&following }
- right etc
- {
- // @IndexBreak @Break @IndexList
- // @IndexBreak @Break @BypassIndexList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndex into { @IndexList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@Index, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexFormat body
- 1 @Yield @SubIndexFormat body
- 2 @Yield @SubSubIndexFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexCtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexCtdFormat {continued @WordVal @IndexCtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexCtdFormat {continued @WordVal @IndexCtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexFont @Font @IndexBreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndex
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndex @Case {
- Yes @Yield { lpart @DoIndex depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndex { @RawIndex depth { 1 } }
- macro @RawSubSubIndex { @RawIndex depth { 2 } }
-
- def @Index
- left lpart
- named @Tag {}
- named pnformat right @PageNum { Ordinary }
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @Fmt right x
- {
- {pnformat x} @Case
- {
- Ordinary @Yield @IndexTypeOrdinary x
- Main @Yield @IndexTypeMain x
- Special @Yield @IndexTypeSpecial x
- else @Yield {pnformat x}
- }
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag} @IndexRangeFormat {@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndex @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndex depth { depth } pgrange { @Fmt @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndex { @Index depth { 1 } }
- macro @SubSubIndex { @Index depth { 2 } }
-
- def @IndexBlanks
- {
- b @RawIndex {} c @RawIndex {} d @RawIndex {} e @RawIndex {}
- f @RawIndex {} g @RawIndex {} h @RawIndex {} i @RawIndex {}
- j @RawIndex {} k @RawIndex {} l @RawIndex {} m @RawIndex {}
- n @RawIndex {} o @RawIndex {} p @RawIndex {} q @RawIndex {}
- r @RawIndex {} s @RawIndex {} t @RawIndex {} u @RawIndex {}
- v @RawIndex {} w @RawIndex {} x @RawIndex {} y @RawIndex {}
- z @RawIndex {}
- }
-
- def @IndexSpacer
- left lpart
- named above { @IndexSpacerAbove }
- named below { @IndexSpacerBelow }
- named font { @IndexSpacerFont }
- named format right @Body { @IndexSpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndex @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexSpacer { @IndexSpacer above { 0i } }
-
- def @IndexLetters
- {
- a @InitialIndexSpacer A
- b @IndexSpacer B c @IndexSpacer C d @IndexSpacer D e @IndexSpacer E
- f @IndexSpacer F g @IndexSpacer G h @IndexSpacer H i @IndexSpacer I
- j @IndexSpacer J k @IndexSpacer K l @IndexSpacer L m @IndexSpacer M
- n @IndexSpacer N o @IndexSpacer O p @IndexSpacer P q @IndexSpacer Q
- r @IndexSpacer R s @IndexSpacer S t @IndexSpacer T u @IndexSpacer U
- v @IndexSpacer V w @IndexSpacer W x @IndexSpacer X y @IndexSpacer Y
- z @IndexSpacer Z
- }
-
- def @BypassBeginIndexPlace { @Galley }
-
- def @BypassBeginIndex force into { @BypassBeginIndexPlace&&preceding } {}
-
- def @BypassRawIndex force into { @BypassIndexList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndex { @Null }
-
-
- ###########################################################################
- # #
- # IndexA. #
- # #
- ###########################################################################
-
- def @IndexAList { @Galley //1vx @IndexAList }
- def @BypassIndexAList { @Galley //1vx @BypassIndexAList }
-
- def @IndexASection into { @IndexAPlace&&following }
- right etc
- {
- // @IndexABreak @Break @IndexAList
- // @IndexABreak @Break @BypassIndexAList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndexA into { @IndexAList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@IndexA, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexAFormat body
- 1 @Yield @SubIndexAFormat body
- 2 @Yield @SubSubIndexAFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexACtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexACtdFormat {continued @WordVal @IndexACtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexACtdFormat {continued @WordVal @IndexACtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexAFont @Font @IndexABreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndexA
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndexA @Case {
- Yes @Yield { lpart @DoIndexA depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndexA { @RawIndexA depth { 1 } }
- macro @RawSubSubIndexA { @RawIndexA depth { 2 } }
-
- def @IndexA
- left lpart
- named @Tag {}
- named pnformat right @PageNum { Ordinary }
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @Fmt right x
- {
- {pnformat x} @Case
- {
- Ordinary @Yield @IndexATypeOrdinary x
- Main @Yield @IndexATypeMain x
- Special @Yield @IndexATypeSpecial x
- else @Yield {pnformat x}
- }
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag} @IndexARangeFormat {@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndexA @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndexA depth { depth } pgrange { @Fmt @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndexA { @IndexA depth { 1 } }
- macro @SubSubIndexA { @IndexA depth { 2 } }
-
- def @IndexABlanks
- {
- b @RawIndexA {} c @RawIndexA {} d @RawIndexA {} e @RawIndexA {}
- f @RawIndexA {} g @RawIndexA {} h @RawIndexA {} i @RawIndexA {}
- j @RawIndexA {} k @RawIndexA {} l @RawIndexA {} m @RawIndexA {}
- n @RawIndexA {} o @RawIndexA {} p @RawIndexA {} q @RawIndexA {}
- r @RawIndexA {} s @RawIndexA {} t @RawIndexA {} u @RawIndexA {}
- v @RawIndexA {} w @RawIndexA {} x @RawIndexA {} y @RawIndexA {}
- z @RawIndexA {}
- }
-
- def @IndexASpacer
- left lpart
- named above { @IndexASpacerAbove }
- named below { @IndexASpacerBelow }
- named font { @IndexASpacerFont }
- named format right @Body { @IndexASpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexAList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndexA @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexASpacer { @IndexASpacer above { 0i } }
-
- def @IndexALetters
- {
- a @InitialIndexASpacer A
- b @IndexASpacer B c @IndexASpacer C d @IndexASpacer D e @IndexASpacer E
- f @IndexASpacer F g @IndexASpacer G h @IndexASpacer H i @IndexASpacer I
- j @IndexASpacer J k @IndexASpacer K l @IndexASpacer L m @IndexASpacer M
- n @IndexASpacer N o @IndexASpacer O p @IndexASpacer P q @IndexASpacer Q
- r @IndexASpacer R s @IndexASpacer S t @IndexASpacer T u @IndexASpacer U
- v @IndexASpacer V w @IndexASpacer W x @IndexASpacer X y @IndexASpacer Y
- z @IndexASpacer Z
- }
-
- def @BypassBeginIndexAPlace { @Galley }
-
- def @BypassBeginIndexA force into { @BypassBeginIndexAPlace&&preceding } {}
-
- def @BypassRawIndexA force into { @BypassIndexAList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndexA { @Null }
-
-
- ###########################################################################
- # #
- # IndexB. #
- # #
- ###########################################################################
-
- def @IndexBList { @Galley //1vx @IndexBList }
- def @BypassIndexBList { @Galley //1vx @BypassIndexBList }
-
- def @IndexBSection into { @IndexBPlace&&following }
- right etc
- {
- // @IndexBBreak @Break @IndexBList
- // @IndexBBreak @Break @BypassIndexBList
- // @ClearHeaderComponent
- // etc
- //1rt
- }
-
- def @DoIndexB into { @IndexBList&&following }
- left @Key # sort key
- named pgrange {} # page numbers, or empty if none
- named depth {} # 0, 1, or 2 (@IndexB, @Sub, or @SubSub)
- right body # body, not including any prefix
- {
- def @Body
- {
- depth @Case {
- 0 @Yield @IndexBFormat body
- 1 @Yield @SubIndexBFormat body
- 2 @Yield @SubSubIndexBFormat body
- }
- }
-
- def @Enclose right x
- {
- @IndexBCtd.depth @Case {
-
- Yes.0 @Yield {
- @ClearHeaderComponent
- //1vx
- x
- //1vx
- 1vx @SetHeaderComponent {
- @Body @IndexBCtdFormat {continued @WordVal @IndexBCtdWord}
- }
- //1vx
- 1vx @BeginHeaderComponent (unused)
- }
-
- Yes.1 @Yield {
- @EndHeaderComponent
- //1vx
- x
- //1vx
- 1vx @BeginHeaderComponent {
- @Body @IndexBCtdFormat {continued @WordVal @IndexBCtdWord}
- }
- }
-
- else @Yield x
-
- }
- }
-
- def @Merge left lpart right rpart
- {
- { lpart @Rump { lpart @Meld rpart } } @Case
- {
- "" @Yield lpart
- else @Yield { { lpart{@OneCol ,} } @Meld rpart }
- }
-
- }
-
- @IndexBFont @Font @IndexBBreak @Break pgrange @Case {
- "" @Yield { @Body &"0.03fu" {} }
- else @Yield { @Body &"0.03fu" {}{@OneCol ,} pgrange }
-
- }
- }
-
- def @RawIndexB
- left lpart
- named depth { 0 }
- right rpart
- {
- @MakeIndexB @Case {
- Yes @Yield { lpart @DoIndexB depth { depth } rpart }
- else @Yield @Null
- }
- }
-
- macro @RawSubIndexB { @RawIndexB depth { 1 } }
- macro @RawSubSubIndexB { @RawIndexB depth { 2 } }
-
- def @IndexB
- left lpart
- named @Tag {}
- named pnformat right @PageNum { Ordinary }
- named depth { 0 }
- named to {}
- right rpart
- {
- def @PgMk right tag
- {
- tag @CrossLink @PageOf tag
- }
-
- def @Fmt right x
- {
- {pnformat x} @Case
- {
- Ordinary @Yield @IndexBTypeOrdinary x
- Main @Yield @IndexBTypeMain x
- Special @Yield @IndexBTypeSpecial x
- else @Yield {pnformat x}
- }
- }
-
- def @PgRange
- {
- to @Case
- {
- "" @Yield @PgMk @Tag
- else @Yield {
- { @PageOf @Tag } @Case
- {
- { @PageOf to } @Yield { @PgMk @Tag }
- else @Yield { {@PgMk @Tag} @IndexBRangeFormat {@PgMk to} }
- }
- }
- }
- }
-
- @MakeIndexB @Case {
- Yes @Yield {
- @PageMark @Tag &
- lpart @DoIndexB depth { depth } pgrange { @Fmt @PgRange } rpart }
- else @Yield @Null
- }
- }
-
- macro @SubIndexB { @IndexB depth { 1 } }
- macro @SubSubIndexB { @IndexB depth { 2 } }
-
- def @IndexBBlanks
- {
- b @RawIndexB {} c @RawIndexB {} d @RawIndexB {} e @RawIndexB {}
- f @RawIndexB {} g @RawIndexB {} h @RawIndexB {} i @RawIndexB {}
- j @RawIndexB {} k @RawIndexB {} l @RawIndexB {} m @RawIndexB {}
- n @RawIndexB {} o @RawIndexB {} p @RawIndexB {} q @RawIndexB {}
- r @RawIndexB {} s @RawIndexB {} t @RawIndexB {} u @RawIndexB {}
- v @RawIndexB {} w @RawIndexB {} x @RawIndexB {} y @RawIndexB {}
- z @RawIndexB {}
- }
-
- def @IndexBSpacer
- left lpart
- named above { @IndexBSpacerAbove }
- named below { @IndexBSpacerBelow }
- named font { @IndexBSpacerFont }
- named format right @Body { @IndexBSpacerFormat @Body }
- right rpart
- {
- def @Send into { @IndexBList&&following }
- right @Key
- {
- @ClearHeaderComponent
- //
- //above
- @CNP
- @OneRow { font @Font format rpart //below }
- }
-
- @MakeIndexB @Case {
- Yes @Yield @Send lpart
- else @Yield @Null
- }
- }
-
- macro @InitialIndexBSpacer { @IndexBSpacer above { 0i } }
-
- def @IndexBLetters
- {
- a @InitialIndexBSpacer A
- b @IndexBSpacer B c @IndexBSpacer C d @IndexBSpacer D e @IndexBSpacer E
- f @IndexBSpacer F g @IndexBSpacer G h @IndexBSpacer H i @IndexBSpacer I
- j @IndexBSpacer J k @IndexBSpacer K l @IndexBSpacer L m @IndexBSpacer M
- n @IndexBSpacer N o @IndexBSpacer O p @IndexBSpacer P q @IndexBSpacer Q
- r @IndexBSpacer R s @IndexBSpacer S t @IndexBSpacer T u @IndexBSpacer U
- v @IndexBSpacer V w @IndexBSpacer W x @IndexBSpacer X y @IndexBSpacer Y
- z @IndexBSpacer Z
- }
-
- def @BypassBeginIndexBPlace { @Galley }
-
- def @BypassBeginIndexB force into { @BypassBeginIndexBPlace&&preceding } {}
-
- def @BypassRawIndexB force into { @BypassIndexBList&&preceding }
- named indent { 0f }
- right x
- {
- &indent x
- }
-
- def @BypassEndIndexB { @Null }
-
-
- ###########################################################################
- # #
- # Colophon. #
- # #
- ###########################################################################
-
- def @ColophonList { @Galley //1vx @ColophonList }
-
- def @ColophonSection into { @ColophonPlace&&following }
- right etc
- {
- // @ColophonBreak @Break @ColophonFont @Font @ColophonList
- // etc
- //1rt
- }
-
-
- ###########################################################################
- # #
- # @LargeScaleStructure #
- # #
- # The prototype for the value of each large-scale structure symbol #
- # (@Chapter, @Section, etc.) #
- # #
- ###########################################################################
-
- def @LargeScaleStructure
- named tag {} # tag of this large-scale structure sym
- named type {} # MajorIntro, Major, VeryMajor, or Minor
- named initiallanguage {} # its language
- named title {} # its full title
- named runningtitle { dft } # its running title Jeffk 12/11/02 from {}
- named aboveheadinggap { 0f } # gap above heading
- named headingfont {} # its heading font
- named headingbreak {} # its heading break
- named headingformat # its heading format
- left @Num right @Body {}
- named headingtext { @Null } # heading text
- named incontents { No } # entry in table of contents required
- named contentsindent { 0f } # only used if type is Minor
- named word {}
- named numbers { None }
- named attachnum {} # only if numbers is not None
- named retrievenum {} # only if numbers is not None
- named bypassnumber {} # only if numbers is not None, or VeryMajor
- named prefix {} # prefix of number of this symbol
- named pnprefix {} # prefix for page numbers of this sym
- named majornum { dft }
- named majortitle { dft }
- named minornum { dft }
- named minortitle { dft }
- named intheorems { No }
- named indisplays { No }
- named infigures { No }
- named intables { No }
- named infloaters { No }
- named inrunners { No }
- named sendheader right @Body {}
- named innergap {}
- named endifmajor right innergap {
- @EndFigureList
- //innergap @EndNoteList 1
- //innergap @ChapRefSection
- }
- named wantindefinite { No }
- named newpage { No }
- right @Body
- {
-
- def @ShortNum
- {
- numbers @Then {
- bypassnumber @Dft {
- prefix @Join { numbers @Num retrievenum }
- }
- }
- }
-
- def @LongNum
- {
- numbers @Then {
- # initiallanguage @Language { word @NumSep @ShortNum }
- @ShortNum @Case {
- "" @Yield { } # numberless: don't produce `word'
- else @Yield {
- initiallanguage @Language { word @NumSep @ShortNum }
- }
- }
- }
- }
-
- def @ShortTitle
- {
- initiallanguage @Language { runningtitle @Dft title }
- }
-
- def @IfMajor right x
- {
- type @Case {
- { MajorIntro Major ExtraMajor ExtraMajorIntro } @Yield x
- else @Yield @Null
- }
- }
-
- def @StartIfMajor {
- type @Case {
- { MajorIntro Major ExtraMajor ExtraMajorIntro VeryMajor } @Yield Start
- else @Yield NonStart
- }
- }
-
- def @Run right start
- {
- inrunners @Do type @Case {
-
- { Major MajorIntro } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum {}
- @MinorTitle {}
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
-
- { ExtraMajor ExtraMajorIntro } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum { majornum @Dft @LongNum }
- @MinorTitle { majortitle @Dft @ShortTitle }
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
-
- { VeryMajor } @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum {}
- @MinorTitle {}
- @Owner { tag }
- @Prefix {}
- }
-
- Minor @Yield {
- start @Runner
- @MajorNum { majornum @Dft @LongNum }
- @MajorTitle { majortitle @Dft @ShortTitle }
- @MinorNum { minornum @Dft @LongNum }
- @MinorTitle { minortitle @Dft @ShortTitle }
- @Owner { tag }
- @Prefix { pnprefix @Join @ShortNum }
- }
- }
- }
-
- def @ContentsStuff
- {
- incontents.type @Case {
-
- Yes.Minor @Yield {
- incontents @ContentsEntry
- indent { contentsindent }
- crosstag { tag }
- number { @LongNum }
- title { initiallanguage @Language title }
- pagenum { @PageOf tag }
- }
-
- { Yes.Major Yes.MajorIntro Yes.ExtraMajor Yes.ExtraMajorIntro } @Yield {
- incontents @MajorContentsEntry
- indent { contentsindent }
- crosstag { tag }
- number { @LongNum }
- title { initiallanguage @Language title }
- pagenum { @PageOf tag }
- }
-
- { Yes.VeryMajor } @Yield {
- incontents @VeryMajorContentsEntry
- indent { contentsindent }
- title { initiallanguage @Language {
- bypassnumber @ColonSep title } }
- }
-
- else @Yield @Null
- }
- }
-
- def @MinorTitle right x
- {
- newpage @Case {
- { No no } @Yield @Protect {@LongNum headingformat title}
- { Yes yes } @Yield { @Null @NP @LongNum headingformat title }
- }
- }
-
- def @Heading
- {
-
- type @Case {
-
- Minor @Yield {
- headingfont @Font headingbreak @Break
- @MinorTitle {@LongNum headingformat title}
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
-
- { Major MajorIntro ExtraMajor ExtraMajorIntro } @Yield {
- sendheader {
- //aboveheadinggap
- headingfont @Font
- headingbreak @Break { @LongNum headingformat title }
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
- }
-
- { VeryMajor } @Yield { sendheader {
- //aboveheadinggap
- headingfont @Font
- headingbreak @Break { bypassnumber headingformat title }
- // @Run @StartIfMajor
- // @PageMark tag
- @DP headingtext
- }
- }
- }
- }
-
- initiallanguage @Language {
- @Heading
- // wantindefinite @Case {
- Yes @Yield @Null
- No @Yield ""
- }
- // numbers @Do {
- attachnum & @NumberMarker @Tag { tag } @Value { @ShortNum }
- }
- // @IfMajor { @FootNoteThrough @Do @BeginFootNoteCounter }
- # // @Run @StartIfMajor
- // @ContentsStuff
- // @TitleMarker @Tag { tag } @Value { title }
- // intheorems @BeginAllCounters @ShortNum
- // indisplays @BeginDisplayCounter @ShortNum
- // infigures @BeginFigureCounter @ShortNum
- // intables @BeginTableCounter @ShortNum
- // infloaters @BeginFloaterCounter @ShortNum
- // @Body
- //innergap @IfMajor endifmajor innergap
- // @Run NonStart
- }
- }
-
-@End @DocumentSetup
diff --git a/include/include/eiffel b/include/include/eiffel
deleted file mode 100644
index 4fc89ea..0000000
--- a/include/include/eiffel
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Eiffel program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { eiffelf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @EiffelSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { varying @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/eiffelf b/include/include/eiffelf
deleted file mode 100644
index b76b6bc..0000000
--- a/include/include/eiffelf
+++ /dev/null
@@ -1,446 +0,0 @@
-
-###############################################################################
-# #
-# Lout @EiffelSetup package for formatting Eiffel programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Eiffel
-def @EiffelSetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { varying @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @Eiffel
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lEiffel" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lEiffel" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Eiffel
-
-@End @EiffelSetup
diff --git a/include/include/eq b/include/include/eq
deleted file mode 100644
index 6d35832..0000000
--- a/include/include/eq
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for equation formatting #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { eqf } line #
-# #
-# This line causes Lout to read the definitions for equations, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { eqf }
-
-
-###############################################################################
-# #
-# This package does not offer default options that can be changed. #
-# #
-###############################################################################
diff --git a/include/include/eqf b/include/include/eqf
deleted file mode 100644
index 23dd3bd..0000000
--- a/include/include/eqf
+++ /dev/null
@@ -1,1717 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Eq package for equation formatting (Version 3.0) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, December 1990. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Version 3.0 by Jeffrey H. Kingston and Robert Marsa, March 1996. #
-# #
-# This package makes extensive use of the Adobe Systems Symbol font, and #
-# it assumes that the font has not been recoded. It could be rewritten #
-# using the @Char symbol to be made independent of any recoding, but since #
-# there seems no reason to ever recode this font, I haven't bothered. #
-# #
-# See "Eq - a Lout package for typesetting mathematics" for user #
-# information. Acknowledgement: the @Eq language is based closely on #
-# the Eqn language of B. W. Kernighan and L. L. Cherry; the spacing rules #
-# are similar to those of the TeX system by D. E. Knuth. #
-# #
-# Version 3.0 makes use of the new x and y units of measurement to improve #
-# the spacing rules. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export "`" "``" "```" bin rel punct non vctr big small
-
- space exclam universal numbersign existential percent
- ampersand suchthat parenleft parenright asteriskmath
- plus comma minus period slash zero one two three four
- five six seven eight nine colon semicolon less equal
- greater question congruent Alpha Beta Chi Delta Epsilon
- Phi Gamma Eta Iota thetaone Kappa Lambda Mu Nu Omicron
- Pi Theta Rho Sigma Tau Upsilon sigmaone Omega Xi Psi Zeta
- bracketleft therefore bracketright perpendicular underscore
- radicalex alpha beta chi delta epsilon phi gamma eta iota
- phione kappa lambda mu nu omicron pi theta rho sigma tau
- upsilon omegaone omega xi psi zeta braceleft bar braceright
- similar Upsilonone minute lessequal fraction infinity florin
- club diamond heart spade arrowboth arrowleft arrowup
- arrowright arrowdown degree plusminus second greaterequal
- multiply proportional partialdiff bullet divide notequal
- equivalence approxequal ellipsis arrowvertex arrowhorizex
- carriagereturn aleph Ifraktur Rfraktur weierstrass
- circlemultiply circleplus emptyset intersection union
- propersuperset reflexsuperset notsubset propersubset
- reflexsubset element notelement angle gradient registerserif
- copyrightserif trademarkserif product radical dotmath
- logicalnot logicaland logicalor arrowdblboth arrowdblleft
- arrowdblup arrowdblright arrowdbldown lozenge angleleft
- registersans copyrightsans trademarksans summation parenlefttp
- parenleftex parenleftbt bracketlefttp bracketleftex
- bracketleftbt bracelefttp braceleftmid braceleftbt braceex
- angleright integral integraltp integralex integralbt
- parenrighttp parenrightex parenrightbt bracketrighttp
- bracketrightex bracketrightbt bracerighttp bracerightmid
- bracerightbt
-
- hbar Re Im partial infty prime nabla surd top bot dbar
- triangle backslash forall exists neg
- circle filledcircle square
-
- sum prod coprod int oint bcap bcup bvee bwedge bodot botimes
- boplus buplus
-
- "+" "-" "+-" "-+" setminus cdot times "*" circ div cap cup uplus
- sqcap sqcup triangleleft triangleright
- wr bigcirc bigtriangleup bigtriangledown vee wedge oplus ominus
- otimes oslash odot dagger daggerdbl amalg
-
- "<" ">" "=" "<=" prec preceq "<<" subset subseteq sqsubseteq
- in vdash smile frown ">=" succ succeq ">>" supset supseteq
- sqsupseteq ni dashv mid parallel "==" "~" "-~" asymp "~~"
- "=~" bowtie propto models doteq trieq perp notsub notin "!=" not
- "<->" "<--" "-->" up down "<=>" "<==" "==>" dblup dbldown
- ":" "::" ":="
-
- lpar blpar rpar brpar lbrack blbrack rbrack brbrack lbrace blbrace
- rbrace brbrace lfloor blfloor rfloor brfloor lceil blceil
- rceil brceil langle blangle rangle brangle
-
- ";" "," col
-
- "!" "?" "%" "(" ")" "[" "]"
-
- arccos arcsin arctan arg cos cosh cot coth csc deg det dim exp
- gcd hom inf ker lg lim liminf limsup ln log max min Pr sec sin
- sinh supr tan tanh mod ldots cdots vdots ddots del grad
- "..." ",...," "'" "''" "'''" "''''" empty
-
- triangleup triangledown
-
- leftarrow longleftarrow dblleftarrow dbllongleftarrow
- rightarrow longrightarrow dblrightarrow dbllongrightarrow
- leftrightarrow longleftrightarrow dblleftrightarrow dbllongleftrightarrow
- mapsto longmapsto hookleftarrow hookrightarrow leadsto
- leftharpoonup rightharpoonup leftharpoondown rightharpoondown
- rightleftharpoons
- uparrow dbluparrow downarrow dbldownarrow updownarrow dblupdownarrow
- nearrow searrow swarrow nwarrow
-
- sup sub tsub supp on ton frac half third over from to widefrom wideto
- dot dotdot hat tilde vec dyad overbar underbar sqrt root zroot
- nextcol above labove cabove rabove mabove
- matrix pmatrix bmatrix brmatrix fmatrix cmatrix amatrix
-
- "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
-
-def @Eq
- named initzunit { 1f }
- body @Body
-@Begin
-
-
- ###################################################################
- # #
- # Context-sensitive format changes. #
- # #
- # Equation formatting (according to Knuth) demands changes in #
- # the appearance of equations depending on context. These are: #
- # #
- # @Smaller x Superscripts and subscripts are to be set #
- # in a smaller font size. The @Smaller #
- # symbol implements this by changing the #
- # f unit. #
- # #
- # @HSqueeze x The horizontal space surrounding binary #
- # operators and relations is to be reduced #
- # within superscripts and subscripts, etc. #
- # The @HSqueeze symbol implements this by #
- # changing the y unit, which is not used by #
- # Lout but which is used by symbols @ThinGap, #
- # @MedGap and @ThickGap. #
- # #
- # @VSqueeze x The vertical space taken by superscripts #
- # and subscripts is to be reduced within #
- # built-up fractions and under root signs. #
- # The @VSqueeze symbol implements this by #
- # changing the z unit, which is not used by #
- # Lout but is used by the @SupGap symbol. #
- # #
- # Knuth also recommends some changes that depend on whether the #
- # equation is displayed or inline; these are not implemented, #
- # except that the @E symbol for inline equations (defined as #
- # a macro at the bottom of this file) includes a @VSqueeze. #
- # #
- ###################################################################
-
- def @SpaceGap { 0.05f }
-
- def @Smaller right x { 0.7f @Font @SpaceGap @Space x }
-
- def @HSqueeze right x { 0.2f @YUnit x }
-
- def @VSqueeze right x { 0.7f @ZUnit x }
-
- def @SkewGap { 0.05f }
- def @SupGap { 0.43zk }
- def @ThinGap { 0.15y }
- def @MedGap { 0.20y }
- def @ThickGap { 0.25y }
- def @ColGap { 0.8f }
- def @RowGap { 0.5f }
-
- def "`" { &@ThinGap }
- def "``" { &@MedGap }
- def "```" { &@ThickGap }
-
- def bin right x { `` x `` }
- def rel right x { ``` x ``` }
- def punct right x { x ` }
- def non right x { 0c @YUnit x }
- def big right x { 1.3f @Font @SpaceGap @Space x }
- def small right x { 0.6f @Font @SpaceGap @Space x }
-
- def @Base right x { Base @Font x }
- def @Sym right x { {Symbol Base} @Font x }
-
- def @HLine
- named line { @BackEnd @Case { PostScript @Yield { "0.05 ft setlinewidth" } PDF @Yield { "__mul(__loutf, 0.05) w" } } }
- {
- @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto xsize 0 lineto" line "stroke" } @Graphic {}
- }
- PDF @Yield { # note re-arrangement of commands (setlinewidth (='w') not allowed in a path)
- { line "0 0 m __xsize 0 l s" } @Graphic {}
- }
- }
- }
-
- def @VLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- "0 0 moveto 0 ysize lineto 0.05 ft setlinewidth stroke" @Graphic {}
- }
- PDF @Yield {
- "__mul(__loutf, 0.05) w 0 0 m 0 __ysize l s" @Graphic {}
- }
- }
- }
-
- def vctr
- right x
- {
- 0.5w @VShift x
- }
-
- def @Strut right x
- {
- @OneCol { x | @OneRow { 0.5f @High ^/ 0.5f @High } }
- }
-
- ###################################################################
- # #
- # Full names #
- # #
- # These symbols and their names are taken directly from the #
- # Adobe Systems Inc. Symbol font (see PostScript Language #
- # Reference Manual, pp. 256-257). The only differences are: #
- # #
- # Adobe: theta1 Eq: thetaone #
- # sigma1 sigmaone #
- # phi1 phione #
- # omega1 omegaone #
- # #
- # These were needed since Lout identifiers do not have digits. #
- # #
- ###################################################################
-
- def space { @Sym "\040" }
- def exclam { @Sym "\041" }
- def universal { @Sym "\042" }
- def numbersign { @Sym "\043" }
- def existential { @Sym "\044" }
- def percent { @Sym "\045" }
- def ampersand { @Sym "\046" }
- def suchthat { @Sym "\047" }
- def parenleft { @Sym "\050" }
- def parenright { @Sym "\051" }
- def asteriskmath { @Sym "\052" }
- def plus { @Sym "+" }
- def comma { @Sym "\054" }
- def minus { @Sym "-" }
- def period { @Sym "\056" }
- def slash { @Sym "\057" }
- def zero { @Sym "\060" }
- def one { @Sym "\061" }
- def two { @Sym "\062" }
- def three { @Sym "\063" }
- def four { @Sym "\064" }
- def five { @Sym "\065" }
- def six { @Sym "\066" }
- def seven { @Sym "\067" }
- def eight { @Sym "\070" }
- def nine { @Sym "\071" }
- def colon { @Sym "\072" }
- def semicolon { @Sym "\073" }
- def less { @Sym "\074" }
- def equal { @Sym "\075" }
- def greater { @Sym "\076" }
- def question { @Sym "\077" }
- def congruent { @Sym "\100" }
- def Alpha { @Sym "\101" }
- def Beta { @Sym "\102" }
- def Chi { @Sym "\103" }
- def Delta { @Sym "\104" }
- def Epsilon { @Sym "\105" }
- def Phi { @Sym "\106" }
- def Gamma { @Sym "\107" }
- def Eta { @Sym "\110" }
- def Iota { @Sym "\111" }
- def thetaone { @Sym "\112" }
- def Kappa { @Sym "\113" }
-
- def Lambda { @Sym "\114" }
- def Mu { @Sym "\115" }
- def Nu { @Sym "\116" }
- def Omicron { @Sym "\117" }
- def Pi { @Sym "\120" }
- def Theta { @Sym "\121" }
- def Rho { @Sym "\122" }
- def Sigma { @Sym "\123" }
- def Tau { @Sym "\124" }
- def Upsilon { @Sym "\125" }
- def sigmaone { @Sym "\126" }
- def Omega { @Sym "\127" }
- def Xi { @Sym "\130" }
- def Psi { @Sym "\131" }
- def Zeta { @Sym "\132" }
- def bracketleft { @Sym "\133" }
- def therefore { @Sym "\134" }
- def bracketright { @Sym "\135" }
- def perpendicular { @Sym "\136" }
- def underscore { @Sym "\137" }
- def radicalex { @Sym "\140" }
- def alpha { @Sym "\141" }
- def beta { @Sym "\142" }
- def chi { @Sym "\143" }
- def delta { @Sym "\144" }
- def epsilon { @Sym "\145" }
- def phi { @Sym "\146" }
- def gamma { @Sym "\147" }
- def eta { @Sym "\150" }
- def iota { @Sym "\151" }
- def phione { @Sym "\152" }
- def kappa { @Sym "\153" }
- def lambda { @Sym "\154" }
- def mu { @Sym "\155" }
- def nu { @Sym "\156" }
-
- def omicron { @Sym "\157" }
- def pi { @Sym "\160" }
- def theta { @Sym "\161" }
- def rho { @Sym "\162" }
- def sigma { @Sym "\163" }
- def tau { @Sym "\164" }
- def upsilon { @Sym "\165" }
- def omegaone { @Sym "\166" }
- def omega { @Sym "\167" }
- def xi { @Sym "\170" }
- def psi { @Sym "\171" }
- def zeta { @Sym "\172" }
- def braceleft { @Sym "\173" }
- def bar { @Sym "\174" }
- def braceright { @Sym "\175" }
- def similar { @Sym "\176" }
- def Upsilonone { @Sym "\241" }
- def minute { @Sym "\242" }
- def lessequal { @Sym "\243" }
- def fraction { @Sym "\244" }
- def infinity { "1.2f" @Font @Sym "\245" }
- def florin { @Sym "\246" }
- def club { @Sym "\247" }
- def diamond { @Sym "\250" }
- def heart { @Sym "\251" }
- def spade { @Sym "\252" }
- def arrowboth { @Sym "\253" }
- def arrowleft { @Sym "\254" }
- def arrowup { @Sym "\255" }
- def arrowright { @Sym "\256" }
- def arrowdown { @Sym "\257" }
- def degree { @Sym "\260" }
- def plusminus { @Sym "\261" }
- def second { @Sym "\262" }
- def greaterequal { @Sym "\263" }
-
- def multiply { @Sym "\264" }
- def proportional { @Sym "\265" }
- def partialdiff { @Sym "\266" }
- def bullet { @Sym "\267" }
- def divide { @Sym "\270" }
- def notequal { @Sym "\271" }
- def equivalence { @Sym "\272" }
- def approxequal { @Sym "\273" }
- def ellipsis { @Sym "\274" }
- def arrowvertex { @Sym "\275" }
- def arrowhorizex { @Sym "\276" }
- def carriagereturn { @Sym "\277" }
- def aleph { @Sym "\300" }
- def Ifraktur { @Sym "\301" }
- def Rfraktur { @Sym "\302" }
- def weierstrass { @Sym "\303" }
- def circlemultiply { @Sym "\304" }
- def circleplus { @Sym "\305" }
- def emptyset { @Sym "\306" }
- def intersection { @Sym "\307" }
- def union { @Sym "\310" }
- def propersuperset { @Sym "\311" }
- def reflexsuperset { @Sym "\312" }
- def notsubset { @Sym "\313" }
- def propersubset { @Sym "\314" }
- def reflexsubset { @Sym "\315" }
- def element { @Sym "\316" }
- def notelement { @Sym "\317" }
- def angle { @Sym "\320" }
- def gradient { @Sym "\321" }
- def registerserif { @Sym "\322" }
- def copyrightserif { @Sym "\323" }
- def trademarkserif { @Sym "\324" }
- def product { @Sym "\325" }
- def radical { @Sym "\326" }
- def dotmath { @Sym "\327" }
-
- def @PureDot # dot with no extra space
- {
- @HContract { &0io 0.4w @HShift dotmath }
- }
-
- def logicalnot { @Sym "\330" }
- def logicaland { @Sym "\331" }
- def logicalor { @Sym "\332" }
- def arrowdblboth { @Sym "\333" }
- def arrowdblleft { @Sym "\334" }
- def arrowdblup { @Sym "\335" }
- def arrowdblright { @Sym "\336" }
- def arrowdbldown { @Sym "\337" }
- def lozenge { @Sym "\340" }
- def angleleft { @Sym "\341" }
- def registersans { @Sym "\342" }
- def copyrightsans { @Sym "\343" }
- def trademarksans { @Sym "\344" }
- def summation { @Sym "\345" }
- def parenlefttp { @Sym "\346" }
- def parenleftex { @Sym "\347" }
- def parenleftbt { @Sym "\350" }
- def bracketlefttp { @Sym "\351" }
- def bracketleftex { @Sym "\352" }
- def bracketleftbt { @Sym "\353" }
- def bracelefttp { @Sym "\354" }
- def braceleftmid { @Sym "\355" }
- def braceleftbt { @Sym "\356" }
- def braceex { @Sym "\357" }
- def angleright { @Sym "\361" }
- def integral { @Sym "\362" }
- def integraltp { @Sym "\363" }
- def integralex { @Sym "\364" }
- def integralbt { @Sym "\365" }
- def parenrighttp { @Sym "\366" }
- def parenrightex { @Sym "\367" }
- def parenrightbt { @Sym "\370" }
- def bracketrighttp { @Sym "\371" }
- def bracketrightex { @Sym "\372" }
- def bracketrightbt { @Sym "\373" }
- def bracerighttp { @Sym "\374" }
- def bracerightmid { @Sym "\375" }
- def bracerightbt { @Sym "\376" }
-
-
- ###################################################################
- # #
- # Short names #
- # #
- # These symbols, their names, and their spacing, are based on #
- # the list in Appendix F of Donald E. Knuth's The TeXBook. #
- # #
- # Group 1 (lowercase Greek letters): see full names above #
- # Group 2 (uppercase Greek letters): see full names above #
- # Group 3 (calligraphic capitals): not provided by Eq #
- # #
- ###################################################################
-
- ###################################################################
- # #
- # Group 4 (miscellaneous Ord symbols) #
- # #
- # Not all of Knuth's symbols are available. The four suits #
- # (heartsuit, etc.), have definitions above. #
- # #
- ###################################################################
-
- def hbar { @OneCol { &0.1f @Base "-" ^/0.25fo h } }
- def Re { Rfraktur }
- def Im { Ifraktur }
- def partial { partialdiff }
- def infty { infinity }
- def prime { minute }
- #def emptyset { defined above }
- def nabla { gradient }
- def surd { radical }
- def top { 180d @Rotate perpendicular }
- def bot { perpendicular }
- def dbar { @Base "||" }
- #def angle { defined above }
- def backslash { "\\" }
- def forall { universal }
- def exists { existential }
- def neg { logicalnot }
-
- def circle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "xsize ysize 2 div moveto"
- "xsize 2 div ysize 2 div xsize 2 div 0 360 arc"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- #
- # VT: draws a counterclockwise 360 degree arc from 0 to +360
- # degree positions (straight right to straight right) with
- # centre = (xsize/2, ysize/2) and radius = xsize/2,
- # implemented as two counterclockwise 180 degree arcs.
- # start at (xsize, ysize/2); the control points are:
- #
- # pt1 = (xsize, ysize/2 + (4/3 * xsize/2))
- # pt2 = (0, ysize/2 + (4/3 * xsize/2))
- #
- # end at (0, ysize/2). Then start at (0, ysize/2); control points
- #
- # pt1 = (0, ysize/2 - (4/3 * xsize/2))
- # pt2 = (xsize, ysize/2 - (4/3 * xsize/2))
- #
- # and end at (xsize, ysize/2).
-
- {
- "__mul(0.04, __loutf) w"
- "__xsize __div(__ysize, 2) m"
- "__xsize __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __div(__ysize, 2) c"
- "0 __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __div(__ysize, 2) c S"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def filledcircle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "xsize ysize 2 div moveto"
- "xsize 2 div ysize 2 div xsize 2 div 0 360 arc"
- "0.04 ft setlinewidth fill"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- #
- # JK: I don't know how to fill in PDF, so this doesn't!
- #
- # VT: draws a counterclockwise 360 degree arc from 0 to +360
- # degree positions (straight right to straight right) with
- # centre = (xsize/2, ysize/2) and radius = xsize/2,
- # implemented as two counterclockwise 180 degree arcs.
- # start at (xsize, ysize/2); the control points are:
- #
- # pt1 = (xsize, ysize/2 + (4/3 * xsize/2))
- # pt2 = (0, ysize/2 + (4/3 * xsize/2))
- #
- # end at (0, ysize/2). Then start at (0, ysize/2); control points
- #
- # pt1 = (0, ysize/2 - (4/3 * xsize/2))
- # pt2 = (xsize, ysize/2 - (4/3 * xsize/2))
- #
- # and end at (xsize, ysize/2).
-
- {
- "__mul(0.04, __loutf) w"
- "__xsize __div(__ysize, 2) m"
- "__xsize __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __div(__ysize, 2) c"
- "0 __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __div(__ysize, 2) c S"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def square
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "0 0 moveto xsize 0 lineto xsize ysize lineto"
- "0 ysize lineto closepath"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.6f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- {
- "__mul(__loutf, 0.04) w"
- "0 0 m __xsize 0 l __xsize __ysize l"
- "0 __ysize l s"
- } @Graphic { 0.6f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def triangle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "0 0 moveto xsize 0 lineto"
- "xsize 2 div ysize lineto closepath"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- PDF @Yield {
- {
- "__mul(__loutf, 0.04) w"
- "0 0 m __xsize 0 l"
- "__div(__xsize, 2) __ysize l s"
- } @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- }
- }
-
-
- ###################################################################
- # #
- # Group 6 ("Large" operators) #
- # #
- # Knuth's large operators automatically change size depending #
- # on whether the equation is display or inline. Eq does not #
- # do this; instead, the `big' operator must be used. #
- # #
- ###################################################################
-
- def sum { summation }
- def prod { product }
- def coprod { 180d @Rotate vctr product }
- def int { 1.3f @Font vctr integral }
- def oint { @OneCol { vctr degree |0.015fo int } }
- def bcap { 1.3f @Font intersection }
- def bcup { 1.3f @Font union }
- def bvee { 1.3f @Font logicalor }
- def bwedge { 1.3f @Font logicaland }
- def bodot { & 1.3f @Font @HContract { circle /0io &0.5rt @PureDot } }
- def botimes { 1.3f @Font circlemultiply }
- def boplus { 1.3f @Font circleplus }
- def buplus { & 1.3f @Font @HContract { &0.5rt 0.7f @Font plus ^/0.2fo union } }
-
- ###################################################################
- # #
- # Group 7 (binary operations) #
- # #
- # All of Knuth's symbols are available except \star, \diamond #
- # and \bullet; a few have been given more mnemonic names. #
- # #
- ###################################################################
-
- def "+" { bin plus }
- def "-" { bin minus }
- def "+-" { bin plusminus }
- def "-+" { bin 180d @Rotate plusminus }
- def setminus { bin backslash }
- def cdot { bin dotmath }
- def times { bin multiply }
- def "*" { bin asteriskmath }
- #def diamond { name used above }
- def circ { bin circle }
- #def bullet { name used above }
- def div { bin divide }
- def cap { bin intersection }
- def cup { bin union }
- def uplus { bin @OneRow @HContract { &0.5rt 0.7f @Font plus ^/0.2fo union}}
- def sqcap { bin
- { @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto 0 ysize lineto xsize ysize lineto"
- "xsize 0 lineto"
- "0.04 ft setlinewidth stroke"
- }
- @Graphic
- { 0.3f @Wide 0.3f @High ^| ^/
- 0.3f @Wide 0.3f @High
- }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w"
- "0 0 m 0 __ysize l __xsize __ysize l"
- "__xsize 0 l s"
- }
- @Graphic
- { 0.3f @Wide 0.3f @High ^| ^/
- 0.3f @Wide 0.3f @High
- }
- }
- }
- }
- }
- def sqcup { 180d @Rotate sqcap }
- def triangleleft { bin 90d @Rotate 0.8f @Font triangle }
- def triangleright { bin "-90d" @Rotate 0.8f @Font triangle}
- def wr { bin vctr {90d @Rotate similar} }
- def bigcirc { bin 1.2f @Font circle }
- def bigtriangleup { bin 1.2f @Font triangle }
- def bigtriangledown { bin 180d @Rotate 1.2f @Font triangle }
- def vee { bin logicalor }
- def wedge { bin logicaland }
- def oplus { bin circleplus }
- def ominus { bin @OneRow @HContract { circle /0io &0.5rt minus}}
- def otimes { bin circlemultiply }
- def oslash {`vctr 60d @Rotate @HContract {circle /0io &0.5rt minus`}}
- def odot { bin @OneRow @HContract {circle /0io &0.5rt @PureDot }}
- def dagger { bin @Base @Char "dagger" }
- def daggerdbl { bin @Base @Char "daggerdbl" }
- def amalg { bin 180d @Rotate vctr product }
-
- ###################################################################
- # #
- # Group 8 (relations) #
- # #
- # All Knuth's operators are available, but many have been #
- # given different, more mnemonic names. Also included is #
- # a not operator for negating the relations. #
- # #
- ###################################################################
-
- def "<" { rel less }
- def ">" { rel greater }
- def "=" { rel equal }
- def "<=" { rel lessequal }
- def prec { rel { 0.45f @Font "-90d" @Rotate
- { parenrighttp ^| parenlefttp }
- }
- }
- def preceq { rel { @OneRow non prec /0.1f minus } }
- def "<<" { rel {less less} }
- def subset { rel propersubset }
- def subseteq { rel reflexsubset }
- def sqsubseteq { rel @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- { { "xsize 0 moveto"
- "0 0 lineto"
- "0 ysize lineto"
- "xsize ysize lineto"
- "0.04 ft setlinewidth stroke"
- }
- @Graphic
- { 0.5f @Wide 0.25f @High ^/
- 0.25f @High
- }
- /0.1f minus
- }
- }
- PDF @Yield {
- { { "__mul(__loutf, 0.04) w"
- "__xsize 0 m"
- "0 0 l"
- "0 __ysize l"
- "__xsize __ysize l s"
- }
- @Graphic
- { 0.5f @Wide 0.25f @High ^/
- 0.25f @High
- }
- /0.1f minus
- }
- }
- }
- }
-
- def in { rel element }
- def vdash { rel vctr{"-90d" @Rotate perpendicular}}
- def smile { rel vctr 90d @Rotate parenleft }
- def frown { rel vctr 90d @Rotate parenright }
-
- def ">=" { rel greaterequal }
- def succ { rel { 0.45f @Font 90d @Rotate
- { parenrighttp ^| parenlefttp }
- }
- }
- def succeq { rel { @OneRow non succ /0.1f minus } }
- def ">>" { rel {greater greater} }
- def supset { rel propersuperset }
- def supseteq { rel reflexsuperset }
- def sqsupseteq { rel @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- { { "0 0 moveto xsize 0 lineto"
- "xsize ysize lineto"
- "0 ysize lineto"
- "0.04 ft setlinewidth stroke"
- }
- @Graphic
- { 0.5f @Wide 0.25f @High ^/
- 0.25f @High
- }
- /0.1f minus
- }
- }
- PDF @Yield {
- { { "__mul(__loutf, 0.04) w"
- "0 0 m __xsize 0 l"
- "__xsize __ysize l"
- "0 __ysize l s"
- }
- @Graphic
- { 0.5f @Wide 0.25f @High ^/
- 0.25f @High
- }
- /0.1f minus
- }
- }
- }
- }
- def ni { rel 180d @Rotate element }
- def dashv { rel vctr {90d @Rotate perpendicular} }
- def mid { rel @Base "|" }
- def parallel { rel @Base "||" }
-
- def "==" { rel equivalence }
- def "~" { rel similar }
- def "-~" { rel @OneRow{similar^/0.07f/0.07f minus}}
- def asymp { rel 0.7f @Font @OneRow
- { 90d @Rotate parenleft ^/0.008f
- /0.008f 90d @Rotate parenright }
- }
- def "~~" { rel approxequal }
- def "=~" { rel congruent }
- def bowtie { rel{non triangleright non triangleleft}}
- def propto { rel proportional }
- def models { rel{@Base vctr "|" &0.05fo vctr equal}}
- def trieq { rel @OneRow @HContract {&0.5rt small triangle^/0.15f equal}}
- def doteq { rel @OneRow @HContract {&0.5rt dotmath^/0.15f equal}}
- def perp { rel perpendicular }
-
- def notsub { rel notsubset }
- def notin { rel notelement }
- def "!=" { rel notequal }
-
- def "<->" { rel arrowboth }
- def "<--" { rel arrowleft }
- def "-->" { rel arrowright }
- def up { rel arrowup }
- def down { rel arrowdown }
- def "<=>" { rel arrowdblboth }
- def "<==" { rel arrowdblleft }
- def "==>" { rel arrowdblright }
- def dblup { rel arrowdblup }
- def dbldown { rel arrowdbldown }
-
- def ":" { rel colon }
- def "::" { rel @OneCol {colon ` colon} }
- def ":=" { rel { colon{ //0.05fo equal} } }
-
- def not right x { @HContract {@OneCol x /0co &0.5rt slash}}
-
-
- ###################################################################
- # #
- # Groups 11 and 12 - openings and closings. #
- # #
- ###################################################################
-
- def lpar { parenleft }
- def rpar { parenright }
- def lbrack { bracketleft }
- def rbrack { bracketright }
- def lbrace { braceleft }
- def rbrace { braceright }
- def lfloor { ` "-0.15f" @VShift bracketleftbt }
- def rfloor { "-0.15f" @VShift bracketrightbt ` }
- def lceil { ` "-0.1f" @VShift bracketlefttp }
- def rceil { "-0.1f" @VShift bracketrighttp ` }
- def langle { angleleft }
- def rangle { angleright }
-
- def blpar { @OneRow {parenlefttp ^/ parenleftex / parenleftbt } }
- def brpar { @OneRow {parenrighttp ^/ parenrightex / parenrightbt } }
- def blbrack { @OneRow {bracketlefttp ^/ bracketleftex / bracketleftbt } }
- def brbrack { @OneRow {bracketrighttp ^/ bracketrightex / bracketrightbt} }
- def blbrace { @OneRow {bracelefttp ^/ braceleftmid / braceleftbt } }
- def brbrace { @OneRow {bracerighttp ^/ bracerightmid / bracerightbt } }
- def blfloor { @OneRow {bracketleftex ^/ bracketleftex / bracketleftbt } }
- def brfloor { @OneRow {bracketrightex ^/ bracketrightex / bracketrightbt} }
- def blceil { @OneRow {bracketlefttp ^/ bracketleftex / bracketleftex } }
- def brceil { @OneRow {bracketrighttp ^/ bracketrightex / bracketrightex} }
- def blangle { @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- { "xsize 0 moveto"
- "0 ysize 2 div lineto"
- "xsize ysize lineto"
- "0.04 ft setlinewidth stroke"
- }
- @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w"
- "__xsize 0 m"
- "0 __div(__ysize, 2) l"
- "__xsize __ysize l S"
- }
- @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- }
- }
- def brangle { @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto"
- "xsize ysize 2 div lineto"
- "0 ysize lineto"
- "0.04 ft setlinewidth stroke"
- }
- @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w"
- "0 0 m"
- "__xsize __div(__ysize, 2) l"
- "0 __ysize l S"
- }
- @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- }
- }
-
-
- ###################################################################
- # #
- # Group 13 - punctuation. #
- # #
- ###################################################################
-
- def ";" { punct semicolon }
- def "," { punct comma }
- def col { punct colon }
-
-
- ###################################################################
- # #
- # Additional short symbols (Knuth p. 132) #
- # #
- ###################################################################
-
- def "!" { exclam }
- def "?" { question }
- def "%" { percent }
- def "(" { parenleft }
- def ")" { parenright }
- def "[" { bracketleft }
- def "]" { bracketright }
-
-
- ###################################################################
- # #
- # Common mathematical functions (from Knuth p. 162). #
- # mod is included, since @Rel mod is easily typed if needed. #
- # #
- ###################################################################
-
- def arccos { @Base "arccos" }
- def arcsin { @Base "arcsin" }
- def arctan { @Base "arctan" }
- def arg { @Base "arg" }
- def cos { @Base "cos" }
- def cosh { @Base "cosh" }
- def cot { @Base "cot" }
- def coth { @Base "coth" }
- def csc { @Base "csc" }
- def deg { @Base "deg" }
- def det { @Base "det" }
- def dim { @Base "dim" }
- def exp { @Base "exp" }
- def gcd { @Base "gcd" }
- def hom { @Base "hom" }
- def inf { @Base "inf" }
- def ker { @Base "ker" }
- def lg { @Base "lg" }
- def lim { @Base "lim" }
- def liminf { @OneCol { @Base "lim" ` @Base "inf" } }
- def limsup { @OneCol { @Base "lim" ` @Base "sup" } }
- def ln { @Base "ln" }
- def log { @Base "log" }
- def max { @Base "max" }
- def min { @Base "min" }
- def Pr { @Base "Pr" }
- def sec { @Base "sec" }
- def sin { @Base "sin" }
- def sinh { @Base "sinh" }
- def supr { @Base "sup" }
- def tan { @Base "tan" }
- def tanh { @Base "tanh" }
- def mod { @Base "mod" }
-
-
- ###################################################################
- # #
- # Arrow symbols. #
- # #
- ###################################################################
-
- def leftarrow { arrowleft }
- def longleftarrow { { 1.6 1 } @Scale arrowleft }
- def dblleftarrow { arrowdblleft }
- def dbllongleftarrow { { 1.6 1 } @Scale arrowdblleft }
- def rightarrow { arrowright }
- def longrightarrow { { 1.6 1 } @Scale arrowright }
- def dblrightarrow { arrowdblright }
- def dbllongrightarrow { { 1.6 1 } @Scale arrowdblright }
- def leftrightarrow { arrowboth }
- def longleftrightarrow { { 1.6 1 } @Scale arrowboth }
- def dblleftrightarrow { arrowdblboth }
- def dbllongleftrightarrow { { 1.6 1 } @Scale arrowdblboth }
-
- def mapsto
- {
- @HContract @VContract {
- @BackEnd @Case {
- PostScript @Yield {
- "0 ymark 0.16 ft sub moveto 0 ymark 0.16 ft add lineto stroke"
- @Graphic arrowright
- }
- PDF @Yield {
- "0 __sub(__ymark, __mul(__loutf, 0.16)) m 0 __add(__ymark, __mul(__loutf, 0.16)) l S"
- @Graphic arrowright
- }
- }
- }
- }
-
- def longmapsto
- {
- @HContract @VContract {
- @BackEnd @Case {
- PostScript @Yield {
- "0 ymark 0.16 ft sub moveto 0 ymark 0.16 ft add lineto stroke"
- @Graphic { { 1.6 1 } @Scale arrowright }
- }
- PDF @Yield {
- "0 __sub(__ymark, __mul(__loutf, 0.16)) m 0 __add(__ymark, __mul(__loutf, 0.16)) l S"
- @Graphic { { 1.6 1 } @Scale arrowright }
- }
- }
- }
- }
-
- def hookleftarrow
- {
- @HContract @VContract {
- @BackEnd @Case {
-
- PostScript @Yield {
- "xsize ymark moveto xsize ymark 0.1 ft add 0.1 ft -90 90 arc stroke"
- @Graphic leftarrow
- }
-
- PDF @Yield {
-#
-# VT: draws a counterclockwise 180 degree arc from -90 to +90 degree positions
-# (straight down to straight up) with centre = (xsize, ymark + 0.1 ft)
-# and radius = 0.1 ft
-#
-# the control points therefore are:
-# pt1 = (xsize + (4/3 * 0.1 ft), ymark) and pt2 = (xsize + (4/3 * 0.1 ft), ymark + 0.2 ft)
-#
- {
- "__xsize __ymark m" # pt0
- "__add(__xsize, __div(__mul(0.4, __loutf), 3)) __ymark" # pt1
- "__add(__xsize, __div(__mul(0.4, __loutf), 3)) __add(__ymark, __mul(0.2, __loutf))" # pt2
- "__xsize __add(__ymark, __mul(0.2, __loutf)) c S" # pt3
- }
- @Graphic leftarrow
- }
-
- }
- }
- }
-
- def hookrightarrow
- {
- @HContract @VContract {
- @BackEnd @Case {
-
- PostScript @Yield {
- "0 ymark moveto 0 0.1 ft ymark add 0.1 ft -90 90 arcn stroke"
- @Graphic rightarrow
- }
-
- PDF @Yield {
-#
-# VT: draws a clockwise 180 degree arc from -90 to +90 degree positions
-# (straight down to straight up) with centre = (0, ymark + 0.1 ft)
-# and radius = 0.1 ft
-#
-# the control points therefore are:
-# pt1 = (-4/3 * 0.1 ft, ymark) and pt2 = (-4/3 * 0.1 ft, ymark + 0.2 ft)
-#
- {
- "0 __ymark m" # pt0
- "__div(__mul(-0.4, __loutf), 3) __ymark" # pt1
- "__div(__mul(-0.4, __loutf), 3) __add(__ymark, __mul(0.2, __loutf))" # pt2
- "0 __add(__ymark, __mul(0.2, __loutf)) c S" # pt3
- }
- @Graphic rightarrow
- }
-
- }
- }
- }
-
- def @ClipToSize right x
- {
- @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- {
- "grestore newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
- "0 ysize lineto closepath clip gsave"
- } @Graphic x
- }
- PDF @Yield {
- "Q n 0 0 __xsize __ysize re W n q" @Graphic x
- }
- }
- }
-
- def @ClipAboveMark
- left amount
- right x
- {
- @ClipToSize { ^//{{amount}o} x }
- }
-
- def @ClipBelowMark
- left amount
- right x
- {
- @ClipToSize { x //{{amount}o} }
- }
-
- def leftharpoonup
- {
- 0.04f @ClipBelowMark leftarrow
- }
-
- def rightharpoonup
- {
- 0.04f @ClipBelowMark rightarrow
- }
-
- def leftharpoondown
- {
- 0.02f @ClipAboveMark leftarrow
- }
-
- def rightharpoondown
- {
- 0.02f @ClipAboveMark rightarrow
- }
-
- def rightleftharpoons
- {
- @HContract @VContract {
- rightharpoonup
- ^//0.1fo
- //0.1fo
- leftharpoondown
- }
- }
-
- def leadsto { @HContract { similar &0.4fo arrowright } }
-
- def uparrow { arrowup }
- def dbluparrow { arrowdblup }
- def downarrow { arrowdown }
- def dbldownarrow { arrowdbldown }
- def updownarrow { @HContract { arrowup &0io arrowdown } }
- def dblupdownarrow { @VContract { arrowdblup ^//0.2fo arrowdbldown } }
- def nearrow { 0.5w @VShift 0.5w @HShift 45d @Rotate arrowright }
- def searrow { 0.5w @VShift 0.5w @HShift 315d @Rotate arrowright }
- def swarrow { 0.5w @VShift 0.5w @HShift 225d @Rotate arrowright }
- def nwarrow { 0.5w @VShift 0.5w @HShift 135d @Rotate arrowright }
-
-
- ###################################################################
- # #
- # Other symbols taken from TeX. #
- # #
- ###################################################################
-
- def ldots { . &0.3f . &0.3f . }
- def cdots { dotmath &0.3f dotmath &0.3f dotmath }
- def vdots { @OneRow { dotmath ^/0.3f dotmath /0.3f dotmath } }
- def ddots { @OneCol @OneRow
- { dotmath
- ^/0.3f |0.3f dotmath
- /0.3f | |0.3f dotmath
- }
- }
-
-
- ###################################################################
- # #
- # Symbols taken from eqn (Kernighan and Cherry 1975). #
- # #
- ###################################################################
-
- def del { gradient }
- def grad { gradient }
- def "..." { ellipsis }
- def ",...," { , ellipsis ``` , }
- def "'" { minute }
- def "''" { minute minute }
- def "'''" { minute minute minute }
- def "''''" { minute minute minute minute }
- def empty { emptyset }
-
-
-
- ###################################################################
- # #
- # Miscellaneous #
- # #
- ###################################################################
-
- def triangleup { 0.8f @Font triangle }
- def triangledown { 180d @Rotate 0.8f @Font triangle }
-
- ###################################################################
- # #
- # Symbols with parameters. #
- # #
- # These symbols are essentially those of eqn, with some #
- # changes and additions. #
- # #
- ###################################################################
-
- def sup
- precedence 60
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @HContract @VContract
- { | 0.45w @VShift @Smaller @HSqueeze @VSqueeze y
- ^/gap x
- }
- }
-
- def sub
- precedence 60
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @HContract @VContract
- {
- # x
- "." @KernShrink x
- /gap | @Smaller @HSqueeze @VSqueeze y
- }
- }
-
- def tsub
- precedence 60
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @HContract @VContract
- {
- x
- /gap | &0io 0.2f @HShift @Smaller @HSqueeze @VSqueeze y
- }
- }
-
- def supp
- precedence 60
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @HContract @VContract
- {
- { ^/gap x /gap } | y
- }
- }
-
- def on
- precedence 61
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @Smaller @HSqueeze @VSqueeze x ^/ /
- @Smaller @HSqueeze @VSqueeze y
- }
-
- def ton
- precedence 61
- associativity left
- left x
- named gap { @SupGap }
- right y
- {
- @Smaller @HSqueeze @VSqueeze x ^/ /
- &0io 0.3f @HShift @Smaller @HSqueeze @VSqueeze y
- }
-
- def frac
- precedence 54
- associativity left
- left x
- named gap { 0.2f }
- right y
- {
- @HContract @VContract @Smaller @HSqueeze @VSqueeze
- { 1w @VShift { x /gap } | fraction &0io | 0w @VShift { |gap y }
- }
- }
-
- def half { 1 frac 2 }
- def third { 1 frac 3 }
-
- def over
- precedence 54
- associativity left
- left x
- named gap { 0.2f }
- right y
- {
- @HContract @VContract
- { |0.5rt @OneCol @VSqueeze x
- ^//gap @HLine
- //gap |0.5rt @OneCol @VSqueeze @Strut y
- }
- }
-
- def from
- precedence 58
- associativity left
- left x
- named gap { @ThinGap }
- named skew { 0c }
- right y
- {
- @HContract @VContract
- { |0.5rt x
- //gap |0.5rt &skew @Smaller @HSqueeze @VSqueeze y
- }
- }
-
- def to
- precedence 58
- associativity left
- left x
- named gap { @ThinGap }
- named skew { 0c }
- right y
- {
- @HContract @VContract
- { |0.5rt &skew @Smaller @HSqueeze @VSqueeze y
- ^//gap |0.5rt x
- }
- }
-
- def widefrom
- precedence 58
- associativity left
- left x
- named gap { @ThinGap }
- right y
- {
- @HContract @VContract
- {
- x //gap @HScale y
- }
- }
-
- def wideto
- precedence 58
- associativity left
- left x
- named gap { @ThinGap }
- right y
- {
- @HContract @VContract
- {
- @HScale y ^//gap x
- }
- }
-
- def dot
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } .
- }
-
- def dotdot
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } ..
- }
-
- def hat
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } @Base "^"
- }
-
- def tilde
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } @Base "~"
- }
-
- def vec
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } arrowright
- }
-
- def dyad
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x to gap { gap } skew { @SkewGap } arrowboth
- }
-
- def overbar
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x wideto gap { gap } minus
- }
-
- def underbar
- precedence 62
- left x
- named gap { @ThinGap }
- {
- x widefrom gap { gap } minus
- }
-
- def sqrt
- precedence 56
- named gap { @ThinGap }
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- @VScale surd | @OneRow
- {
- @HLine line { "0.03 ft setlinewidth 2 setlinecap" }
- ^//gap |gap @VSqueeze @Strut x # //gap
- }
- }
- }
- PDF @Yield {
- @HContract @VContract
- {
-#
-# VT: this PDF is correct but it renders badly in Acrobat (?problem
-# with scaling by fractional factors)
-# In other words, the @VScale value comes through correctly but it
-# looks ugly; GhostScript's translation actually expands the
-# "draw surd" instruction into raw moveto's and lineto's which
-# it presumably gets from the font's definition of the glyph!
-#
- @VScale surd | @OneRow
- {
- @HLine line { "__mul(__loutf, 0.03) w 2 J" }
- ^//gap |gap @VSqueeze @Strut x # //gap
- }
- }
- }
- }
- }
-
- def root
- precedence 56
- left x
- right y
- {
- "" sup x &0io sqrt y
- }
-
- def zroot
- precedence 56
- left x
- right y
- {
- def zsup right x { "+0.3f" @VShift 0.5f @Font @Space x }
-
- "-0.4f" @HShift { 1w @HShift { zsup x } } &0co sqrt y
- }
-
- def above
- precedence 52
- left x
- named gap { @RowGap }
- right y
- {
- |0.5rt x //gap |0.5rt y
- }
-
- def labove
- precedence 52
- left x
- named gap { @RowGap }
- right y
- {
- x //gap y
- }
-
- def cabove
- precedence 52
- left x
- named gap { @RowGap }
- right y
- {
- |0.5rt x //gap |0.5rt y
- }
-
- def rabove
- precedence 52
- left x
- named gap { @RowGap }
- right y
- {
- |1rt x //gap |1rt y
- }
-
- def mabove
- precedence 52
- left x
- named gap { @RowGap }
- right y
- {
- x /gap y
- }
-
- def nextcol
- precedence 50
- left x
- named gap { @ColGap }
- right y
- {
- x |gap y
- }
-
- export row axisrow col lcol ccol rcol mcol
- def matrix
- precedence 100
- named gap { @MedGap }
- named strut
- named no { }
- named No { }
- named yes { 0.5f }
- named Yes { 0.5f }
- { No }
- named atleft {}
- named atright {}
- named userow { No }
- named shiftdelim { Yes }
- body x
- {
- def @Strut
- {
- strut @Case {
- "" @Yield {}
- else @Yield { @OneRow { strut @High ^/ strut @High } }
- }
- }
-
- def newrow
- precedence 50
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { y | @Strut }
- else @Yield { x /@RowGap y | @Strut }
- }
- }
-
- macro row { newrow "" }
-
- def newaxisrow
- precedence 50
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { y | @Strut }
- else @Yield { x ^/@RowGap y | @Strut }
- }
- }
-
- macro axisrow { newaxisrow "" }
-
- def col
- precedence 52
- associativity left
- left x
- named indent { 0.5rt }
- right y
- {
- x @Case {
- "" @Yield { &indent @OneCol y }
- else @Yield { x |@ColGap &indent @OneCol y }
- }
- }
-
- def lcol
- precedence 52
- associativity left
- left x
- right y
- {
- x col indent { 0i } y
- }
-
- def ccol
- precedence 52
- associativity left
- left x
- right y
- {
- x col indent { 0.5rt } y
- }
-
- def rcol
- precedence 52
- associativity left
- left x
- right y
- {
- x col indent { 1rt } y
- }
-
- def mcol
- precedence 52
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { @OneCol y }
- else @Yield { x |@ColGap @OneCol y }
- }
- }
-
- def delim right x
- {
- x @Case
- {
- "" @Yield @Null
- else @Yield
- {
- shiftdelim @Case {
- { Yes yes } @Yield { @VScale x }
- else @Yield { @VCover x }
- }
- }
- }
- }
-
- @HContract @VContract {
- delim atleft &@ThinGap
- userow @Case {
- {Yes yes} @Yield @HContract @VContract {^//gap @OneRow x //gap}
- else @Yield vctr @HContract @VContract { //gap x //gap }
- }
- &@ThinGap delim atright
- }
- }
-
- macro pmatrix { matrix atleft { "1.5f" @Font ( } atright { "1.5f" @Font ) }}
- macro bmatrix { matrix atleft { blbrack } atright { brbrack } }
- macro brmatrix { matrix atleft { blbrace } atright { brbrace } }
- macro fmatrix { matrix atleft { blfloor } atright { brfloor } }
- macro cmatrix { matrix atleft { blceil } atright { brceil } }
- macro amatrix { matrix atleft { blangle } atright { brangle } }
-
- ###################################################################
- # #
- # Group 5 (digits) #
- # #
- ###################################################################
-
- def "0" { zero }
- def "1" { one }
- def "2" { two }
- def "3" { three }
- def "4" { four }
- def "5" { five }
- def "6" { six }
- def "7" { seven }
- def "8" { eight }
- def "9" { nine }
-
-
- { Slope xheight2mark nostrut } @Font { separate @SpaceGap } @Space
- initzunit @ZUnit 1f @YUnit @Body
-
-@End @Eq
-
-macro @E { @OneCol @Eq initzunit { 0.7f } }
diff --git a/include/include/fig b/include/include/fig
deleted file mode 100644
index 60395ae..0000000
--- a/include/include/fig
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for figure drawing (OBSOLETE: use @Diag instead) #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { figf } line #
-# #
-# This line causes Lout to read the definitions for equations, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { figf }
-
-
-###############################################################################
-# #
-# This package does not offer the ability to change default options. #
-# #
-###############################################################################
diff --git a/include/include/figf b/include/include/figf
deleted file mode 100644
index 0fd060f..0000000
--- a/include/include/figf
+++ /dev/null
@@ -1,926 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Fig package for drawing figures (Version 2.0) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, October 1991. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Symbol names changed by JHK 5 March 1993 to avoid clashes with EPS files. #
-# @CurveBox and @ShadowBox added by JHK April 1995. #
-# #
-# See "Fig - a Lout package for drawing figures" for user information. #
-# #
-# This package is now obsolete, having been replaced by @Diag. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysPrependGraphic { "figf.lpg" }
-
-export in cm pt em sp vs ft dg
- "<<" "**" "++" "--" @Max @Min
- @Distance @XDistance @YDistance @Angle
- @Prev "::" @Label @BaseOf @MarkOf @ShowLabels @Figure
- @Frame @Box @CurveBox @ShadowBox @Square @Diamond @Polygon @Ellipse
- @Circle @HLine @VLine @Line @HArrow @VArrow @Arrow @Arc
-
-def @Fig
- named maxlabels { 200 }
- named linestyle { solid }
- named linewidth { 0.5 pt }
- named linecap { round }
- named dashlength { 0.15 cm }
- named paint { nopaint }
- named margin { 0.4c }
- named arrow { noarrow }
- named headstyle { open }
- named headwidth { 0.05 cm }
- named headlength { 0.15 cm }
- body @Body
-@Begin
-
- # Like @Graphic, but affects the graphics state of right parameter
- def @InnerGraphic
- left ps
- right x
- {
- @BackEnd @Case {
- PostScript @Yield { { ps gsave // grestore } @Graphic x }
- PDF @Yield { }
- }
- }
-
- def in precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "in" }
- PDF @Yield { "__mul(__in, "x")" }
- }
- }
-
- def cm precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "cm" }
- PDF @Yield { "__mul(__cm, "x")" }
- }
- }
-
- def pt precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "pt" }
- PDF @Yield { "__mul(__pt, "x")" }
- }
- }
-
- def em precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "em" }
- PDF @Yield { "__mul(__em, "x")" }
- }
- }
-
- def sp precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "sp" }
- PDF @Yield { "__mul(__louts, "x")" }
- }
- }
-
- def vs precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "vs" }
- PDF @Yield { "__mul(__loutv, "x")" }
- }
- }
-
- def ft precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "ft" }
- PDF @Yield { "__mul(__loutf, "x")" }
- }
- }
-
- def dg precedence 39 left x {
- @BackEnd @Case {
- PostScript @Yield { x "dg" }
- PDF @Yield { }
- }
- }
-
- def "<<"
- precedence 38
- left length
- right angle
- {
- @BackEnd @Case {
- PostScript @Yield {
- 0 0 length angle "lfigatangle"
- }
- PDF @Yield {
- }
- }
- }
-
- def "**"
- precedence 37
- left point
- right length
- {
- @BackEnd @Case {
- PostScript @Yield {
- point length "lfigpmul"
- }
- PDF @Yield {
- }
- }
- }
-
- def "++"
- precedence 36
- associativity left
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigpadd"
- }
- PDF @Yield {
- }
- }
- }
-
- def "--"
- precedence 36
- associativity left
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- y x "lfigpsub"
- }
- PDF @Yield {
- }
- }
- }
-
- def @Max
- precedence 36
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigpmax"
- }
- PDF @Yield {
- }
- }
- }
-
- def @Min
- precedence 36
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigpmin"
- }
- PDF @Yield {
- }
- }
- }
-
- def @Distance
- precedence 35
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigdistance"
- }
- PDF @Yield {
- }
- }
- }
-
- def @XDistance
- precedence 35
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigxdistance"
- }
- PDF @Yield {
- }
- }
- }
-
- def @YDistance
- precedence 35
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigydistance"
- }
- PDF @Yield {
- }
- }
- }
-
- def @Angle
- precedence 35
- left x
- right y
- {
- @BackEnd @Case {
- PostScript @Yield {
- x y "lfigangle"
- }
- PDF @Yield {
- }
- }
- }
-
- def @Prev
- {
- @BackEnd @Case {
- PostScript @Yield {
- "lfigprevious"
- }
- PDF @Yield {
- }
- }
- }
-
- def "::"
- precedence 33
- left name
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- { "currentdict end" maxlabels "dict begin begin"
- // "("name") lfigpromotelabels" } @Graphic x
- }
- PDF @Yield {
- }
- }
- }
-
- def @Label
- right name
- {
- @BackEnd @Case {
- PostScript @Yield {
- "/"name "lfigpointdef"
- }
- PDF @Yield {
- }
- }
- }
-
- def @MarkOf
- precedence 32
- left point
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- { point "translate" } @InnerGraphic
- {
- /0io |0io @OneCol @OneRow x |0io /0io
- }
- }
- PDF @Yield {
- }
- }
- }
-
- def @BaseOf
- precedence 32
- left point
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- { point "translate" } @InnerGraphic
- {
- /0io |0io @OneRow @OneCol {
- | @OneCol @OneRow x ^/
- } |0io /0io
- }
- }
- PDF @Yield {
- }
- }
- }
-
- def @ShowLabels
- {
- @BackEnd @Case {
- PostScript @Yield {
- "lfigshowlabels" @Graphic
- }
- PDF @Yield {
- }
- }
- }
-
- def @Figure
- named shape { }
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named arrow { arrow }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- named paint { paint }
- named margin { 0c }
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- #fill the shape
- paint @Case
- {
- nopaint @Yield {}
-
- { nochange darkblue blue lightblue darkgreen green lightgreen
- darkred red lightred darkcyan cyan lightcyan darkmagenta
- magenta lightmagenta darkyellow yellow lightyellow darkgray
- gray lightgray darkgrey grey lightgrey black white }
- @Yield
- { "/lfig"paint "[" shape "] gsave lfigpaintpath grestore" }
- }
-
- # stroke the path and add any arrowheads
- linestyle @Case
- {
- { solid dashed cdashed dotted noline } @Yield
- {
- linewidth "setlinewidth" "lfig"linecap "setlinecap"
- dashlength "/lfig"linestyle "[" shape "] lfigdopath"
- arrow @Case
- {
- noarrow @Yield { pop pop }
- { forward back both } @Yield
- { dashlength "/lfig"linestyle "/"lfigblack
- headstyle @Case
- { { open halfopen closed } @Yield "lfig"headstyle }
- headlength headwidth "lfig"arrow
- }
- }
- }
- }
- }
- @Graphic
- {
- ^/margin ^|margin @OneCol @OneRow x |margin
- /margin
- }
- }
-
- PDF @Yield {
- }
- }
- }
-
- def @Frame
- right x
- {
- @Figure
- shape {xsize 0 @Label X 0 ysize @Label Y}
- { x }
- }
-
- def @Box
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- # 0 0 @Label SW
- # xsize 0 @Label SE
- # xsize ysize @Label NE
- # 0 ysize @Label NW
- # SE ** 0.5 @Label S
- # NW ** 0.5 @Label W
- # W ++ SE @Label E
- # S ++ NW @Label N
- # NE ** 0.5 @Label CTR
- # SW SE NE NW SW
- lfigbox
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
-
- def @CurveBox
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- lfigcurvebox
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- { 0c @HShift x }
- }
-
- def @ShadowBox
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- named shadow { 0.2f }
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- @VContract @HContract 0c @HShift "lfigshadow" @Graphic
- {
- ^/shadow ^|shadow 0c @HShift
- @Figure
- shape {
- lfigbox
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- 0c @HShift x
- |shadow /shadow
- }
- }
- PDF @Yield {
- @VContract @HContract 0c @HShift
-
-# "lfigshadow" @Graphic is this:
- { "__mul(__xmark, 2) 0 m __xsize 0 l" # xmark 2 mul 0 moveto xsize 0 lineto
- "__xsize __sub(__ysize, __mul(__xmark, 2)) l" # xsize ysize xmark 2 mul sub lineto
- "__sub(__xsize, __xmark) __sub(ysize, __mul(__xmark, 2)) l" # xsize xmark sub ysize xmark 2 mul sub lineto
- "__sub(__xsize, __xmark) __xmark l" # xsize xmark sub xmark lineto
- "__mul(__xmark, 2) __xmark l h f" # xmark 2 mul xmark lineto closepath fill
- } @Graphic
-
- {
- ^/shadow ^|shadow 0c @HShift
- @Figure
- shape {
- lfigbox
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- 0c @HShift x
- |shadow /shadow
- }
- }
- }
- }
-
- def @Square
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- # {xsize ysize} ** 0.5 @Label CTR
- # CTR ++ {{xsize xsize} @Max {ysize ysize}}**0.5 @Label NE
- # CTR ++ { {CTR @Distance NE} << 135 } @Label NW
- # CTR ++ { {CTR @Distance NE} << 225 } @Label SW
- # CTR ++ { {CTR @Distance NE} << 315 } @Label SE
- # SW ** 0.5 ++ SE ** 0.5 @Label S
- # NW ** 0.5 ++ NE ** 0.5 @Label N
- # SW ** 0.5 ++ NW ** 0.5 @Label W
- # SE ** 0.5 ++ NE ** 0.5 @Label E
- # SW SE NE NW SW
- lfigsquare
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
- def @Diamond
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- # {xsize 0} ** 0.5 @Label S
- # {0 ysize} ** 0.5 @Label W
- # S ++ W @Label CTR
- # CTR ++ W @Label N
- # CTR ++ S @Label E
- # S E N W S
- lfigdiamond
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
- def @Polygon
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- named sides { 3 }
- named angle { "dup 180 exch div" }
- right x
- {
- @Figure
- shape { sides angle lfigpolygon }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
- def @Ellipse
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- # {xsize 0} ** 0.5 @Label S
- # {0 ysize} ** 0.5 @Label W
- # S ++ W @Label CTR
- # CTR ++ W @Label N
- # CTR ++ S @Label E
- # CTR ++ {xsize 0} ** 0.3536 ++ {0 ysize} ** 0.3536 @Label NE
- # CTR ++ {xsize 0} ** 0.3536 -- {0 ysize} ** 0.3536 @Label SE
- # CTR -- {xsize 0} ** 0.3536 ++ {0 ysize} ** 0.3536 @Label NW
- # CTR -- {xsize 0} ** 0.3536 -- {0 ysize} ** 0.3536 @Label SW
- # S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
- lfigellipse
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
- def @Circle
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { margin }
- right x
- {
- @Figure
- shape {
- # {xsize ysize} **0.5 @Label CTR
- # CTR ++ {{xsize 0} @Max {ysize 0}}**0.5 @Label E
- # CTR ++ { {CTR @Distance E} << 45 } @Label NE
- # CTR ++ { {CTR @Distance E} << 90 } @Label N
- # CTR ++ { {CTR @Distance E} << 135 } @Label NW
- # CTR ++ { {CTR @Distance E} << 180 } @Label W
- # CTR ++ { {CTR @Distance E} << 225 } @Label SW
- # CTR ++ { {CTR @Distance E} << 270 } @Label S
- # CTR ++ { {CTR @Distance E} << 315 } @Label SE
- # S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
- lfigcircle
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- x
- }
-
- def @HLine
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { arrow }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- # 0 ymark @Prev @Label FROM
- # xsize ymark @Prev @Label TO
- lfighline
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @VLine
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { arrow }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- # xmark ysize @Prev @Label FROM
- # xmark 0 @Prev @Label TO
- lfigvline
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @HArrow
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { forward }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- # 0 ymark @Prev @Label FROM
- # xsize ymark @Prev @Label TO
- lfighline
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @VArrow
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { forward }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- # xmark ysize @Prev @Label FROM
- # xmark 0 @Prev @Label TO
- lfigvline
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @Line
- named from { 0 ysize }
- named to { xsize 0 }
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { arrow }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- from @Prev @Label FROM
- to @Prev @Label TO
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @Arrow
- named from { 0 ysize }
- named to { xsize 0 }
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { forward }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- from @Prev @Label FROM
- to @Prev @Label TO
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- def @Arc
- named from { 0 ysize }
- named to { xsize 0 }
- named ctr { 0 0 }
- named direction { clockwise }
- named linestyle { linestyle }
- named linewidth { linewidth }
- named linecap { linecap }
- named dashlength { dashlength }
- named paint { paint }
- named margin { 0c }
- named arrow { noarrow }
- named headstyle { headstyle }
- named headwidth { headwidth }
- named headlength { headlength }
- right x
- {
- @Figure
- shape {
- from @Label FROM
- to @Label TO
- ctr @Label CTR
- FROM [ CTR
- direction @Case { {clockwise anticlockwise} @Yield direction }
- ] TO
- }
- linestyle { linestyle }
- linewidth { linewidth }
- linecap { linecap }
- dashlength { dashlength }
- paint { paint }
- margin { margin }
- arrow { arrow }
- headstyle { headstyle }
- headwidth { headwidth }
- headlength { headlength }
- x
- }
-
- @BackEnd @Case {
- PostScript @Yield {
- { "grestore save gsave" maxlabels "dict begin lfigdict begin"
- // "end end restore"
- } @Graphic @Body
- }
- PDF @Yield {
- }
- }
-
-@End @Fig
diff --git a/include/include/figf.lpg b/include/include/figf.lpg
deleted file mode 100644
index 7465cef..0000000
--- a/include/include/figf.lpg
+++ /dev/null
@@ -1,1010 +0,0 @@
-%%BeginResource: procset LoutFigPrependGraphic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @Fig Jeffrey H. Kingston %
-% Version 2.0 (includes CIRCUM label) January 1992 %
-% %
-% This file has been placed in the public domain by its author, %
-% Jeffrey H. Kingston %
-% %
-% Although Fig is now obsolete I have updated it 20 October 2002 %
-% to work with textures, i.e. replacing setrgbcolor with %
-% LoutSetRGBColor. %
-% %
-% To assist in avoiding name clashes, the names of all symbols %
-% defined here begin with "lfig". However, this is not feasible %
-% with user-defined labels and some labels used by users. %
-% %
-% <point> is two numbers, a point. %
-% <length> is one number, a length %
-% <angle> is one number, an angle in degrees %
-% <dashlength> is one number, the preferred length of a dash %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-errordict begin
- /handleerror
- {
- { /Times-Roman findfont 8 pt scalefont setfont
- 0 setgray 4 pt 4 pt moveto
- $error /errorname get
- dup lfigdict exch known
- { lfigdict exch get }
- { 30 string cvs } ifelse
- show
- ( Command: ) show
- $error /command get 30 string cvs show
- } stopped {} if
- showpage stop
- } def
-end
-
-% concat strings: <string> <string> lfigconcat <string>
-% must be defined outside lfigdict since used in lfigpromotelabels
-/lfigconcat
-{ 2 copy length exch length add string
- dup 0 4 index putinterval
- dup 3 index length 3 index putinterval
- 3 1 roll pop pop
-} def
-
-% <string> lfigdebugprint -
-% must be defined outside lfigdict since used in arbitrary places
-% /lfigdebugprint
-% { print
-% (; operand stack:\n) print
-% count copy
-% count 2 idiv
-% { ==
-% (\n) print
-% } repeat
-% (\n) print
-% } def
-
-/lfigdict 120 dict def
-lfigdict begin
-
-% error messages
-/dictfull (dictfull error: too many labels?) def
-/dictstackoverflow (dictstackoverflow error: labels nested too deeply?) def
-/execstackoverflow (execstackoverflow error: figure nested too deeply?) def
-/limitcheck (limitcheck error: figure nested too deeply or too large?) def
-/syntaxerror (syntaxerror error: syntax error in text of figure?) def
-/typecheck (typecheck error: syntax error in text of figure?) def
-/undefined (undefined error: unknown or misspelt label?) def
-/VMError (VMError error: run out of memory?) def
-
-% push pi onto stack: - lfigpi <num>
-/lfigpi 3.14159 def
-
-% arc directions
-/clockwise false def
-/anticlockwise true def
-
-% maximum of two numbers: <num> <num> lfigmax <num>
-/lfigmax { 2 copy gt { pop } { exch pop } ifelse } def
-
-% minimum of two numbers: <num> <num> lfigmin <num>
-/lfigmin { 2 copy lt { pop } { exch pop } ifelse } def
-
-% add two points: <point> <point> lfigpadd <point>
-/lfigpadd { exch 3 1 roll add 3 1 roll add exch } def
-
-% subtract first point from second: <point> <point> lfigpsub <point>
-/lfigpsub { 3 2 roll sub 3 1 roll exch sub exch } def
-
-% max two points: <point> <point> lfigpmax <point>
-/lfigpmax { exch 3 1 roll lfigmax 3 1 roll lfigmax exch } def
-
-% min two points: <point> <point> lfigpmin <point>
-/lfigpmin { exch 3 1 roll lfigmin 3 1 roll lfigmin exch } def
-
-% scalar multiplication: <point> <num> lfigpmul <point>
-/lfigpmul { dup 3 1 roll mul 3 1 roll mul exch } def
-
-% point at angle and distance: <point> <length> <angle> lfigatangle <point>
-/lfigatangle { 2 copy cos mul 3 1 roll sin mul lfigpadd } def
-
-% angle from one point to another: <point> <point> lfigangle <angle>
-/lfigangle { lfigpsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def
-
-% distance between two points: <point> <point> lfigdistance <length>
-/lfigdistance { lfigpsub dup mul exch dup mul add sqrt } def
-
-% difference in x coords: <point> <point> lfigxdistance <length>
-/lfigxdistance { pop 3 1 roll pop sub } def
-
-%difference in y coords: <point> <point> lfigydistance <length>
-/lfigydistance { 3 1 roll pop sub exch pop } def
-
-% stroke a solid line: <length> <dashlength> lfigsolid -
-/lfigsolid
-{ pop pop [] 0 setdash stroke
-} def
-
-% stroke a lfigdashed line: <length> <dashlength> lfigdashed -
-/lfigdashed
-{ 2 copy div 2 le 1 index 0 le or
- { exch pop 1 pt lfigmax [ exch dup ] 0 setdash }
- { dup [ exch 4 2 roll 2 copy div
- 1 sub 2 div ceiling dup 4 1 roll
- 1 add mul sub exch div ] 0 setdash
- } ifelse stroke
-} def
-
-% stroke a lfigcdashed line: <length> <dashlength> lfigcdashed -
-/lfigcdashed
-{ 2 copy le 1 index 0 le or
- { exch pop 1 pt lfigmax [ exch dup ] dup 0 get 2 div setdash }
- { dup [ 4 2 roll exch 2 copy exch div
- 2 div ceiling div 1 index sub
- ] exch 2 div setdash
- } ifelse stroke
-} def
-
-% stroke a dotted line: <length> <dashlength> lfigdotted -
-/lfigdotted
-{ 2 copy le 1 index 0 le or
- { exch pop 1 pt lfigmax [ exch 0 exch ] 0 setdash }
- { 1 index exch div ceiling div
- [ 0 3 2 roll ] 0 setdash
- } ifelse stroke
-} def
-
-% stroke a noline line: <length> <dashlength> lfignoline -
-/lfignoline
-{ pop pop
-} def
-
-% painting (i.e. filling): - lfigwhite - (etc.)
-/lfignopaint { } def
-/lfignochange { fill } def
-/lfigdarkblue { 0.0 0.0 0.5 LoutSetRGBColor fill } def
-/lfigblue { 0.0 0.0 1.0 LoutSetRGBColor fill } def
-/lfiglightblue { 0.5 0.5 1.0 LoutSetRGBColor fill } def
-/lfigdarkgreen { 0.0 0.5 0.0 LoutSetRGBColor fill } def
-/lfiggreen { 0.0 1.0 0.0 LoutSetRGBColor fill } def
-/lfiglightgreen { 0.5 1.0 0.5 LoutSetRGBColor fill } def
-/lfigdarkred { 0.5 0.0 0.0 LoutSetRGBColor fill } def
-/lfigred { 1.0 0.0 0.0 LoutSetRGBColor fill } def
-/lfiglightred { 1.0 0.5 0.5 LoutSetRGBColor fill } def
-/lfigdarkcyan { 0.0 0.5 0.5 LoutSetRGBColor fill } def
-/lfigcyan { 0.0 1.0 1.0 LoutSetRGBColor fill } def
-/lfiglightcyan { 0.5 1.0 1.0 LoutSetRGBColor fill } def
-/lfigdarkmagenta { 0.5 0.0 0.5 LoutSetRGBColor fill } def
-/lfigmagenta { 1.0 0.0 1.0 LoutSetRGBColor fill } def
-/lfiglightmagenta { 1.0 0.5 1.0 LoutSetRGBColor fill } def
-/lfigdarkyellow { 0.5 0.5 0.0 LoutSetRGBColor fill } def
-/lfigyellow { 1.0 1.0 0.0 LoutSetRGBColor fill } def
-/lfiglightyellow { 1.0 1.0 0.5 LoutSetRGBColor fill } def
-/lfigdarkgray { 0.2 0.2 0.2 LoutSetRGBColor fill } def
-/lfiggray { 0.5 0.5 0.5 LoutSetRGBColor fill } def
-/lfiglightgray { 0.8 0.8 0.8 LoutSetRGBColor fill } def
-/lfigdarkgrey { 0.2 0.2 0.2 LoutSetRGBColor fill } def
-/lfiggrey { 0.5 0.5 0.5 LoutSetRGBColor fill } def
-/lfiglightgrey { 0.8 0.8 0.8 LoutSetRGBColor fill } def
-/lfigblack { 0.0 0.0 0.0 LoutSetRGBColor fill } def
-/lfigwhite { 1.0 1.0 1.0 LoutSetRGBColor fill } def
-
-% line caps (and joins, not currently used)
-/lfigbutt 0 def
-/lfiground 1 def
-/lfigprojecting 2 def
-/lfigmiter 0 def
-/lfigbevel 2 def
-
-% shape and labels of the @Box symbol
-/lfigbox
-{
- 0 0 /SW lfigpointdef
- xsize 0 /SE lfigpointdef
- xsize ysize /NE lfigpointdef
- 0 ysize /NW lfigpointdef
- SE 0.5 lfigpmul /S lfigpointdef
- NW 0.5 lfigpmul /W lfigpointdef
- W SE lfigpadd /E lfigpointdef
- S NW lfigpadd /N lfigpointdef
- NE 0.5 lfigpmul /CTR lfigpointdef
- [ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef
- SW SE NE NW SW
-} def
-
-% shape and labels of the @CurveBox symbol
-/lfigcurvebox
-{
-
- xsize 0.5 mul ysize 0.5 mul /CTR lfigpointdef
- xsize 0.5 mul 0 /S lfigpointdef
- xsize ysize 0.5 mul /E lfigpointdef
- xsize 0.5 mul ysize /N lfigpointdef
- 0 ysize 0.5 mul /W lfigpointdef
-
- xmark 0.293 mul xmark 0.293 mul /SW lfigpointdef
- xsize xmark 0.293 mul sub xmark 0.293 mul /SE lfigpointdef
- xsize xmark 0.293 mul sub ysize xmark 0.293 mul sub /NE lfigpointdef
- xmark 0.293 mul ysize xmark 0.293 mul sub /NW lfigpointdef
-
- [ xsize ysize 0.5 lfigpmul xmark /lfigcurveboxcircum cvx ] lfigcircumdef
-
- xmark 0
- xsize xmark sub 0
- [ xsize xmark sub xmark ]
- xsize xmark
- xsize ysize xmark sub
- [ xsize xmark sub ysize xmark sub ]
- xsize xmark sub ysize
- xmark ysize
- [ xmark ysize xmark sub ]
- 0 ysize xmark sub
- 0 xmark
- [ xmark xmark ]
- xmark 0
-} def
-
-% shadow of the @ShadowBox symbol
-% its shape and labels are done, somewhat inaccurately, with lfigbox
-/lfigshadow
-{ xmark 2 mul 0 moveto xsize 0 lineto
- xsize ysize xmark 2 mul sub lineto
- xsize xmark sub ysize xmark 2 mul sub lineto
- xsize xmark sub xmark lineto
- xmark 2 mul xmark lineto closepath fill
-} def
-
-% shape and labels of the @Square symbol
-/lfigsquare
-{
- xsize ysize 0.5 lfigpmul /CTR lfigpointdef
- CTR xsize xsize ysize ysize lfigpmax 0.5 lfigpmul lfigpadd /NE lfigpointdef
- CTR 0 0 CTR NE lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef
- CTR 0 0 CTR NE lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef
- CTR 0 0 CTR NE lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef
- SW 0.5 lfigpmul SE 0.5 lfigpmul lfigpadd /S lfigpointdef
- NW 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /N lfigpointdef
- SW 0.5 lfigpmul NW 0.5 lfigpmul lfigpadd /W lfigpointdef
- SE 0.5 lfigpmul NE 0.5 lfigpmul lfigpadd /E lfigpointdef
- [ CTR NE lfigpsub /lfigboxcircum cvx ] lfigcircumdef
- SW SE NE NW SW
-} def
-
-% shape and labels of the @Diamond symbol
-/lfigdiamond
-{
- xsize 0 0.5 lfigpmul /S lfigpointdef
- 0 ysize 0.5 lfigpmul /W lfigpointdef
- S W lfigpadd /CTR lfigpointdef
- CTR W lfigpadd /N lfigpointdef
- CTR S lfigpadd /E lfigpointdef
- [ xsize ysize 0.5 lfigpmul /lfigdiamondcircum cvx ] lfigcircumdef
- S E N W S
-} def
-
-% shape and labels of the @Ellipse symbol
-/lfigellipse
-{
- xsize 0 0.5 lfigpmul /S lfigpointdef
- 0 ysize 0.5 lfigpmul /W lfigpointdef
- S W lfigpadd /CTR lfigpointdef
- CTR W lfigpadd /N lfigpointdef
- CTR S lfigpadd /E lfigpointdef
- CTR xsize 0 0.3536 lfigpmul lfigpadd 0 ysize 0.3536 lfigpmul lfigpadd /NE lfigpointdef
- 0 ysize 0.3536 lfigpmul CTR xsize 0 0.3536 lfigpmul lfigpadd lfigpsub /SE lfigpointdef
- xsize 0 0.3536 lfigpmul CTR lfigpsub 0 ysize 0.3536 lfigpmul lfigpadd /NW lfigpointdef
- 0 ysize 0.3536 lfigpmul xsize 0 0.3536 lfigpmul CTR lfigpsub lfigpsub /SW lfigpointdef
- [ xsize ysize 0.5 lfigpmul /lfigellipsecircum cvx ] lfigcircumdef
- S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
-} def
-
-% shape and labels of the @Circle symbol
-/lfigcircle
-{
- xsize ysize 0.5 lfigpmul /CTR lfigpointdef
- CTR xsize 0 ysize 0 lfigpmax 0.5 lfigpmul lfigpadd /E lfigpointdef
- CTR 0 0 CTR E lfigdistance 45 lfigatangle lfigpadd /NE lfigpointdef
- CTR 0 0 CTR E lfigdistance 90 lfigatangle lfigpadd /N lfigpointdef
- CTR 0 0 CTR E lfigdistance 135 lfigatangle lfigpadd /NW lfigpointdef
- CTR 0 0 CTR E lfigdistance 180 lfigatangle lfigpadd /W lfigpointdef
- CTR 0 0 CTR E lfigdistance 225 lfigatangle lfigpadd /SW lfigpointdef
- CTR 0 0 CTR E lfigdistance 270 lfigatangle lfigpadd /S lfigpointdef
- CTR 0 0 CTR E lfigdistance 315 lfigatangle lfigpadd /SE lfigpointdef
- [ S E lfigpsub /lfigellipsecircum cvx ] lfigcircumdef
- S [ CTR ] E [ CTR ] N [ CTR ] W [ CTR ] S
-} def
-
-% shape and labels of the @HLine and @HArrow symbols
-/lfighline
-{
- 0 ymark lfigprevious /FROM lfigpointdef
- xsize ymark lfigprevious /TO lfigpointdef
-} def
-
-% shape and labels of the @VLine and @VArrow symbols
-/lfigvline
-{
- xmark ysize lfigprevious /FROM lfigpointdef
- xmark 0 lfigprevious /TO lfigpointdef
-} def
-
-% points of a polygon around base with given no of sides, vert init angle:
-% <sides> <angle> figpolygon <point> ... <point>
-/lfigpolygon
-{ xsize ysize 0.5 lfigpmul /CTR lfigpointdef
- 90 sub CTR 2 copy lfigmax 5 3 roll
- [ 4 copy pop /lfigpolycircum cvx ] lfigcircumdef
- exch dup 360 exch div exch
- 1 1 3 2 roll
- { 4 string cvs (P) exch lfigconcat cvn
- 6 copy pop pop lfigatangle 2 copy 10 2 roll
- 3 2 roll lfigpointdef
- dup 3 1 roll add exch
- } for
- pop lfigatangle
-} def
-
-% next array element: <array> <index> lfiggetnext <array> <index> <any> true
-% or <array> <index> false
-/lfiggetnext
-{ 2 copy exch length ge
- { false }
- { 2 copy get exch 1 add exch true } ifelse
-} def
-
-% check whether thing is number: <any> lfigisnumbertype <any> <bool>
-/lfigisnumbertype
-{ dup type dup
- /integertype eq exch /realtype eq or
-} def
-
-% check whether thing is an array: <any> lfigisarraytype <any> <bool>
-/lfigisarraytype { dup type /arraytype eq } def
-
-% get next item: <array> <index> lfiggetnextitem <array> <index> 0
-% or <array> <index> <array> 1
-% or <array> <index> <point> 2
-/lfiggetnextitem
-{ lfiggetnext
- { lfigisarraytype
- { 1
- }
- { lfigisnumbertype
- { 3 1 roll
- lfiggetnext
- { lfigisnumbertype
- { 4 3 roll exch 2
- }
- { pop 3 2 roll pop 0
- } ifelse
- }
- { 3 2 roll pop 0
- } ifelse
- }
- { pop 0
- } ifelse
- } ifelse
- }
- { 0
- } ifelse
-} def
-
-% set arc path: bool x1 y1 x2 y2 x0 y0 lfigsetarc <angle> <angle> <dist>
-% the path goes from x1 y1 to x2 y2 about centre x0 y0,
-% anticlockwise if bool is true else clockwise.
-% The orientations of backwards pointing and forwards pointing
-% arrowheads are returned in the two angles, and
-% the length of the arc is returned in <dist>.
-/lfigsetarc
-{
- 20 dict begin
- matrix currentmatrix 8 1 roll
- 2 copy translate 2 copy 8 2 roll
- 4 2 roll lfigpsub 6 2 roll lfigpsub
- dup /y1 exch def dup mul /y1s exch def
- dup /x1 exch def dup mul /x1s exch def
- dup /y2 exch def dup mul /y2s exch def
- dup /x2 exch def dup mul /x2s exch def
-
- y1s y2s eq
- { -1
- }
- { y1s x2s mul y2s x1s mul sub y1s y2s sub div
- } ifelse
- /da exch def
-
- x1s x2s eq
- { -1
- }
- { x1s y2s mul x2s y1s mul sub x1s x2s sub div
- } ifelse
- /db exch def
-
- da 0 gt db 0 gt and
- { /LMax da sqrt db sqrt lfigmax def
- /scalex da sqrt LMax div def
- /scaley db sqrt LMax div def
- scalex scaley scale
- 0 0 LMax
- 0 0 x1 scalex mul y1 scaley mul lfigangle
- 0 0 x2 scalex mul y2 scaley mul lfigangle
- 2 copy eq { 360 add } if
- 2 copy 8 2 roll
- 5 index { arc } { arcn } ifelse
- 2 index 1 index
- { 90 sub } { 90 add } ifelse
- dup sin scaley mul exch cos scalex mul atan
- 2 index 2 index
- { 90 add } { 90 sub } ifelse
- dup sin scaley mul exch cos scalex mul atan
- 5 2 roll % res1 res2 ang1 ang2 anticlockwise
- { exch sub } { sub } ifelse
- dup 0 le { 360 add } if lfigpi mul LMax mul 180 div
- }
- { 0 0 x1 y1 lfigdistance 0 0 x2 y2 lfigdistance eq
- 0 0 x1 y1 lfigdistance 0 gt and
- { 0 0
- 0 0 x1 y1 lfigdistance
- 0 0 x1 y1 lfigangle
- 0 0 x2 y2 lfigangle
- 2 copy eq { 360 add } if
- 2 copy 8 2 roll
- 5 index { arc } { arcn } ifelse
- 2 index 1 index
- { 90 sub } { 90 add } ifelse
- 2 index 2 index
- { 90 add } { 90 sub } ifelse
- 5 2 roll % res1 res2 ang1 ang2 clockwise
- { exch sub } { sub } ifelse
- dup 0 le { 360 add } if lfigpi mul 0 0 x1 y1 lfigdistance mul 180 div
- }
- { x2 y2 lineto pop
- x2 y2 x1 y1 lfigangle
- x1 y1 x2 y2 lfigangle
- x1 y1 x2 y2 lfigdistance
- } ifelse
- } ifelse
- 4 -1 roll setmatrix
- end
-} def
-
-% lfigsetcurve: set up a Bezier curve from x0 y0 to x3 y3
-% and return arrowhead angles and length of curve (actually 0)
-% x0 y0 x1 y1 x2 y2 x3 y3 lfigsetcurve <angle> <angle> <length>
-/lfigsetcurve
-{ 8 copy curveto pop pop
- lfigangle
- 5 1 roll
- 4 2 roll lfigangle
- exch
- 0
-} def
-
-% lfigpaintpath: paint a path of the given shape
-% /paint [ shape ] lfigpaintpath -
-/lfigpaintpath
-{
- 10 dict begin
- 0 newpath
- /prevseen false def
- /curveseen false def
- { lfiggetnextitem
- dup 0 eq { pop exit }
- { 1 eq
- { /curveseen true def
- /curve exch def
- curve length 0 eq { /curveseen false def } if
- }
- { /ycurr exch def
- /xcurr exch def
- prevseen
- { curveseen
- { curve length 4 eq
- { xprev yprev
- curve 0 get curve 1 get
- curve 2 get curve 3 get
- xcurr ycurr
- lfigsetcurve pop pop pop
- }
- { xprev yprev xcurr ycurr
- curve length 1 ge { curve 0 get } { 0 } ifelse
- curve length 2 ge { curve 1 get } { 0 } ifelse
- curve length 3 ge { curve 2 get } { true } ifelse
- 7 1 roll
- lfigsetarc pop pop pop
- } ifelse
- }
- { xcurr ycurr lineto
- } ifelse
- }
- { xcurr ycurr moveto
- } ifelse
- /xprev xcurr def
- /yprev ycurr def
- /prevseen true def
- /curveseen false def
- } ifelse
- } ifelse
- } loop pop pop cvx exec
- end
-} def
-
-% stroke a path of the given shape in the given linestyle and dash length.
-% Return the origin and angle of the backward and forward arrow heads.
-% dashlength /linestyle [shape] lfigdopath [<point> <angle>] [<point> <angle>]
-/lfigdopath
-{
- 10 dict begin
- 0
- /prevseen false def
- /curveseen false def
- /backarrow [] def
- /fwdarrow [] def
- {
- lfiggetnextitem
- dup 0 eq { pop exit }
- {
- 1 eq
- { /curveseen true def
- /curve exch def
- curve length 0 eq { /prevseen false def } if
- }
- { /ycurr exch def
- /xcurr exch def
- prevseen
- { newpath xprev yprev moveto
- curveseen
- { curve length 4 eq
- { xprev yprev
- curve 0 get curve 1 get
- curve 2 get curve 3 get
- xcurr ycurr lfigsetcurve
- }
- { xprev yprev xcurr ycurr
- curve length 1 ge { curve 0 get } { 0 } ifelse
- curve length 2 ge { curve 1 get } { 0 } ifelse
- curve length 3 ge { curve 2 get } { true } ifelse
- 7 1 roll
- lfigsetarc
- } ifelse
- }
- { xcurr ycurr lineto
- xcurr ycurr xprev yprev lfigangle dup 180 sub
- xprev yprev xcurr ycurr lfigdistance
- } ifelse
- 6 index 6 index cvx exec
- [ xprev yprev 5 -1 roll ]
- backarrow length 0 eq
- { /backarrow exch def }
- { pop } ifelse
- [ xcurr ycurr 4 -1 roll ] /fwdarrow exch def
- } if
- /xprev xcurr def
- /yprev ycurr def
- /prevseen true def
- /curveseen false def
- } ifelse
- } ifelse
- } loop
- pop pop pop pop
- backarrow length 0 eq { [ 0 0 0 ] } { backarrow } ifelse
- fwdarrow length 0 eq { [ 0 0 0 ] } { fwdarrow } ifelse
- end
-} def
-
-% lfigdoarrow: draw an arrow head of given form
-% dashlength /lstyle /pstyle hfrac height width [ <point> <angle> ] lfigdoarrow -
-/lfigdoarrow
-{ matrix currentmatrix 8 1 roll
- dup 0 get 1 index 1 get translate
- 2 get rotate
- [ 2 index neg 2 index 0 0
- 3 index 3 index neg
- 1 index 10 index mul 0
- 7 index 7 index ]
- 4 1 roll pop pop pop
- dup 3 1 roll
- gsave lfigpaintpath grestore lfigdopath pop pop
- setmatrix
-} def
-
-% arrow head styles
-/lfigopen 0.0 def
-/lfighalfopen 0.5 def
-/lfigclosed 1.0 def
-
-% stroke no arrows, forward, back, and both
-/lfignoarrow { pop pop pop pop pop pop pop pop } def
-/lfigforward { 7 -1 roll lfigdoarrow pop } def
-/lfigback { 8 -2 roll pop lfigdoarrow } def
-/lfigboth { 8 -1 roll 7 copy lfigdoarrow pop 7 -1 roll lfigdoarrow } def
-
-% lfigprevious: return previous point on path
-/lfigprevious
-{ lfigisnumbertype
- { 2 copy }
- { lfigisarraytype
- { 2 index 2 index }
- { 0 0 }
- ifelse
- } ifelse
-} def
-
-% label a point in 2nd top dictionary: <point> /name lfigpointdef -
-/lfigpointdef
-{
- % (Entering lfigpointdef) lfigdebugprint
- [ 4 2 roll transform
- /itransform cvx ] cvx
- currentdict end
- 3 1 roll
- % currentdict length currentdict maxlength lt
- % { def }
- % { exec moveto (too many labels) show stop }
- % ifelse
- def
- begin
- % (Leaving lfigpointdef) lfigdebugprint
-} def
-
-% promote labels from second top to third top dictionary
-% <string> lfigpromotelabels -
-/lfigpromotelabels
-{
- % (Entering lfigpromotelabels) lfigdebugprint
- currentdict end exch currentdict end
- { exch 20 string cvs 2 index
- (@) lfigconcat exch lfigconcat cvn exch def
- } forall pop begin
- % (Leaving lfigpromotelabels) lfigdebugprint
-} def
-
-% show labels (except CIRCUM): - lfigshowlabels -
-/lfigshowlabels
-{
- % (Entering lfigshowlabels) lfigdebugprint
- currentdict end
- currentdict
- { 1 index 20 string cvs (CIRCUM) search % if CIRCUM in key
- { pop pop pop pop pop }
- { pop cvx exec 2 copy
- newpath 1.5 pt 0 360 arc
- 0 setgray fill
- /Times-Roman findfont 8 pt scalefont setfont
- moveto 0.2 cm 0.1 cm rmoveto 20 string cvs show
- }
- ifelse
- } forall
- begin
- % (Leaving lfigshowlabels) lfigdebugprint
-} def
-
-% fix an angle to 0 <= res < 360: <angle> lfigfixangle <angle>
-/lfigfixangle
-{
- % (Entering lfigfixangle) lfigdebugprint
- { dup 0 ge { exit } if
- 360 add
- } loop
- { dup 360 lt { exit } if
- 360 sub
- } loop
- % (Leaving lfigfixangle) lfigdebugprint
-} def
-
-% find point on circumference of box: alpha a b lfigboxcircum x y
-/lfigboxcircum
-{
- % (Entering lfigboxcircum) lfigdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- lfigfixangle /alpha exch def
- 0 0 a b lfigangle /theta exch def
-
- % if alpha <= theta, return (a, a*tan(alpha))
- alpha theta le
- { a a alpha sin mul alpha cos div }
- {
- % else if alpha <= 180 - theta, return (b*cot(alpha), b)
- alpha 180 theta sub le
- { b alpha cos mul alpha sin div b }
- {
- % else if alpha <= 180 + theta, return (-a, -a*tan(alpha))
- alpha 180 theta add le
- { a neg a neg alpha sin mul alpha cos div }
- {
- % else if alpha <= 360 - theta, return (-b*cot(alpha), -b)
- alpha 360 theta sub le
- { b neg alpha cos mul alpha sin div b neg }
- {
- % else 360 - theta <= alpha, return (a, a*tan(alpha))
- a a alpha sin mul alpha cos div
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving lfigboxcircum) lfigdebugprint
-} def
-
-% find quadratic roots (assume a != 0): a b c lfigqroots x1 x2 2
-% or x2 1
-% or 0
-/lfigqroots
-{
- 4 dict begin
- /c exch def
- /b exch def
- /a exch def
- /disc b b mul 4 a c mul mul sub def
- disc 0 lt
- { 0
- }
- { disc 0 eq
- { b neg 2 a mul div
- 1
- }
- { b neg disc sqrt add 2 a mul div
- b neg disc sqrt sub 2 a mul div
- 2
- }
- ifelse
- }
- ifelse
- end
-} def
-
-% work our which quadrant: <angle> lfigquadrant <0-3>
-/lfigquadrant
-{ dup 90 lt
- { pop 0
- }
- { dup 180 lt
- { pop 1
- }
- { 270 lt
- { 2
- }
- { 3
- } ifelse
- } ifelse
- } ifelse
-} def
-
-% find curvebox circum, assuming upper right quadrant: alpha a b xmk lfigcb x y
-/lfigcb
-{
- 6 dict begin
- /xmk exch def
- /b exch def
- /a exch def
- /alpha exch def
- /theta1 0 0 a b xmk sub lfigangle def
- /theta2 0 0 a xmk sub b lfigangle def
- alpha theta1 le
- { % if alpha <= theta1, return (a, a*tan(alpha))
- a a alpha sin mul alpha cos div
- }
- { alpha theta2 ge
- { % else if alpha > theta2, return (b*cot(alpha), b)
- b alpha cos mul alpha sin div b
- }
- {
- % else, return the intersection of line and circle
- a xmk sub b xmk sub xmk 0 0 alpha lfigcircleintersect
- dup 0 eq
- { % should never happen, just return any reasonable point
- pop
- a b 0.5 lfigpmul
- }
- { 1 eq
- { % should never happen, just return the point on top of stack
- }
- { % the usual case, two points on stack, return the larger
- lfigpmax
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- end
-} def
-
-% find point on circumference of curvebox: alpha a b xmk lfigcurveboxcircum x y
-/lfigcurveboxcircum
-{
- % (Entering lfigcurveboxcircum) lfigdebugprint
- 5 dict begin
- /xmk exch def
- /b exch def
- /a exch def
- lfigfixangle /alpha exch def
-
- % work out which quadrant we are in, and reflect accordingly
- /quad alpha lfigquadrant def
- quad 0 eq
- { alpha a b xmk lfigcb
- }
- { quad 1 eq
- { 180 alpha sub a b xmk lfigcb exch neg exch
- }
- { quad 2 eq
- { alpha 180 sub a b xmk lfigcb neg exch neg exch
- }
- { 360 alpha sub a b xmk lfigcb neg
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving lfigcurveboxcircum) lfigdebugprint
-} def
-
-% find point on circumference of diamond: alpha a b lfigdiamondcircum x y
-/lfigdiamondcircum
-{
- % (Entering lfigdiamondcircum) lfigdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- lfigfixangle /alpha exch def
- b alpha cos abs mul a alpha sin abs mul add /denom exch def
- a b mul alpha cos mul denom div
- a b mul alpha sin mul denom div
- end
- % (Leaving lfigdiamondcircum) lfigdebugprint
-} def
-
-% find point on circumference of ellipse: alpha a b lfigellipsecircum x y
-/lfigellipsecircum
-{
- % (Entering lfigellipsecircum) lfigdebugprint
- 4 dict begin
- /b exch def
- /a exch def
- lfigfixangle /alpha exch def
- b alpha cos mul dup mul a alpha sin mul dup mul add sqrt /denom exch def
- a b mul alpha cos mul denom div
- a b mul alpha sin mul denom div
- end
- % (Leaving lfigellipsecircum) lfigdebugprint
-} def
-
-% find point of intersection of two lines each defined by two points
-% x1 y1 x2 y2 x3 y3 x4 y4 lfiglineintersect x y
-/lfiglineintersect
-{
- % (Entering lfiglineintersect) lfigdebugprint
- 13 dict begin
- /y4 exch def
- /x4 exch def
- /y3 exch def
- /x3 exch def
- /y2 exch def
- /x2 exch def
- /y1 exch def
- /x1 exch def
- x2 x1 sub /x21 exch def
- x4 x3 sub /x43 exch def
- y2 y1 sub /y21 exch def
- y4 y3 sub /y43 exch def
- y21 x43 mul y43 x21 mul sub /det exch def
-
- % calculate x
- y21 x43 mul x1 mul
- y43 x21 mul x3 mul sub
- y3 y1 sub x21 mul x43 mul add
- det div
-
- % calculate y
- x21 y43 mul y1 mul
- x43 y21 mul y3 mul sub
- x3 x1 sub y21 mul y43 mul add
- det neg div
-
- end
- % (Leaving lfiglineintersect) lfigdebugprint
-} def
-
-% find point on circumference of polygon
-% alpha radius num theta lfigpolycircum x y
-/lfigpolycircum
-{
- % (Entering lfigpolycircum) lfigdebugprint
- 13 dict begin
- /theta exch def
- /num exch def
- /radius exch def
- /alpha exch def
-
- % calculate delta, the angle from theta to alpha
- alpha theta sub lfigfixangle
-
- % calculate the angle which is the multiple of 360/num closest to delta
- 360 num div div truncate 360 num div mul theta add /anglea exch def
-
- % calculate the next multiple of 360/num after anglea
- anglea 360 num div add /angleb exch def
-
- % intersect the line through these two points with the alpha line
- anglea cos anglea sin angleb cos angleb sin
- 0 0 alpha cos 2 mul alpha sin 2 mul
- lfiglineintersect radius lfigpmul
-
- end
- % (Leaving lfigpolycircum) lfigdebugprint
-} def
-
-% find point of intersection of a point and a circle
-% x0 y0 r x1 y1 theta lfigcircleintersect xa ya xb yb 2
-% or xb yb 1
-% or 0
-/lfigcircleintersect
-{
- % (Entering lfigcircleintersect) lfigdebugprint
- 15 dict begin
- /theta exch def
- /y1 exch def
- /x1 exch def
- /r exch def
- /y0 exch def
- /x0 exch def
-
- % if sin(theta) = 0 then line is horizontal and y must be y1
- theta sin abs 0.00001 lt
- {
- /a 1 def
- /b -2 x0 mul def
- /c x0 dup mul y1 y0 sub dup mul add r dup mul sub def
- a b c lfigqroots dup
- 0 eq
- { pop
- 0
- }
- { 1 eq
- { y1 1
- }
- { y1 exch y1 2
- } ifelse
- } ifelse
- }
- {
- /ct theta cos theta sin div def
- /a ct ct mul 1 add def
- /b ct x1 x0 sub mul y1 add y0 sub 2 mul def
- /c x1 x0 sub dup mul y1 y0 sub dup mul add r dup mul sub def
- a b c lfigqroots dup
- 0 eq
- { pop
- 0
- }
- { 1 eq
- { y1 add /yb exch def
- yb y1 sub ct mul x1 add /xb exch def
- xb yb 1
- }
- { y1 add /ya exch def
- ya y1 sub ct mul x1 add /xa exch def
- y1 add /yb exch def
- yb y1 sub ct mul x1 add /xb exch def
- xa ya xb yb 2
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving lfigcircleintersect) lfigdebugprint
-} def
-
-% add CIRCUM operator with this body: <array> lfigcircumdef -
-/lfigcircumdef
-{ % (Entering lfigcircumdef) lfigdebugprint
- /CIRCUM exch cvx
- currentdict end
- 3 1 roll
- % currentdict length currentdict maxlength lt
- % { def }
- % { exec moveto (too many labels) show stop }
- % ifelse
- def
- begin
- % (Leaving lfigcircumdef) lfigdebugprint
-} def
-
-end
-%%EndResource
diff --git a/include/include/graph b/include/include/graph
deleted file mode 100644
index 8f6c2a2..0000000
--- a/include/include/graph
+++ /dev/null
@@ -1,112 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for graph drawing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# 21 June 2013 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { graphf } line #
-# #
-# This line causes Lout to read the definitions for graphs, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { graphf }
-
-
-###############################################################################
-# #
-# The @GraphSetup @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @GraphSetup
-
- #############################################################################
- # #
- # Options for @Graph only #
- # #
- #############################################################################
-
- # style { frame }
- # font { }
- # named xorigin { none }
- # named yorigin { none }
- # named xlog { none }
- # named ylog { none }
- # width { 6.0c }
- # height { 4.0c }
- # xextra { auto }
- # yextra { auto }
- # xdecreasing { no }
- # ydecreasing { no }
- # leftcaption { }
- # rightcaption { }
- # abovecaption { }
- # belowcaption { }
- # leftgap { 1.5c }
- # rightgap { 0.5c }
- # abovegap { 0.5c }
- # belowgap { 0.5c }
- # hidecaptions { yes }
- # xmin { none }
- # xmax { none }
- # ymin { none }
- # ymax { none }
- # xticksep { none }
- # yticksep { none }
- # rticksep { none }
- # xticks { auto }
- # yticks { auto }
- # rticks { }
- # xticklength { 0.5f }
- # yticklength { 0.5f }
- # rticklength { 0.5f }
- # objects { }
- # save { no }
-
- #############################################################################
- # #
- # Options for @Graph and @Data #
- # #
- #############################################################################
-
- # points { none }
- # symbolsize { 0.15f }
- # symbollinewidth { currentlinewidth }
- # pairs { none }
- # dashlength { 0.2f }
- # linewidth { currentlinewidth }
- # colour { none }
- # paint { no }
- # texture { solid }
- # dataformat { xandy }
-
- #############################################################################
- # #
- # Options for @GraphCross etc. and @GraphNoLine etc. #
- # #
- # Owing to clashes the names of these options differ slightly from the #
- # names of the corresponding options of @GraphCross etc. and @GraphNoLine #
- # etc. whose default values they are, in being prefixed by an "o". #
- # #
- #############################################################################
-
- # osymbolsize { 0.15f }
- # osymbollinewidth { currentlinewidth }
- # odashlength { 0.2f }
- # olinewidth { currentlinewidth }
- # olength { 1.0f }
-}
diff --git a/include/include/graphf b/include/include/graphf
deleted file mode 100644
index fad552f..0000000
--- a/include/include/graphf
+++ /dev/null
@@ -1,1097 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Graph package for drawing graphs (Version 1.1) #
-# #
-# Version 1.0 (December 1993). #
-# Version 1.1 (adds @GraphSetup, June 2013) #
-# Jeffrey H. Kingston #
-# #
-# This package draws graphs, the statistical kind not the graph-theoretical #
-# kind. See the User's Guide for user info. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysInclude { graphf.etc } # @GraphMath
-@SysInclude { lengths } # @LoutLengths
-@SysInclude { coltex } # @ColourCommand and @TextureCommand
-@SysPrependGraphic { graphf.lpg }
-
-
-###############################################################################
-# #
-# @GraphZZZ symbol - not for ordinary use #
-# #
-###############################################################################
-
-def @GraphZZZ
- left p
- named margin { 0c }
- named adj { 0 0 }
- right x
-{
- @BackEnd @Case {
- PostScript @Yield {
- @Null & # kills previous white space
- @HContract @VContract {
- //0io ||0io @HContract @VContract
- { p "trpoint translate" adj "translate gsave" // "grestore" }
- @Graphic { //margin ||margin x ||margin //margin }
- ||0io //0io
- }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @Null & # kills previous white space
- @HContract @VContract {
- //0io ||0io @HContract @VContract
- { "% @GraphZZZ UNIMPLEMENTED" }
- @Graphic { //margin ||margin x ||margin //margin }
- ||0io //0io
- }
- }
- }
-}
-
-
-###############################################################################
-# #
-# @GraphSetup symbol #
-# #
-###############################################################################
-
-export @GraphCross @GraphPlus @GraphSquare @GraphFilledSquare
- @GraphDiamond @GraphFilledDiamond @GraphCircle @GraphFilledCircle
- @GraphTriangle @GraphFilledTriangle
-
- @GraphNoLine @GraphSolid @GraphDashed @GraphDotted @GraphDotDashed
- @GraphDotDotDashed @GraphDotDotDotDashed
-
- @Graph
-
-def @GraphSetup
- named style { frame }
- named font { }
- named xorigin named none { "false" } { none }
- named yorigin named none { "false" } { none }
- named xlog named none { "0" } { none }
- named ylog named none { "0" } { none }
- import @LoutLengths named width { 6.0c }
- import @LoutLengths named height { 4.0c }
- import @PSLengths named xextra { auto }
- import @PSLengths named yextra { auto }
- named xdecreasing { no }
- named ydecreasing { no }
- named leftcaption { }
- named rightcaption { }
- named abovecaption { }
- named belowcaption { }
- import @LoutLengths named leftgap { 1.5c }
- import @LoutLengths named rightgap { 0.5c }
- import @LoutLengths named abovegap { 0.5c }
- import @LoutLengths named belowgap { 0.5c }
- named hidecaptions { yes }
- named xmin named none { "false" } { none }
- named xmax named none { "false" } { none }
- named ymin named none { "false" } { none }
- named ymax named none { "false" } { none }
- named xticksep named none { "0" } { none }
- named yticksep named none { "0" } { none }
- named rticksep named none { "0" } { none }
- import @GraphMath named xticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { auto }
- import @GraphMath named yticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { auto }
- import @GraphMath named rticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { }
- import @PSLengths named xticklength { 0.5f }
- import @PSLengths named yticklength { 0.5f }
- import @PSLengths named rticklength { 0.5f }
- named objects
- named @NW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg ysize" } margin { margin } x }
- named @SW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 0" } margin { margin } x }
- named @SE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 0" } margin { margin } x }
- named @NE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 ysize" } margin { margin } x }
- named @W
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg ysize 2 div" } margin { margin } x }
- named @S
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 2 div 0" } margin { margin } x }
- named @E
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 ysize 2 div" } margin { margin } x }
- named @N
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 2 div ysize" } margin { margin } x }
- named @CTR
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- {at @GraphZZZ adj {"xsize neg 2 div ysize 2 div"} margin {margin} x}
- {}
- named save { no }
- named points named none { "none" } { none }
- import @PSLengths named symbolsize { 0.15f }
- import @PSLengths named symbollinewidth { "currentlinewidth" }
- named pairs named none { "none" } { none }
- import @PSLengths named dashlength { 0.2f }
- import @PSLengths named linewidth { "currentlinewidth" }
- named colour color named none { "none" } { none }
- named paint { no }
- import @TextureImport named texture { solid }
- named dataformat { xandy }
- import @LoutLengths named osymbolsize { 0.15f }
- import @PSLengths named osymbollinewidth { "currentlinewidth" }
- import @PSLengths named odashlength { 0.2f }
- import @PSLengths named olinewidth { "currentlinewidth" }
- import @LoutLengths named olength { 1.0f }
-{
- def @GraphCross
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize ysize lineto 0 ysize moveto"
- # "xsize 0 lineto [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "docross"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- { "n [] 0 d 0 0 m __xsize __ysize l 0 __ysize m __xsize 0 l S"}
- # uses S because PostScript version does NOT use closepath
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphPlus
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark 0 moveto xmark ysize lineto 0 ymark moveto"
- # "xsize ymark lineto [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "doplus"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- { "n [] 0 d __xmark 0 m __xmark __ysize l 0 __ymark m __xsize __ymark l S"}
- # uses S because PostScript version does NOT use closepath
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphSquare
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
- # "0 ysize lineto closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dosquare"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 __xsize __ysize re s"}
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphFilledSquare
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize"
- # "lineto closepath gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark"
- symbollinewidth "dofilledsquare" // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 __xsize __ysize re b"}
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphDiamond
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
- # "xmark ysize lineto closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dodiamond"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l s"}
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphFilledDiamond
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto"
- # "xmark ysize lineto closepath gsave [] 0 setdash stroke
- # grestore fill"
- "lgraphdict begin xmark ymark xmark"
- symbollinewidth "dofilleddiamond" // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 __ymark m __xmark 0 l __xsize __ymark l __xmark __ysize l b"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphCircle
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark ymark xmark 0 360 arc"
- # "[] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "docircle"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
-#
-# draw a circle whose centre is at (xmark, ymark) and whose radius is xmark units;
-#
-# for curveto to work, we need to calculate the control points of the Bezier curve
-# as well as move the pen to the correct initial point. The circle is drawn as two
-# arcs of 180 degrees
-#
-# pt0 = (xmark + xmark, ymark)
-# pt1 = (xmark + xmark, ymark + 4/3 * xmark)
-# pt2 = (0, ymark + 4/3 * xmark)
-# pt3 = (0, ymark)
-#
-# pt0 = (0, ymark)
-# pt1 = (0, ymark - 4/3 * xmark)
-# pt2 = (xmark + xmark, ymark - 4/3 * xmark)
-# pt3 = (xmark + xmark, ymark)
-#
- {"n [] 0 d"
- "__mul(2, __xmark) __ymark m"
- "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "0 __ymark c" # pt3
-
- "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "__mul(2, __xmark) __ymark c S" # pt3
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphFilledCircle
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath xmark ymark xmark 0 360 arc"
- # "gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark"
- symbollinewidth "dofilledcircle" // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
-#
-# draw a filled circle whose centre is at (xmark, ymark) and whose radius is xmark units;
-#
-# for curveto to work, we need to calculate the control points of the Bezier curve
-# as well as move the pen to the correct initial point. The circle is drawn as two
-# arcs of 180 degrees
-#
-# pt0 = (xmark + xmark, ymark)
-# pt1 = (xmark + xmark, ymark + 4/3 * xmark)
-# pt2 = (0, ymark + 4/3 * xmark)
-# pt3 = (0, ymark)
-#
-# pt0 = (0, ymark)
-# pt1 = (0, ymark - 4/3 * xmark)
-# pt2 = (xmark + xmark, ymark - 4/3 * xmark)
-# pt3 = (xmark + xmark, ymark)
-#
-# Note: this is not a strict translation because there is a setdash bracketed by
-# gsave/grestore in the above PostScript but there is no closepath before it;
-# but in PDF, it is not possible to execute a setdash within a path definition.
-#
- {"n [] 0 d"
- "__mul(2, __xmark) __ymark m"
- "__mul(2, __xmark) __add(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "0 __add(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "0 __ymark c" # pt3
-
- "0 __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt1
- "__mul(2, __xmark) __sub(__ymark, __div(__mul(4, __xmark), 3))" # pt2
- "__mul(2, __xmark) __ymark c b" # pt3
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphTriangle
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
- # "closepath [] 0 setdash stroke"
- "lgraphdict begin xmark ymark xmark" symbollinewidth "dotriangle"
- // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l s"}
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphFilledTriangle
- import @LoutLengths named symbolsize { osymbolsize }
- import @PSLengths named symbollinewidth { osymbollinewidth }
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- @HContract @VContract
- {
- # "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto"
- # "closepath gsave [] 0 setdash stroke grestore fill"
- "lgraphdict begin xmark ymark xmark"
- symbollinewidth "dofilledtriangle" // "end"
- }
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- PDF @Yield {
- @HContract @VContract
- {"n [] 0 d 0 0 m __xsize 0 l __xmark __mul(__ysize, 1.25) l h b"}
- @Graphic {symbolsize @High symbolsize @Wide ^|
- symbolsize @Wide ^/ symbolsize @High}
- }
-
- }
- }
-
- def @GraphNoLine
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- length @Wide {}
- }
-
- def @GraphSolid
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "solid end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphSolid UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
- }
-
- def @GraphDashed
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dashed end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDashed UNIMPLEMENTED" } @Graphic { olength @Wide }
- }
- }
- }
-
- def @GraphDotted
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotted end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotted UNIMPLEMENTED" } @Graphic { olength @Wide }
- }
- }
- }
-
- def @GraphDotDashed
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotdashed end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
- }
-
- def @GraphDotDotDashed
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto"
- "/linewidth" linewidth "def xsize" dashlength "dotdotdashed end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
- }
-
- def @GraphDotDotDotDashed
- import @PSLengths named dashlength { odashlength }
- import @PSLengths named linewidth { olinewidth }
- import @LoutLengths named length { olength }
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- { "xsize 0 lgraphdict begin newpath 0 0 moveto lineto /linewidth"
- linewidth "def xsize" dashlength "dotdotdotdashed end"
- } @Graphic { length @Wide }
- }
- # VT: PDF does nothing
- PDF @Yield {
- @HContract @VContract
- { "% @GraphDotDotDotDashed UNIMPLEMENTED" } @Graphic { length @Wide }
- }
- }
- }
-
-
- export @Data
- def @Graph
- named style { style }
- named font { font }
- named xorigin named none { "false" } { xorigin }
- named yorigin named none { "false" } { yorigin }
- named xlog named none { "0" } { xlog }
- named ylog named none { "0" } { ylog }
- import @LoutLengths named width { width }
- import @LoutLengths named height { height }
- import @PSLengths named xextra { xextra }
- import @PSLengths named yextra { yextra }
- named xdecreasing { xdecreasing }
- named ydecreasing { ydecreasing }
- named leftcaption { leftcaption }
- named rightcaption { rightcaption }
- named abovecaption { abovecaption }
- named belowcaption { belowcaption }
- import @LoutLengths named leftgap { leftgap }
- import @LoutLengths named rightgap { rightgap }
- import @LoutLengths named abovegap { abovegap }
- import @LoutLengths named belowgap { belowgap }
- named hidecaptions { hidecaptions }
- named xmin named none { "false" } { xmin }
- named xmax named none { "false" } { xmax }
- named ymin named none { "false" } { ymin }
- named ymax named none { "false" } { ymax }
- named xticksep named none { "0" } { xticksep }
- named yticksep named none { "0" } { yticksep }
- named rticksep named none { "0" } { rticksep }
- import @GraphMath named xticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { xticks }
- import @GraphMath named yticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { yticks }
- import @GraphMath named rticks
- named none { "false" }
- named auto { "false" }
- named "@" { " lgen" }
- named "^" { "^" }
- { rticks }
- import @PSLengths named xticklength { xticklength }
- import @PSLengths named yticklength { yticklength }
- import @PSLengths named rticklength { rticklength }
- named objects
- named @NW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg ysize" } margin { margin } x }
- named @SW
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 0" } margin { margin } x }
- named @SE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 0" } margin { margin } x }
- named @NE
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 ysize" } margin { margin } x }
- named @W
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg ysize 2 div" } margin { margin } x }
- named @S
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 2 div 0" } margin { margin } x }
- named @E
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "0 ysize 2 div" } margin { margin } x }
- named @N
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- { at @GraphZZZ adj { "xsize neg 2 div ysize" } margin { margin } x }
- named @CTR
- import @GraphMath named at { 0 0 }
- import @LoutLengths named margin { 0.3f }
- right x
- {at @GraphZZZ adj {"xsize neg 2 div ysize 2 div"} margin {margin} x}
- { objects }
- named save { save }
- named points named none { "none" } { points }
- import @PSLengths named symbolsize { symbolsize }
- import @PSLengths named symbollinewidth { symbollinewidth }
- named pairs named none { "none" } { pairs }
- import @PSLengths named dashlength { dashlength }
- import @PSLengths named linewidth { linewidth }
- named colour color named none { "none" } { colour }
- named paint { paint }
- import @TextureImport named texture { texture }
- named dataformat { dataformat }
- body @Body
- {
-
- def @Above
- {
- abovecaption @Case {
- "" @Yield {}
- else @Yield @OneCol {
- ||0.5rt clines @Break abovecaption || //abovegap }
- }
- }
-
- def @Below
- {
- belowcaption @Case {
- "" @Yield {}
- else @Yield @OneCol {
- //belowgap ||0.5rt clines @Break belowcaption || }
- }
- }
-
- def @Left
- {
- leftcaption @Case {
- "" @Yield {}
- else @Yield @OneCol @OneRow {
- { //0.5rt @OneRow clines @Break leftcaption // } ^||leftgap }
- }
- }
-
- def @Right
- {
- rightcaption @Case {
- "" @Yield {}
- else @Yield @OneCol @OneRow {
- ||rightgap { //0.5rt @OneRow lines @Break rightcaption // } }
- }
- }
-
- def @ZeroWidth
- right x
- {
- hidecaptions @Case {
- { No no } @Yield x
- { Yes yes } @Yield @OneCol { ||0io x ||0io }
- }
- }
-
- def @AddCaptions right x
- {
- def belowextra
- {
- xticks @Case {
- "" @Yield { 0i }
- else @Yield { 1.7f }
- }
- }
-
- @HContract @VContract
- {
- | @Above |
- / @ZeroWidth @Left | &0.5rt x | @ZeroWidth @Right
- /belowextra | @Below |
- }
- }
-
- export pi e sqrt abs ceiling floor truncate round cos sin atan
- exp log rand "*" "/" idiv mod "-" "-0" "-1" "-2" "-3" "-4"
- "-5" "-6" "-7" "-8" "-9" "-." "+" "=" "!=" "<" "<=" ">" ">="
- not and xor or if xloop yloop zloop
-
- def @Data
- named points named none { "none" } { points }
- import @PSLengths named symbolsize { symbolsize }
- import @PSLengths named symbollinewidth { symbollinewidth }
- named pairs named none { "none" } { pairs }
- import @PSLengths named dashlength { dashlength }
- import @PSLengths named linewidth { linewidth }
- named colour color named none { "none" } { colour }
- named paint { paint }
- import @TextureImport named texture { texture }
- named dataformat { dataformat }
- body data
- {
- def pi { "3.14159" }
- def e { "2.71828" }
- def sqrt precedence 40 right y { y "sqrt" }
- def abs precedence 40 right y { y "abs" }
- def ceiling precedence 40 right y { y "ceiling" }
- def floor precedence 40 right y { y "floor" }
- def truncate precedence 40 right y { y "truncate" }
- def round precedence 40 right y { y "round" }
- def cos precedence 40 right y { y "cos" }
- def sin precedence 40 right y { y "sin" }
- def atan precedence 39 left x right y { x y "atan" }
- def exp precedence 38 left x right y { x y "exp" }
- def log precedence 37 left x right y { x y "dolog" }
- def rand precedence 36 left x right y { x y "dorand" }
- def "*" precedence 35 left x right y { x y "mul" }
- def "/" precedence 34 left x right y { x y "div" }
- def idiv precedence 34 left x right y { x y "idiv" }
- def mod precedence 34 left x right y { x y "mod" }
- def "-" precedence 33 left x right y
- { x @Case { "" @Yield {y "neg"} else @Yield { x y "sub" } } }
- def "-0" { "-0" }
- def "-1" { "-1" }
- def "-2" { "-2" }
- def "-3" { "-3" }
- def "-4" { "-4" }
- def "-5" { "-5" }
- def "-6" { "-6" }
- def "-7" { "-7" }
- def "-8" { "-8" }
- def "-9" { "-9" }
- def "-." { "-." }
- def "+" precedence 32 left x right y
- { x @Case { "" @Yield { y } else @Yield { x y "add" } } }
- def "=" precedence 30 left x right y { x y "eq" }
- def "!=" precedence 30 left x right y { x y "ne" }
- def "<" precedence 30 left x right y { x y "lt" }
- def "<=" precedence 30 left x right y { x y "le" }
- def ">" precedence 30 left x right y { x y "gt" }
- def ">=" precedence 30 left x right y { x y "ge" }
- def not precedence 25 right y { y "not" }
- def and precedence 24 left x right y { x y "and" }
- def xor precedence 23 left x right y { x y "xor" }
- def or precedence 22 left x right y { x y "or" }
- def if
- named cond { true }
- named then {}
- named else {}
- { cond "{" then "} {" else "} ifelse" }
- def xloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named x { "xval" } {}
- { from by to "{ /xval exch def" do "} for" }
- def yloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named y { "yval" } {}
- { from by to "{ /yval exch def" do "} for" }
- def zloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named z { "zval" } {}
- { from by to "{ /zval exch def" do "} for" }
-
- def @IfPt
- left no
- right yes
- {
- points @Case {
- none @Yield no
- else @Yield yes
- }
- }
-
- def @Points
- {
- points @Case {
- none @Yield ""
- plus @Yield "plus"
- cross @Yield "cross"
- square @Yield "square"
- filledsquare @Yield "filledsquare"
- diamond @Yield "diamond"
- filleddiamond @Yield "filleddiamond"
- circle @Yield "circle"
- filledcircle @Yield "filledcircle"
- triangle @Yield "triangle"
- filledtriangle @Yield "filledtriangle"
- }
- }
-
- def @Pairs
- {
- pairs @Case {
- none @Yield {}
- solid @Yield { "linesetup solid" @IfPt "ilinesetup solid" }
- dashed @Yield { "linesetup cdashed" @IfPt "ilinesetup dashed" }
- dotted @Yield { "linesetup dotted" @IfPt "ilinesetup dotted" }
- dotdashed @Yield { "linesetup dotcdashed" @IfPt
- "ilinesetup dotdashed" }
- dotdotdashed @Yield { "linesetup dotdotcdashed" @IfPt
- "ilinesetup dotdotdashed" }
- dotdotdotdashed @Yield { "linesetup dotdotdotcdashed" @IfPt
- "ilinesetup dotdotdotdashed" }
- surfacexhisto @Yield { "surfacexhisto" }
- surfaceyhisto @Yield { "surfaceyhisto" }
- xhisto @Yield { "xhisto" }
- yhisto @Yield { "yhisto" }
- filledxhisto @Yield { "filledxhisto" }
- filledyhisto @Yield { "filledyhisto" }
- }
- }
-
- def @DataFormat
- {
- dataformat @Case {
- xandy @Yield xandy
- swapxandy @Yield swapxandy
- yonly @Yield yonly
- xonly @Yield xonly
- }
- }
-
- def @Paint
- {
- paint @Case {
- { none no No } @Yield "false"
- { yes Yes } @Yield "true"
- }
- }
-
- "[ [" data "]" dataformat
- "{" @Points "}"
- "{" @Pairs "}"
- "{ /dashlength" dashlength "def"
- " /linewidth" linewidth "def" @ColourCommand colour
- " /symbolsize" symbolsize "def"
- " /symbollinewidth" symbollinewidth "def }"
- "{" @Paint "}"
- "{" texture "}"
- "]"
- }
-
- def @Style
- {
- style @Case {
- frame @Yield { "framestyle" }
- grid @Yield { "gridstyle" }
- none @Yield { "nonestyle" }
- axes @Yield { "axesstyle" }
- }
- }
-
- def @XExtra
- {
- xextra @Case {
- "auto" @Yield {
- style @Case {
- frame @Yield { "0.5 cm" }
- grid @Yield { "0" }
- none @Yield { "0" }
- axes @Yield { "0" }
- }
- }
- else @Yield xextra
- }
- }
-
- def @YExtra
- {
- yextra @Case {
- "auto" @Yield {
- style @Case {
- frame @Yield { "0.5 cm" }
- grid @Yield { "0" }
- none @Yield { "0" }
- axes @Yield { "0" }
- }
- }
- else @Yield yextra
- }
- }
-
- def @XDecreasing
- {
- xdecreasing @Case {
- { No no } @Yield "false"
- { Yes yes } @Yield "true"
- }
- }
-
- def @YDecreasing
- {
- ydecreasing @Case {
- { No no } @Yield "false"
- { Yes yes } @Yield "true"
- }
- }
-
- font @Font @AddCaptions width @Wide height @High
- @BackEnd @Case {
- PostScript @Yield {
- {
- "grestore"
- save @Case { { Yes yes } @Yield "save" else @Yield {} }
- "gsave xsize ysize lgraphdict begin /ysize exch def"
- "/xsize exch def /alldata [" @Body "] def"
- xticksep "[" xticks "] 0 alldata" xmin xmax xlog
- @XExtra @XDecreasing xorigin xticklength "xset"
- yticksep "[" yticks "] 1 alldata" ymin ymax ylog
- @YExtra @YDecreasing yorigin yticklength "yset"
-
- rticks @Case {
-
- "" @Yield "norset"
-
- else @Yield {
- rticksep "[" rticks "] 1 alldata" ymin ymax ylog
- @YExtra @YDecreasing yorigin rticklength "rset"
- }
- }
-
- "rundata" @Style // "end"
- save @Case { { Yes yes } @Yield "restore" else @Yield {} }
- } @Graphic { //1rt objects }
- }
- PDF @Yield { {"% @Graph UNIMPLEMENTED"} @Graphic { //1rt objects } }
- }
-
- }
-}
diff --git a/include/include/graphf.etc b/include/include/graphf.etc
deleted file mode 100644
index d01734d..0000000
--- a/include/include/graphf.etc
+++ /dev/null
@@ -1,312 +0,0 @@
-
-###############################################################################
-# #
-# Lout @GraphMath package for @Graph (Version 1.1) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, December 1993. #
-# Version 1.1 by Jeffrey H. Kingston, October 1996. #
-# #
-# This package provides mathematics for the @Graph graph drawing package. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export
-
- "-0" "-1" "-2" "-3" "-4" "-5" "-6" "-7" "-8" "-9" "-."
- pi e sqrt abs ceiling floor truncate round cos sin atan
- exp log rand "*" "/" idiv mod "+" "-"
- "=" "!=" "<" "<=" ">" ">=" not and xor or
- if xloop yloop zloop
-
-def @GraphMath
-{
- def "-0" { "-0" }
- def "-1" { "-1" }
- def "-2" { "-2" }
- def "-3" { "-3" }
- def "-4" { "-4" }
- def "-5" { "-5" }
- def "-6" { "-6" }
- def "-7" { "-7" }
- def "-8" { "-8" }
- def "-9" { "-9" }
- def "-." { "-." }
-
- def pi { "3.14159" }
-
- def e { "2.71828" }
-
- def sqrt
- precedence 40
- right y
- {
- y "sqrt"
- }
-
- def abs
- precedence 40
- right y
- {
- y "abs"
- }
-
- def ceiling
- precedence 40
- right y
- {
- y "ceiling"
- }
-
- def floor
- precedence 40
- right y
- {
- y "floor"
- }
-
- def truncate
- precedence 40
- right y
- {
- y "truncate"
- }
-
- def round
- precedence 40
- right y
- {
- y "round"
- }
-
- def cos
- precedence 40
- right y
- {
- y "cos"
- }
-
- def sin
- precedence 40
- right y
- {
- y "sin"
- }
-
- def atan
- precedence 39
- left x
- right y
- {
- x y "atan"
- }
-
- def exp
- precedence 38
- left x
- right y
- {
- x y "exp"
- }
-
- def log
- precedence 37
- left x
- right y
- {
- x y "dolog"
- }
-
- def rand
- precedence 36
- left x
- right y
- {
- x y "dorand"
- }
-
- def "*"
- precedence 35
- left x
- right y
- {
- x y "mul"
- }
-
- def "/"
- precedence 35
- left x
- right y
- {
- x y "div"
- }
-
- def "idiv"
- precedence 34
- left x
- right y
- {
- x y "idiv"
- }
-
- def "mod"
- precedence 34
- left x
- right y
- {
- x y "mod"
- }
-
- def "-"
- precedence 33
- left x
- right y
- {
- x @Case {
- "" @Yield { y "neg" }
- else @Yield { x y "sub" }
- }
- }
-
- def "+"
- precedence 32
- left x
- right y
- {
- x @Case {
- "" @Yield { y }
- else @Yield { x y "add" }
- }
- }
-
- def "="
- precedence 30
- left x
- right y
- {
- x y "eq"
- }
-
- def "!="
- precedence 30
- left x
- right y
- {
- x y "ne"
- }
-
- def "<"
- precedence 30
- left x
- right y
- {
- x y "lt"
- }
-
- def "<="
- precedence 30
- left x
- right y
- {
- x y "le"
- }
-
- def ">"
- precedence 30
- left x
- right y
- {
- x y "gt"
- }
-
- def ">="
- precedence 30
- left x
- right y
- {
- x y "ge"
- }
-
- def "not"
- precedence 25
- right y
- {
- y "not"
- }
-
- def "and"
- precedence 24
- left x
- right y
- {
- x y "and"
- }
-
- def "xor"
- precedence 23
- left x
- right y
- {
- x y "xor"
- }
-
- def "or"
- precedence 22
- left x
- right y
- {
- x y "or"
- }
-
- def if
- named cond { true }
- named then {}
- named else {}
- {
- cond "{" then "} {" else "} ifelse"
- }
-
- def xloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named x { "xval" } {}
- {
- from by to "{ /xval exch def" do "} for"
- }
-
- def yloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named y { "yval" } {}
- {
- from by to "{ /yval exch def" do "} for"
- }
-
- def zloop
- named from { 0 }
- named to { 0 }
- named by { 1 }
- named do named z { "zval" } {}
- {
- from by to "{ /zval exch def" do "} for"
- }
-
-}
diff --git a/include/include/graphf.lpg b/include/include/graphf.lpg
deleted file mode 100644
index a0137a4..0000000
--- a/include/include/graphf.lpg
+++ /dev/null
@@ -1,1091 +0,0 @@
-%%BeginResource: procset LoutGraphPrependGraphic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @Graph (Version 1.0) %
-% %
-% Version 1.0 by Jeffrey H. Kingston, December 1993. %
-% swapxandy added September 2001 by JHK. %
-% %
-% This file has been placed in the public domain by its author, %
-% Jeffrey H. Kingston %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-errordict begin
- /handleerror
- {
- { /Times-Roman findfont 8 pt scalefont setfont
- 0 setgray 4 pt 4 pt moveto
- $error /errorname get
- dup lgraphdict exch known
- { lgraphdict exch get }
- { 30 string cvs } ifelse
- show
- ( Command: ) show
- $error /command get 30 string cvs show
- } stopped {} if
- showpage stop
- } def
-end
-
-/lgraphdebugposy 432 def
-/lgraphdebugposx 72 def
-
-% - lgraphdebugnextline -
-/lgraphdebugnextline
-{
- lgraphdebugposy 72 lt
- { /lgraphdebugposx lgraphdebugposx 144 add store
- /lgraphdebugposy 432 store
- }
- {
- /lgraphdebugposy lgraphdebugposy 12 sub store
- } ifelse
- lgraphdebugposx lgraphdebugposy moveto
-} def
-
-% - lgraphdebugbeginindent -
-/lgraphdebugbeginindent
-{
- /lgraphdebugposx lgraphdebugposx 12 add store
-} def
-
-% - lgraphdebugendindent -
-/lgraphdebugendindent
-{
- /lgraphdebugposx lgraphdebugposx 12 sub store
-} def
-
-% <string> <int> lgraphdebugprint -
-% must be defined outside lgraphdict since used in arbitrary places
-% print <string> plus count or <int> stack entries, whichever is the smaller
-/lgraphdebugprint
-{
- exch
- gsave
- initgraphics
- lgraphdebugnextline
- /Times-Roman findfont 10 scalefont setfont
- 0 setgray show
- lgraphdebugbeginindent
- count 1 sub 2 copy lt { pop } { exch pop } ifelse 1 sub
- 0 exch 1 exch
- {
- lgraphdebugnextline
- index
- dup type (dicttype) eq
- {
- (begin dict) show
- lgraphdebugbeginindent
- {
- lgraphdebugnextline
- pop 100 string cvs show
- } forall
- lgraphdebugendindent
- lgraphdebugnextline
- (end dict) show
- }
- {
- dup type (arraytype) eq
- {
- (begin array) show
- lgraphdebugbeginindent
- {
- lgraphdebugnextline
- 100 string cvs show
- } forall
- lgraphdebugendindent
- lgraphdebugnextline
- (end array) show
- }
- {
- 100 string cvs show
- } ifelse
- } ifelse
- } for
- lgraphdebugendindent
- grestore
-} def
-
-
-/lgraphdict 200 dict def
-lgraphdict begin
-
-% error messages
-/dictfull (dictfull error) def
-/dictstackoverflow (dictstackoverflow error) def
-/execstackoverflow (execstackoverflow error: expression too complex?) def
-/limitcheck (limitcheck error: graph too complex or too large?) def
-/syntaxerror (syntaxerror error: syntax error in text of graph?) def
-/typecheck (typecheck error: syntax error in text of graph?) def
-/undefined (undefined error: unknown or misspelt symbol?) def
-/rangecheck (rangecheck error: undefined expression (e.g. divide by zero)?) def
-/VMError (VMError error: run out of memory?) def
-
-% random number between x and y inclusive: x y dorand num
-/dorand { 1 index sub 1 add rand exch mod add } def
-
-% log to given base: base num dolog num
-/dolog { ln exch ln div } def
-
-% maximum of two numbers: <num> <num> max <num>
-/max { 2 copy gt { pop } { exch pop } ifelse } def
-
-% add two points: <point> <point> padd <point>
-/padd { exch 3 1 roll add 3 1 roll add exch } def
-
-% subtract first point from second: <point> <point> psub <point>
-/psub { 3 2 roll sub 3 1 roll exch sub exch } def
-
-% distance between two points: <point> <point> distance <length>
-/distance { psub dup mul exch dup mul add sqrt } def
-
-% point at angle and distance: <point> <length> <angle> atangle <point>
-/atangle { 2 copy cos mul 3 1 roll sin mul padd } def
-
-% angle from one point to another: <point> <point> angle <angle>
-/angle { psub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse } def
-
-
-% set up for line
-% - linesetup <length> <dashlength>
-/linesetup
-{ newpath
- xcurr ycurr trpoint xprev yprev trpoint
- 4 copy moveto lineto distance dashlength
-} def
-
-% set up for icon-avoiding line
-% - ilinesetup <length> <dashlength>
-/ilinesetup
-{ newpath
- xprev yprev trpoint xcurr ycurr trpoint 4 copy
- 4 copy angle symbolsize 1.5 mul exch 4 2 roll pop pop atangle
- 6 2 roll 4 2 roll
- 4 copy angle symbolsize 1.5 mul exch 4 2 roll pop pop atangle
- 4 copy moveto lineto distance dashlength
-} def
-
-
-% stroke a solid line: <length> <dashlength> solid -
-/solid
-{ pop pop [] 0 setdash linewidth setlinewidth stroke
-} def
-
-% stroke a dashed line: <length> <dashlength> dashed -
-/dashed
-{ 2 copy 2 mul le 1 index 0 le or
- { exch pop 1 pt max [ exch dup ] 0 setdash }
- { dup [ exch 4 2 roll 2 copy div
- 1 sub 2 div ceiling dup 4 1 roll
- 1 add mul sub exch div ] 0 setdash
- } ifelse linewidth setlinewidth stroke
-} def
-
-% stroke a cdashed line: <length> <dashlength> cdashed -
-/cdashed
-{ 2 copy le 1 index 0 le or
- { exch pop 1 pt max [ exch dup ] dup 0 get 2 div setdash }
- { dup [ 4 2 roll exch 2 copy exch div
- 2 div ceiling div 1 index sub
- ] exch 2 div setdash
- } ifelse linewidth setlinewidth stroke
-} def
-
-% stroke a dotted line: <length> <dashlength> dotted -
-/dotted
-{ 2 copy le 1 index 0 le or
- { exch pop 1 pt max [ exch 0 exch ] 0 setdash }
- { 1 index exch div ceiling div 0.99999 mul
- [ 0 3 2 roll ] 0 setdash
- } ifelse gsave 1 setlinecap linewidth setlinewidth stroke grestore newpath
-} def
-
-% stroke a noline line: <length> <dashlength> noline -
-/noline
-{ pop pop
-} def
-
-% scale array elements by factor: <array> <factor> scalearray <array>
-/scalearray
-{
- [ exch 3 2 roll
- { exch dup 3 1 roll mul exch } forall
- pop ]
-} def
-
-% sum array elements: <array> sumarray <number>
-/sumarray
-{
- 0 exch { add } forall
-} def
-
-% begin a more complex line: <length> <dashlength> linebegin -
-/linebegin
-{
- % (Entering linebegin) 2 debugprint
- 20 dict begin
- /dashlen exch 1 pt max def
- /len exch def
- /gap dashlen def
- /halfgap dashlen 2 div def
- /dash dashlen def
- /halfdash dashlen 2 div def
- /dot 0 def
- % (Leaving linebegin) 0 debugprint
-} def
-% end a more complex line: <linecap> <cycle> <startpos> <stoppos> lineend -
-/lineend
-{
- % (Entering lineend) 3 debugprint
- /stoppos exch def
- /startpos exch def
- /cycle exch def
- /linecap exch def
- /stopposlen stoppos sumarray def
- /startposlen startpos sumarray def
- /cyclelen cycle sumarray def
- /effectivelen len startposlen add stopposlen sub def
- effectivelen 0 gt cyclelen 0 gt and
- {
- /repeats effectivelen cyclelen div ceiling def
- /factor len repeats cyclelen mul startposlen sub stopposlen add div def
- cycle factor scalearray startposlen factor mul setdash
- linecap setlinecap stroke
- } if
- end
- % (Leaving lineend) 0 debugprint
-} def
-
-% stroke a dotdashed line: <length> <dashlength> dotdashed -
-/dotdashed
-{
- linebegin
- 1 [dash gap dot gap] [] [dash]
- lineend
-} def
-
-% stroke a dotcdashed line: <length> <dashlength> dotcdashed -
-/dotcdashed
-{
- linebegin
- 1 [dash gap dot gap] [halfdash] [halfdash]
- lineend
-} def
-
-% stroke a dotdotdashed line: <length> <dashlength> dotdotdashed -
-/dotdotdashed
-{
- linebegin
- 1 [dash gap dot gap dot gap] [] [dash]
- lineend
-} def
-
-% stroke a dotdotcdashed line: <length> <dashlength> dotdotcdashed -
-/dotdotcdashed
-{
- linebegin
- 1 [dash gap dot gap dot gap] [halfdash] [halfdash]
- lineend
-} def
-
-% stroke a dotdotdotdashed line: <length> <dashlength> dotdotdotdashed -
-/dotdotdotdashed
-{
- linebegin
- 1 [dash gap dot gap dot gap dot gap] [] [dash]
- lineend
-} def
-
-% stroke a dotdotdotcdashed line: <length> <dashlength> dotdotdotcdashed -
-/dotdotdotcdashed
-{
- linebegin
- 1 [dash gap dot gap dot gap dot gap] [halfdash] [halfdash]
- lineend
-} def
-
-
-% stroke a y histogram: - yhisto -
-/yhisto
-{ xprev yleft trpoint yextra sub moveto
- xprev yprev trpoint lineto
- xcurr yprev trpoint lineto
- xcurr yleft trpoint yextra sub lineto
- linewidth setlinewidth stroke
-} def
-
-% stroke an x histogram: - xhisto -
-/xhisto
-{ xleft yprev trpoint exch xextra sub exch moveto
- xcurr yprev trpoint lineto
- xcurr ycurr trpoint lineto
- xleft ycurr trpoint exch xextra sub exch lineto
- linewidth setlinewidth stroke
-} def
-
-% stroke a surface y histogram: - surfaceyhisto -
-/surfaceyhisto
-{ firstpair
- { xprev yleft trpoint yextra sub moveto
- xprev yprev trpoint lineto
- }
- { xprev yprev trpoint moveto
- } ifelse
- xcurr yprev trpoint lineto
- lastpair
- { xcurr yleft trpoint yextra sub lineto
- }
- { xcurr ycurr trpoint lineto
- } ifelse
- linewidth setlinewidth stroke
-} def
-
-% stroke a surface x histogram: - surfacexhisto -
-/surfacexhisto
-{ firstpair
- { xleft yprev trpoint exch xextra sub exch moveto
- }
- { xprev yprev trpoint moveto
- } ifelse
- xcurr yprev trpoint lineto
- xcurr ycurr trpoint lineto
- lastpair
- { xleft ycurr trpoint exch xextra sub exch lineto
- } if
- linewidth setlinewidth stroke
-} def
-
-% % pre-texture versions
-% % stroke a filled y histogram: - filledyhisto -
-% /filledyhisto
-% {
-% linewidth setlinewidth
-% xprev yleft trpoint exch currentlinewidth 2 div add exch yextra sub moveto
-% xprev yprev trpoint exch currentlinewidth 2 div add exch lineto
-% xcurr yprev trpoint exch currentlinewidth 2 div sub exch lineto
-% xcurr yleft trpoint exch currentlinewidth 2 div sub exch yextra sub lineto
-% closepath fill
-% } def
-
-% % stroke a filled x histogram: - filledxhisto -
-% /filledxhisto
-% {
-% linewidth setlinewidth
-% xleft yprev trpoint currentlinewidth 2 div add exch xextra sub exch moveto
-% xcurr yprev trpoint currentlinewidth 2 div add lineto
-% xcurr ycurr trpoint currentlinewidth 2 div sub lineto
-% xleft ycurr trpoint currentlinewidth 2 div sub exch xextra sub exch lineto
-% closepath fill
-% } def
-
-% stroke a filled y histogram: - filledyhisto -
-/filledyhisto
-{
- linewidth setlinewidth
- xprev yleft trpoint exch currentlinewidth 1.3 mul add exch yextra sub moveto
- xprev yprev trpoint exch currentlinewidth 1.3 mul add exch lineto
- xcurr yprev trpoint exch currentlinewidth 1.3 mul sub exch lineto
- xcurr yleft trpoint exch currentlinewidth 1.3 mul sub exch yextra sub lineto
- gsave texture fill grestore stroke
-} def
-
-% stroke a filled x histogram: - filledxhisto -
-/filledxhisto
-{
- linewidth setlinewidth
- xleft yprev trpoint currentlinewidth 1.3 mul add exch xextra sub exch moveto
- xcurr yprev trpoint currentlinewidth 1.3 mul add lineto
- xcurr ycurr trpoint currentlinewidth 1.3 mul sub lineto
- xleft ycurr trpoint currentlinewidth 1.3 mul sub exch xextra sub exch lineto
- gsave texture fill grestore stroke
-} def
-
-
-% docross: show a cross with a given symbolsize and symbollinewidth
-% <x> <y> <symbolsize> <symbollinewidth> docross -
-/docross
-{
- setlinewidth
- /ss exch def
- newpath
- moveto
- ss neg ss neg rmoveto
- ss 2 mul ss 2 mul rlineto
- 0 ss -2 mul rmoveto
- ss -2 mul ss 2 mul rlineto
- [] 0 setdash 0 setlinecap stroke
-} def
-
-% cross: show a cross
-% - cross -
-/cross { xcurr ycurr trpoint symbolsize symbollinewidth docross } def
-
-% doplus: show a plus with a given symbolsize and symbollinewidth
-% <x> <y> <symbolsize> <symbollinewidth> doplus -
-/doplus
-{
- setlinewidth
- /ss exch def
- newpath
- moveto
- ss neg 0 rmoveto
- ss 2 mul 0 rlineto
- ss neg ss neg rmoveto
- 0 ss 2 mul rlineto
- [] 0 setdash 0 setlinecap stroke
-} def
-
-% plus: show a plus
-% - plus -
-/plus { xcurr ycurr trpoint symbolsize symbollinewidth doplus } def
-
-% dosquare: show an open square with a given symbolsize and symbollinewidth
-% NB symbolsize is reduced by half the line width to get size exactly right
-% <x> <y> <symbolsize> <symbollinewidth> dosquare -
-/dosquare
-{
- dup setlinewidth
- 0.5 mul sub 0 max /ss exch def
- newpath
- moveto
- ss neg ss neg rmoveto
- ss 2 mul 0 rlineto
- 0 ss 2 mul rlineto
- ss -2 mul 0 rlineto
- closepath [] 0 setdash stroke
-} def
-
-% square: show an open square
-% - square -
-/square { xcurr ycurr trpoint symbolsize symbollinewidth dosquare } def
-
-% dofilledsquare: show filled square with given symbolsize and symbollinewidth
-% NB symbollinewidth is not used
-% <x> <y> <symbolsize> <symbollinewidth> dofilledsquare -
-/dofilledsquare
-{
- pop /ss exch def
- newpath
- moveto
- ss neg ss neg rmoveto
- ss 2 mul 0 rlineto
- 0 ss 2 mul rlineto
- ss -2 mul 0 rlineto
- closepath fill
-} def
-
-% filledsquare: show a filled square
-% - filledsquare -
-/filledsquare { xcurr ycurr trpoint symbolsize symbollinewidth dofilledsquare } def
-
-% dodiamond: show an open diamond with a given symbolsize and symbollinewidth
-% NB symbolsize is reduced by half the line width to get size exactly right
-% <x> <y> <symbolsize> <symbollinewidth> dodiamond -
-/dodiamond
-{
- dup setlinewidth
- 0.5 mul sub 0 max /ss exch def
- newpath
- moveto
- ss neg 0 rmoveto
- ss ss neg rlineto
- ss ss rlineto
- ss neg ss rlineto
- closepath [] 0 setdash stroke
-} def
-
-% diamond: show an open diamond
-% - diamond -
-/diamond { xcurr ycurr trpoint symbolsize symbollinewidth dodiamond } def
-
-% dofilleddiamond: show filled diamond with given symbolsize and symbollinewidth
-% NB symbollinewidth is not used
-% <x> <y> <symbolsize> <symbollinewidth> dofilleddiamond -
-/dofilleddiamond
-{
- pop /ss exch def
- newpath
- moveto
- ss neg 0 rmoveto
- ss ss neg rlineto
- ss ss rlineto
- ss neg ss rlineto
- closepath fill
-} def
-
-% filleddiamond: show a filled diamond
-% - filleddiamond -
-/filleddiamond { xcurr ycurr trpoint symbolsize symbollinewidth dofilleddiamond } def
-
-% docircle: show an open circle with a given symbolsize and symbollinewidth
-% NB symbolsize is reduced by half the line width to get size exactly right
-% <x> <y> <symbolsize> <symbollinewidth> docircle -
-/docircle
-{
- dup setlinewidth
- 0.5 mul sub 0 max /ss exch def
- newpath
- ss 0 360 arc [] 0 setdash stroke
-} def
-
-% circle: show an open circle
-% - circle -
-/circle { xcurr ycurr trpoint symbolsize symbollinewidth docircle } def
-
-% dofilledcircle: show filled circle with given symbolsize and symbollinewidth
-% NB symbollinewidth is not used
-% <x> <y> <symbolsize> <symbollinewidth> dofilledcircle -
-/dofilledcircle
-{
- pop /ss exch def
- newpath
- ss 0 360 arc fill
-} def
-
-% filledcircle: show a filled circle
-% - filledcircle -
-/filledcircle { xcurr ycurr trpoint symbolsize symbollinewidth dofilledcircle } def
-
-% dotriangle: show an open triangle with a given symbolsize and symbollinewidth
-% NB symbolsize is reduced by half the line width to get size exactly right
-% <x> <y> <symbolsize> <symbollinewidth> dotriangle -
-/dotriangle
-{
- dup setlinewidth
- 0.5 mul sub 0 max /ss exch def
- newpath
- moveto
- 0 ss 1.5 mul rmoveto
- ss neg ss -2.5 mul rlineto
- ss 2 mul 0 rlineto
- closepath [] 0 setdash stroke
-} def
-
-% triangle: show an open triangle
-% - triangle -
-/triangle { xcurr ycurr trpoint symbolsize symbollinewidth dotriangle } def
-
-% dofilledtriangle: show filled triangle with symbolsize and symbollinewidth
-% NB symbollinewidth is not used
-% <x> <y> <symbolsize> <symbollinewidth> dofilledtriangle -
-/dofilledtriangle
-{
- pop /ss exch def
- newpath
- moveto
- 0 ss 1.5 mul rmoveto
- ss neg ss -2.5 mul rlineto
- ss 2 mul 0 rlineto
- closepath fill
-} def
-
-% filledtriangle: show a filled triangle
-% - filledtriangle -
-/filledtriangle { symbolsize symbollinewidth dofilledtriangle } def
-
-
-%plog: like log only with a base, and protected from failing if <= 0
-% base x plog res
-/plog { dup 0 le { pop pop 0 } { ln exch ln div } ifelse } def
-
-% xtr: transform one x value logarithmically if xlog > 1
-% <num> xtr <num>
-/xtr
-{ xlog 1 gt
- { xlog exch plog
- } if
-} def
-
-% ytr: transform one y value logarithmically if ylog > 1
-% <num> ytr <num>
-/ytr
-{ ylog 1 gt
- { ylog exch plog
- } if
-} def
-
-
-% trpoint: transform (x, y) in graph space into (x', y') in print space
-% x y trpoint x' y'
-/trpoint
-{ exch xtr xdecr { trxmax exch sub } { trxmin sub } ifelse
- trxmax trxmin sub div xwidth mul xextra add
-
- exch ytr ydecr { trymax exch sub } { trymin sub } ifelse
- trymax trymin sub div ywidth mul yextra add
-} def
-
-
-% yonly: interpolate x values 1, 2, ... into data
-% [ data ] yonly [ newdata ]
-/yonly
-{ dup /tmp exch def
- length [ exch 1 exch 1 exch
- { dup tmp exch 1 sub get
- } for
- ]
-} def
-
-% xonly: interpolate y values 1, 2, ... into data
-% [ data ] yonly [ newdata ]
-/xonly
-{ dup /tmp exch def
- length [ exch 1 exch 1 exch
- { dup tmp exch 1 sub get exch
- } for
- ]
-} def
-
-% xandy: no interpolation of x or y values
-% [ data ] xandy [ data ]
-/xandy {} def
-
-% swapxandy: swap x and y values
-% [ data ] swapxandy [ data ]
-/swapxandy
-{ dup /tmp exch def
- length [ exch 2 exch 2 exch
- { dup tmp exch 1 sub get exch 2 sub tmp exch get
- } for
- ]
-} def
-
-
-% expstringwidth: calculate width of string containing optional exponent
-% <string> expstringwidth <width>
-/expstringwidth
-{ (^) search
- { exch pop stringwidth pop exch stringwidth pop 0.7 mul add }
- { stringwidth pop }
- ifelse
-} def
-
-% expstringshow: show string containing optional exponent
-% <string> expstringshow -
-/expstringshow
-{ (^) search
- { exch pop show 0 0.5 ft rmoveto
- gsave currentfont 0.7 scalefont setfont show grestore
- }
- { show
- }
- ifelse
-} def
-
-% concatenate two strings: <string> <string> strconcat <string>
-/strconcat
-{ 2 copy length exch length add string
- dup 0 4 index putinterval
- dup 3 index length 3 index putinterval
- 3 1 roll pop pop
-} def
-
-% lgen: generate one label automatically
-% num lgen num string
-/lgen { dup 20 string cvs } def
-
-% loglgen: generate one logarithmic label (with exponent)
-% <base> <exponent> loglgen <string>
-/loglgen
-{ 20 string cvs exch 20 string cvs
- (^) strconcat exch strconcat
-} def
-
-
-% printxtick: print one x tick
-% xpos printxtick -
-/printxtick
-{ newpath
- yleft trpoint moveto 0 yextra neg rmoveto
- 0 xticklength neg rlineto [] 0 setdash stroke
-} def
-
-% printxgrid: print one x grid line
-% xpos printxgrid -
-/printxgrid
-{ dup newpath
- yleft trpoint moveto 0 yextra neg rmoveto
- yright trpoint lineto 0 yextra rlineto [] 0 setdash stroke
-} def
-
-% printxlabel: print one x label
-% (xlabel) xpos printxlabel -
-/printxlabel
-{ yleft trpoint moveto 0 yextra neg rmoveto
- 0 xticklength neg rmoveto 0 0.9 ft neg rmoveto
- xlog 1 gt { 0 0.3 ft neg rmoveto } if
- dup expstringwidth -2 div 0 rmoveto expstringshow
-} def
-
-% printytick: print one y tick
-% ypos printytick -
-/printytick
-{ newpath
- xleft exch trpoint moveto xextra neg 0 rmoveto
- yticklength neg 0 rlineto [] 0 setdash stroke
-} def
-
-% printygrid: print one y grid line
-% ypos printygrid -
-/printygrid
-{ dup newpath
- xleft exch trpoint moveto xextra neg 0 rmoveto
- xright exch trpoint lineto xextra 0 rlineto [] 0 setdash stroke
-} def
-
-% printylabel: print one y label
-% (ylabel) ypos printylabel -
-/printylabel
-{ xleft exch trpoint moveto xextra neg 0 rmoveto
- yticklength neg 0 rmoveto -0.3 ft -0.3 ft rmoveto
- dup expstringwidth neg 0 rmoveto expstringshow
-} def
-
-% printrtick: print one r tick
-% ypos printrtick -
-/printrtick
-{ newpath
- xright exch trpoint moveto xextra 0 rmoveto
- rticklength 0 rlineto [] 0 setdash stroke
-} def
-
-% printrlabel: print one r label
-% (rlabel) ypos printrlabel -
-/printrlabel
-{ xright exch trpoint moveto xextra 0 rmoveto
- rticklength 0 rmoveto 0.3 ft -0.3 ft rmoveto
- expstringshow
-} def
-
-% printticks: print ticks and labels
-% /tickproc /labelproc [ tickandlabeldata ] min printticks -
-/printticks
-{ /prev exch def
- { dup type dup dup /integertype eq exch /realtype eq or
- { pop dup /prev exch def 2 index cvx exec
- }
- { /stringtype eq
- { prev 2 index cvx exec
- }
- { pop
- } ifelse
- } ifelse
- } forall
- pop pop
-} def
-
-
-% printxaxistick: print one x axis tick
-% xpos printxaxistick -
-/printxaxistick
-{ newpath
- yaxis trpoint moveto 0 xticklength -2 div rmoveto
- 0 xticklength rlineto [] 0 setdash stroke
-} def
-
-% printxaxislabel: print one x axis label
-% (xlabel) xpos printxaxislabel -
-/printxaxislabel
-{ yaxis trpoint moveto
- 0 xticklength -2 div rmoveto 0 0.9 ft neg rmoveto
- xlog 1 gt { 0 0.3 ft neg rmoveto } if
- dup expstringwidth -2 div 0 rmoveto expstringshow
-} def
-
-% printyaxistick: print one y axis tick
-% ypos printyaxistick -
-/printyaxistick
-{ newpath
- xaxis exch trpoint moveto
- yticklength -2 div 0 rmoveto
- yticklength 0 rlineto [] 0 setdash stroke
-} def
-
-% printyaxislabel: print one y axis label
-% (ylabel) ypos printyaxislabel -
-/printyaxislabel
-{ xaxis exch trpoint moveto
- yticklength -2 div 0 rmoveto -0.3 ft -0.3 ft rmoveto
- dup expstringwidth neg 0 rmoveto expstringshow
-} def
-
-
-% <val> minmax -
-% perform minv := min(minv, val); maxv := max(maxv, val)
-% allowing for the possibility of minv, maxv, val being false (undefined)
-/minmax
-{ dup false eq
- { pop }
- { minv false eq
- { dup /minv exch def /maxv exch def }
- { dup minv lt
- { /minv exch def }
- { dup maxv gt
- { /maxv exch def }
- { pop }
- ifelse
- } ifelse
- } ifelse
- } ifelse
-} def
-
-% <ticks> ticksundef <ticks> <bool>
-% returns true iff the ticks array is undefined (one false entry)
-/ticksundef
-{ dup length 1 eq
- { dup 0 get false eq
- }
- { false }
- ifelse
-} def
-
-% <number> integral <boolean>
-% true if the number has an integral value
-/integral { dup round eq } def
-
-% ticksep ticks xory alldata minval maxval axis base ticksandlimits ticks min max base
-% ticksandlimits: sort out value of x or y ticks and limits and log base
-/ticksandlimits
-{ /base exch def
- /minv false def
- /maxv false def
-
- % min and max of user-supplied minval, maxval, and axis
- minmax minmax minmax
-
- % min and max of data points
- { 0 get dup dup length 1 sub 3 index exch 2 exch
- { get minmax dup
- } for pop pop
- } forall
- pop dup
-
- % min and max of tick values
- { dup type /stringtype eq
- { pop } { minmax } ifelse
- } forall
-
- % fix minv and maxv if undefined (false) or equal
- minv false eq
- { /minv -1 def /maxv 1 def }
- { minv maxv eq
- { minv 0 lt
- { /minv 2 minv mul def /maxv 0 def
- }
- { minv 0 eq
- { /minv -1 def /maxv 1 def
- }
- { /minv 0 def /maxv 2 maxv mul def
- } ifelse
- } ifelse
- } if
- } ifelse
-
- % invent ticks if undefined
- ticksundef
- { pop /ticksep exch def
-
- % if base is reasonable and minv is positive, logarithmic ticks
- base 1 gt minv 0 gt and
- {
- % get integral log of minv and maxv
- /logminv base minv plog floor cvi def
- /logmaxv base maxv plog ceiling cvi def
-
- % if minv close to base, make it 1; reset minv and maxv
- logminv 1 eq logmaxv 4 ge and { /logminv 0 def } if
- /minv base logminv exp def
- /maxv base logmaxv exp def
-
- % ticks := [ base**logminv, ... , base**logmaxv ]
- [ logminv 1 logmaxv
- { dup base exch exp
- exch base exch loglgen
- } for
- ]
- }
- { % non-logarithmic ticks
- {
- % fix tick separation if undefined (0) or too small
- /base 0 def
- /delta maxv minv sub def
- ticksep delta 30 div le
- { /ticksep 10 delta log 1 sub ceiling exp def
- ticksep delta 2 div ge
- { /ticksep ticksep 2 div def }
- { ticksep delta 5 div lt
- { /ticksep 2 ticksep mul def
- } if
- } ifelse
- } if
-
- % adjust minv and maxv to be multiples of ticksep
- /minv minv ticksep div floor ticksep mul def
- /maxv maxv ticksep div ceiling ticksep mul def
- /delta maxv minv sub def
-
- % if minv or maxv near zero, move to zero and redo
- minv ticksep eq
- { /minv 0 def }
- { maxv ticksep neg eq { /maxv 0 def } { exit } ifelse
- } ifelse
- } loop
-
- % if minv, maxv, and ticksep are all integral, set "makeint" to true
- /makeint minv integral maxv integral ticksep integral and and def
-
- % ticks := [ minv, minv+ticksep, ... , maxv ]
- [ 0 1 delta ticksep div round
- { ticksep mul minv add makeint { cvi } if lgen }
- for
- ]
- } ifelse
- }
- { exch pop
- } ifelse
- minv maxv base
-} def
-
-% xset: set up all data for x axis, including limits and ticks
-% xticksep xticks 0 alldata xmin xmax xlog xextra xdecr xaxis xticklength xset -
-/xset
-{ /xticklength exch def
- /xaxis exch def
- /xdecr exch def
- /xextra exch def
- xaxis exch ticksandlimits
- /xlog exch def /xmax exch def /xmin exch def /xticks exch def
- /xleft xdecr { xmax } { xmin } ifelse def
- /xright xdecr { xmin } { xmax } ifelse def
- /xwidth xsize xextra 2 mul sub def
- /trxmin xmin xtr def /trxmax xmax xtr def
-} def
-
-% yset: set up all data for y axis, including limits and yticks
-% yticksep yticks 0 alldata ymin ymax ylog yextra ydecr yaxis yticklength yset -
-/yset
-{ /yticklength exch def
- /yaxis exch def
- /ydecr exch def
- /yextra exch def
- yaxis exch ticksandlimits
- /ylog exch def /ymax exch def /ymin exch def /yticks exch def
- /yleft ydecr { ymax } { ymin } ifelse def
- /yright ydecr { ymin } { ymax } ifelse def
- /ywidth ysize yextra 2 mul sub def
- /trymin ymin ytr def /trymax ymax ytr def
-} def
-
-% rset: set up all data for y axis (again), but including limits and rticks
-% rticksep rticks 0 alldata ymin ymax ylog yextra ydecr yaxis rticklength rset -
-/rset
-{ /rticklength exch def
- /yaxis exch def
- /ydecr exch def
- /yextra exch def
- yaxis exch ticksandlimits
- /ylog exch def /ymax exch def /ymin exch def /rticks exch def
- /yleft ydecr { ymax } { ymin } ifelse def
- /yright ydecr { ymin } { ymax } ifelse def
- /ywidth ysize yextra 2 mul sub def
- /trymin ymin ytr def /trymax ymax ytr def
-} def
-
-% norset: set up data for no rticks
-% - norset -
-/norset
-{ /rticklength 0 def
- /rticks [] def
-} def
-
-% framestyle: print a frame around the graph
-/framestyle
-{ 0 0 moveto xsize 0 lineto xsize ysize lineto
- 0 ysize lineto closepath stroke
- /printxtick /printxlabel xticks xleft printticks
- /printytick /printylabel yticks ymin printticks
- /printrtick /printrlabel rticks ymin printticks
-} def
-
-% gridstyle: print a frame around the graph, plus a grid
-/gridstyle
-{ 0 0 moveto xsize 0 lineto xsize ysize lineto
- 0 ysize lineto closepath stroke
- /printxgrid /printxlabel xticks xleft printticks
- /printygrid /printylabel yticks ymin printticks
- /printrtick /printrlabel rticks ymin printticks
-} def
-
-% nonestyle: print nothing around the graph
-/nonestyle
-{
-} def
-
-% axesstyle: print axes for the graph (unless axis values missing)
-/axesstyle
-{
- xaxis false eq yaxis false eq or
- { framestyle }
- { xaxis yaxis trpoint dup 0 exch moveto xsize exch lineto
- dup 0 moveto ysize lineto stroke
- /printxaxistick /printxaxislabel xticks xleft printticks
- /printyaxistick /printyaxislabel yticks ymin printticks
- } ifelse
-} def
-
-% rundata: run all data sets
-/rundata
-{ alldata
- { gsave
- dup dup dup dup dup
- 5 get /texture exch def
- 4 get /dopaint exch def
- 3 get /initrun exch def
- 2 get /pairs exch def
- 1 get /points exch def
- 0 get /data exch def
- dopaint
- { data length 4 ge
- {
- gsave
- initrun
- newpath
- data 0 get ymin trpoint yextra sub moveto
- 0 2 data length 2 sub
- { dup 1 add
- data exch get /ycurr exch def
- data exch get /xcurr exch def
- xcurr ycurr trpoint lineto
- } for
- data dup length 2 sub get ymin trpoint yextra sub lineto
- closepath texture fill
- grestore
- } if
- } if
- initrun
- data length 2 ge
- {
- /xcurr data 0 get def
- /ycurr data 1 get def
- points
- data length 4 ge
- { 2 2 data length 2 sub
- { /xprev xcurr def
- /yprev ycurr def
- dup dup 2 eq /firstpair exch def
- data length 2 sub eq /lastpair exch def
- dup 1 add
- data exch get /ycurr exch def
- data exch get /xcurr exch def
- pairs
- points
- } for
- } if
- } if
- grestore
- } forall
-} def
-
-end
-%%EndResource
diff --git a/include/include/haskell b/include/include/haskell
deleted file mode 100644
index de5e589..0000000
--- a/include/include/haskell
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Haskell program printing #
-# #
-# Version 1.0 #
-# Thorsten Seitz #
-# 17 December 2001 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { haskellf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @HaskellSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { symbol @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/haskellf b/include/include/haskellf
deleted file mode 100644
index f2b9130..0000000
--- a/include/include/haskellf
+++ /dev/null
@@ -1,527 +0,0 @@
-
-###############################################################################
-# #
-# Lout @HaskellSetup package for formatting Haskell programs #
-# #
-# Version 1.0 #
-# Thorsten Seitz #
-# 17 December 2001 #
-# #
-# Version 1.1 (bug fixes) #
-# Gabor Greif #
-# 29 June 2007 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Haskell
-def @HaskellSetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { symbol @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 4 } # tab interval
- named fixedtabout { 4s } # tab width
-
- named fixedbraces { Base } # braces face
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedleftbracesformat right @Body { @Body } # left braces format
- named fixedrightbracesformat right @Body { @Body } # right braces format
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 4 } # tab interval
- named varyingtabout { 1.5f } # tab width
-
- named varyingbraces { Base } # braces face
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingleftbracesformat right @Body { @Body } # left braces format
- named varyingrightbracesformat right @Body { @Body } # right braces format
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 4 } # tab interval
- named symboltabout { 1.7f } # tab width
-
- named symbolbraces { Base } # braces face
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Slope } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { 0.3s @Space {"" @Body} } # identifier format (with italic correction)
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { 0.5s @Space {"" @Body ""}} # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PCL @PL @PA @PM @PD
- @PLAMBDA @PCIRC @PPLUSPLUS @PCOLON @PDOUBLECOLON
-
- @A "$>"
-
- def @Haskell
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named braces { dft } # braces font
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lHaskell" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lHaskell" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
- # deleted by JeffK here and in prg2lout.c, who could not see the point
- #def @APO
- # left sym
- # right x
- #{
- # @PO sym @A x
- #}
-
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PCnoDelim
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @Symb right x { { Symbol Base } @Font @Char x }
-
-
- def @PC # for formatting comments
- right x
- {
- @PCnoDelim { "{"{@Symb minus}x{@Symb minus}"}" }
- }
-
-
- def @PCL # for formatting line comments
- right x
- {
- @PCnoDelim { {@Symb minus} &0.5s {@Symb minus}{x} }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { @Symb asteriskmath }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "." &"0.05f" }
- }
- }
-
-
- def @PLAMBDA
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char lambda |0.5s }
- else @Yield { x }
- }
- }
-
- def @PCIRC
- right x
- {
- style @Case {
- symbol @Yield { @PO {/0.3fo 0i @Space {"" @Symb degree } } }
- else @Yield { @PO x }
- }
- }
-
- def @PPLUSPLUS
- right x
- {
- style @Case {
- symbol @Yield { @PO {@Symb plus |0.3fo @Symb plus} }
- else @Yield { @PO x }
- }
- }
-
- def @PCOLON
- {
- @PO ":"
- }
-
- def @PDOUBLECOLON
- right x
- {
- style @Case {
- symbol @Yield { @PO {: |0.8s :} }
- else @Yield { @PO x }
- }
- }
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Haskell
-
-@End @HaskellSetup
diff --git a/include/include/init b/include/include/init
deleted file mode 100644
index 3ca62df..0000000
--- a/include/include/init
+++ /dev/null
@@ -1,37 +0,0 @@
-
-###############################################################################
-# #
-# init #
-# #
-# Lout file for initializing run. #
-# #
-# Jeffrey H. Kingston #
-# 21 September 1994 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-@SysInclude { langdefs } # language definitions
-@SysInclude { bsf } # BasicSetup package
-@SysInclude { dsf } # DocumentSetup package
- # including standard.ld
-def @TeX
-{
- @OneCol { T &0.4fo {-0.2f @VShift E} &0.45fo X }
-}
-
-def @LaTeX
-{
- @OneCol { L &0.3fo { +0.1f @VShift 0.8f @Font A } &0.4fo @TeX }
-}
-
-@Use { @BasicSetup }
-@Use { @DocumentSetup }
-
-@SysDatabase @Reference { loutrefs } # references about Lout
-@SysDatabase @Reference { oldrefs } # old references about Lout
-@SysDatabase @RefStyle { refstyle } # reference printing styles
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @FontDef { latin2 } # more font definitions
diff --git a/include/include/java b/include/include/java
deleted file mode 100644
index 5a8849c..0000000
--- a/include/include/java
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Java program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 6 April 2001 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { javaf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @JavaSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/javaf b/include/include/javaf
deleted file mode 100644
index cd4f944..0000000
--- a/include/include/javaf
+++ /dev/null
@@ -1,446 +0,0 @@
-
-###############################################################################
-# #
-# Lout @JavaSetup package for formatting Java programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 6 April 2001 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Java
-def @JavaSetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @Java
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lJava" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lJava" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Java
-
-@End @JavaSetup
diff --git a/include/include/langdefs b/include/include/langdefs
deleted file mode 100644
index 4d6e11a..0000000
--- a/include/include/langdefs
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# #
-# Language definitions #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-langdef Croatian Hrvatski hr { croatian . : ! ? .) ?) !) .' !' ?' }
-langdef Czech Cesky Cestina cs { czech . : ! ? .) ?) !) .' !' ?' }
-langdef Danish Dansk da { danish . : ! ? .) ?) !) .' !' ?' }
-langdef Dutch Nederlands nl { dutch . : ! ? .) ?) !) .' !' ?' }
-langdef English en { english . : ! ? .) ?) !) .' !' ?' }
-langdef EnglishUK "en-GB" { engluk . : ! ? .) ?) !) .' !' ?' }
-langdef Esperanto eo { esperanto . : ! ? .) ?) !) .' !' ?' }
-langdef Finnish Suomi fi { finnish }
-langdef French Francais "Fran\347ais" fr { french }
-langdef German Deutsch de { german }
-langdef Hungarian Magyar hu { magyar . : ! ? .) ?) !) .' !' ?' }
-langdef Italian Italiano it { italian }
-langdef Norwegian Norsk no { norweg . : ! ? .) ?) !) .' !' ?' }
-langdef Polish Polski pl { polish . : ! ? .) ?) !) .' !' ?' }
-langdef Portuguese "Português" pt { portugal . : ! ? .) ?) !) .' !' ?' }
-langdef Programming pr { programming }
-langdef Russian "\362\325\323\323\313\311\312" ru { russian . : ! ? .) ?) !) .' !' ?' }
-langdef Slovak Slovensky Slovencina sk { slovak . : ! ? .) ?) !) .' !' ?' }
-langdef Slovenian Slovenia Slovenija sl { slovenia . : ! ? .) ?) !) .' !' ?' }
-langdef Spanish "Espa\361ol" es { spanish }
-langdef Swedish Svenska sv { swedish . : ! ? .) ?) !) .' !' ?' }
-langdef UpperSorbian hornjoserbsce serbsce wen { uppersorbian . : ! ? .) ?) !) .' !' ?' }
diff --git a/include/include/latin2 b/include/include/latin2
deleted file mode 100644
index 29883f2..0000000
--- a/include/include/latin2
+++ /dev/null
@@ -1,9 +0,0 @@
-#################################################################
-# #
-# latin2 #
-# #
-# This file includes everything you need for Latin2. #
-# #
-#################################################################
-
-@SysDatabase @FontDef { latin2 }
diff --git a/include/include/lengths b/include/include/lengths
deleted file mode 100644
index 3d698de..0000000
--- a/include/include/lengths
+++ /dev/null
@@ -1,167 +0,0 @@
-
-###########################################################################
-# #
-# lengths #
-# #
-# Jeffrey H. Kingston #
-# 30 October 2002 #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-# This file offers two symbols for converting between PostScript #
-# lengths and Lout lengths. This has been a messy area and the two #
-# symbols in this file, @LoutLengths and @PSLengths, are my attempt #
-# to put a final end to the mess. #
-# #
-# A Lout length is, and has always been, a number followed by #
-# a one-letter unit of measurement: i c p m s v f d. #
-# #
-# A PostScript length is, and has always been, a number followed #
-# by a space followed by a two-letter unit of measurement, one of #
-# in cm pt em sp vs ft dg. #
-# #
-# To the ordinary user who reads the User's Guide, all lengths #
-# now look like Lout lengths. However, internally some of these #
-# lengths are used by Lout and others are passed to PostScript. #
-# Based on the two symbols @PSLengths and @LoutLengths defined #
-# below, an option x which could contain a length of either kind #
-# can be classified as one of three types: #
-# #
-# Type of option How to handle it #
-# ------------------------------------------------------------------- #
-# Option was never advertised named x { ... } #
-# as taking a PostScript length #
-# #
-# Option was advertised as import @LoutLengths named x { ... } #
-# possibly taking a PostScript #
-# length, but its value is used #
-# by Lout #
-# #
-# Option whose value has to be import @PSLengths named x { ... } #
-# passed to PostScript #
-# ------------------------------------------------------------------- #
-# #
-# Either kind of import allows either kind of length to be given; #
-# @LoutLengths makes sure the final result is suitable for passing #
-# to Lout, while @PSLengths makes sure the final result is suitable #
-# for passing to PostScript. If things had been done right from the #
-# start, there would be no need for @LoutLengths, but for backward #
-# compatibility we will continue to use it basically forever. #
-# #
-###########################################################################
-
-
-###########################################################################
-# #
-# @LoutLengths #
-# #
-# Convert PostScript lengths into Lout lengths. #
-# #
-###########################################################################
-
-export in cm pt em sp vs ft dg
-def @LoutLengths
-{
- def in left x { x"i" }
- def cm left x { x"c" }
- def pt left x { x"p" }
- def em left x { x"m" }
- def sp left x { x"s" }
- def vs left x { x"b" }
- def ft left x { x"f" }
- def dg left x { x"d" }
-}
-
-
-###########################################################################
-# #
-# @PSLengths #
-# #
-# Convert Lout lengths into PostScript (also PDF) lengths. #
-# PDF is no longer supported but this code was there already so #
-# it's been carried over. #
-# #
-###########################################################################
-
-export i c p m s v f d
-def @PSLengths
-{
- def i left x {
- @BackEnd @Case {
- PostScript @Yield { x" in" }
- PDF @Yield { "__mul(__in, "x")" }
- PlainText @Yield ""
- }
- }
-
- def c left x {
- @BackEnd @Case {
- PostScript @Yield { x" cm" }
- PDF @Yield { "__mul(__cm, "x")" }
- PlainText @Yield ""
- }
- }
-
- def p left x {
- @BackEnd @Case {
- PostScript @Yield { x" pt" }
- PDF @Yield { "__mul(__pt, "x")" }
- PlainText @Yield ""
- }
- }
-
- def m left x {
- @BackEnd @Case {
- PostScript @Yield { x" em" }
- PDF @Yield { "__mul(__em, "x")" }
- PlainText @Yield ""
- }
- }
-
- def s left x {
- @BackEnd @Case {
- PostScript @Yield { x" sp" }
- PDF @Yield { "__mul(__louts, "x")" }
- PlainText @Yield ""
- }
- }
-
- def v left x {
- @BackEnd @Case {
- PostScript @Yield { x" vs" }
- PDF @Yield { "__mul(__loutv, "x")" }
- PlainText @Yield ""
- }
- }
-
- def f left x {
- @BackEnd @Case {
- PostScript @Yield { x" ft" }
- PDF @Yield { "__mul(__loutf, "x")" }
- PlainText @Yield ""
- }
- }
-
- def d left x {
- @BackEnd @Case {
- PostScript @Yield { x" dg" }
- PDF @Yield { "__mul(__loutd, "x")" }
- PlainText @Yield ""
- }
- }
-}
diff --git a/include/include/math b/include/include/math
deleted file mode 100644
index 345db84..0000000
--- a/include/include/math
+++ /dev/null
@@ -1,32 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for equation formatting, based on `eq'. #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# Ludovic Courtès #
-# June 2007 #
-# #
-# This file has been placed in the public domain by its authors. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { mathf } line #
-# #
-# This line causes Lout to read the definitions for equations, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { mathf }
-
-
-###############################################################################
-# #
-# This package does not offer default options that can be changed. #
-# #
-###############################################################################
diff --git a/include/include/mathf b/include/include/mathf
deleted file mode 100644
index 523504a..0000000
--- a/include/include/mathf
+++ /dev/null
@@ -1,2944 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Math package for formatting mathematics #
-# #
-# @Math is based on the earlier @Eq package. @Eq revision history: #
-# #
-# Version 1.0 by Jeffrey H. Kingston, December 1990. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Version 3.0 by Jeffrey H. Kingston and Robert Marsa, March 1996. #
-# #
-# @Math revision history: #
-# #
-# Version 4.0 by Ludovic Courtès, June 2007. #
-# Version 5.0 by Jeffrey H. Kingston, September 2008. #
-# #
-# Acknowledgement: @Eq and @Math are based closely on the Eqn language #
-# of B. W. Kernighan and L. L. Cherry; the spacing rules are similar to #
-# those of the TeX system by D. E. Knuth. #
-# #
-# Version 4.0 makes use of `@SetContext' and `@GetContext' (introduced in #
-# Lout 3.34) to better honor the typesetting conventions outlined by Knuth. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export
-
- # Helper symbols
- above below wideabove widebelow
- "`" "``" "```" non big small vctr
- @SuperScriptStyle @SubScriptStyle @NumeratorStyle
- @DenominatorStyle @SquareRootStyle
-
- # Ordinary symbols (Symbol font)
- space exclam universal numbersign existential percent
- ampersand suchthat parenleft parenright asteriskmath
- plus comma minus period slash zero one two three four
- five six seven eight nine colon semicolon less equal
- greater question congruent Alpha Beta Chi Delta Epsilon
- Phi Gamma Eta Iota thetaone Kappa Lambda Mu Nu Omicron
- Pi Theta Rho Sigma Tau Upsilon sigmaone Omega Xi Psi Zeta
- bracketleft therefore bracketright perpendicular underscore
- radicalex alpha beta chi delta epsilon phi gamma eta iota
- phione kappa lambda mu nu omicron pi theta rho sigma tau
- upsilon omegaone omega xi psi zeta braceleft bar braceright
- similar Upsilonone minute lessequal fraction infinity florin
- club diamond heart spade arrowboth arrowleft arrowup
- arrowright arrowdown degree plusminus second greaterequal
- multiply proportional partialdiff bullet divide notequal
- equivalence approxequal ellipsis arrowvertex arrowhorizex
- carriagereturn aleph Ifraktur Rfraktur weierstrass
- circlemultiply circleplus emptyset intersection union
- propersuperset reflexsuperset notsubset propersubset
- reflexsubset element notelement angle gradient registerserif
- copyrightserif trademarkserif product radical dotmath
- logicalnot logicaland logicalor arrowdblboth arrowdblleft
- arrowdblup arrowdblright arrowdbldown lozenge angleleft
- registersans copyrightsans trademarksans summation parenlefttp
- parenleftex parenleftbt bracketlefttp bracketleftex
- bracketleftbt bracelefttp braceleftmid braceleftbt braceex
- angleright integral integraltp integralex integralbt
- parenrighttp parenrightex parenrightbt bracketrighttp
- bracketrightex bracketrightbt bracerighttp bracerightmid
- bracerightbt
-
- # Ordinary symbols (arrows)
- leftarrow longleftarrow dblleftarrow dbllongleftarrow
- rightarrow longrightarrow dblrightarrow dbllongrightarrow
- leftrightarrow longleftrightarrow dblleftrightarrow
- dbllongleftrightarrow mapsto longmapsto hookleftarrow
- hookrightarrow leadsto leftharpoonup rightharpoonup
- leftharpoondown rightharpoondown rightleftharpoons
- uparrow dbluparrow downarrow dbldownarrow updownarrow
- dblupdownarrow nearrow searrow swarrow nwarrow
-
- # Ordinary symbols (to get Roman font)
- arccos arcsin arctan arg cos cosh cot coth csc deg det dim exp
- gcd hom inf ker lg lim liminf limsup ln log max min Pr sec sin
- sinh supr tan tanh mod "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
- "!" "?" "%" "(" ")" "[" "]"
-
- # Ordinary symbols (for atleft and atright)
- lpar blpar rpar brpar lbrack blbrack rbrack brbrack lbrace blbrace
- rbrace brbrace lfloor blfloor rfloor brfloor lceil blceil
- rceil brceil langle blangle rangle brangle
-
- # Ordinary symbols (miscellaneous)
- hbar Re Im partial infty prime nabla surd top bot dbar triangle
- backslash forall exists neg circle filledcircle square ldots cdots
- vdots ddots del grad "..." ",...," "'" "''" "'''" "''''" empty
- triangleup triangledown half third
-
- # Variable-building symbols
- dot dotdot hat tilde vec dyad overbar underbar
- sup sub tsub supp on ton
-
- # Large operator symbols
- largeop sum prod coprod bcap bcup bvee bwedge bodot botimes
- boplus buplus int oint
-
- # Unary operator symbols
- sqrt root zroot
- matrix pmatrix bmatrix brmatrix fmatrix cmatrix amatrix
-
- # Binary operator symbols
- over frac
- bin "+" "-" "+-" "-+" setminus cdot times "*" circ div
- cap cup uplus sqcap sqcup triangleleft triangleright
- wr bigcirc bigtriangleup bigtriangledown vee wedge oplus ominus
- otimes oslash odot dagger daggerdbl amalg
-
- # Relation symbols
- rel "<" ">" "=" "<=" prec preceq "<<" subset subseteq sqsubseteq
- in vdash smile frown ">=" succ succeq ">>" supset supseteq
- sqsupseteq ni dashv mid parallel "==" "~" "-~" asymp "~~"
- "=~" bowtie propto models doteq trieq perp notsub notin "!="
- "<->" "<--" "-->" up down "<=>" "<==" "==>" dblup dbldown
- ":" "::" ":="
- # not
-
- # Punctuation symbols
- punct ";" "," col
-
-def @Math
- named symbolfont { Symbol Base }
- named basefont { Times Base }
- named initialstyle { "display" }
- named initiallycramped { "No" }
- named initialspace { separate 0.05f }
- body @Body
-@Begin
-
- ###################################################################
- # #
- # Operator Precedences (private) #
- # #
- # All @Math symbols with parameters have explicit precedences #
- # defined by invoking one of the following macros. Symbols #
- # that are typically used to build variables have high #
- # precedence (84-80), then come unary operators (70), then #
- # binary operators (66-60), then relations and the rest. #
- # See also http://en.wikipedia.org/wiki/Order_of_operations . #
- # #
- ###################################################################
-
- macro @MaxPrec { 100 }
- macro @HatPrec { 84 }
- macro @SubPrec { 82 }
- macro @SupPrec { 80 }
- macro @UnaryOpPrec { 70 }
- macro @BinaryOpTimesPrec { 64 }
- macro @BinaryOpDividePrec { 62 }
- macro @BinaryOpPrec { 60 }
- macro @RelationPrec { 50 }
- macro @PunctuationPrec { 40 }
- macro @HelperNonPrec { 26 }
- macro @HelperAbovePrec { 24 }
- macro @HelperColPrec { 22 }
- macro @HelperRowPrec { 20 }
-
-
- ###################################################################
- # #
- # Context-sensitive format changes (private) #
- # #
- # Equation formatting (according to Knuth) demands changes in #
- # the appearance of equations depending on context. Knuth #
- # distinguishes four major styles (the TeXbook, Ch. 17): #
- # #
- # display formulas displayed on lines by themselves #
- # text formulas embedded in the text #
- # script formulas used as superscripts or subscripts #
- # scriptscript second-order superscripts or subscripts #
- # #
- # Each style has its own font size and spacing rules. #
- # Additionally, each of these styles can be ``cramped'', #
- # meaning that exponents are not raised as much. To these #
- # four styles @Math adds a fifth: #
- # #
- # nohspace formulas enclosed in "non" #
- # #
- # which implements the "non" operator by causing all #
- # style-dependent horizontal space to be 0. #
- # #
- ###################################################################
-
- macro @CurrStyleVar { "EqCurrStyle" }
- macro @CrampedVar { "EqCramped?" }
-
- def @CurrStyle { @GetContext @CurrStyleVar }
- def @Cramped { @GetContext @CrampedVar }
-
- def @EqDebug
- {
- # Uncomment the following line to get debugging information.
- #{ { Helvetica Base 0.7f } @Font @CurrStyle } |0.2f
- @Null
- }
-
- def @WithStyle
- named style { "display" }
- named cramped { "No" }
- right x
- {
- def @NewFontSize
- {
- @CurrStyle @Case {
- "scriptscript" @Yield 1.0f # can't be smaller
- "script" @Yield {
- style @Case {
- "script" @Yield 1.0f
- else @Yield 0.8f } }
- "text" @Yield {
- style @Case {
- "text" @Yield 1.0f
- else @Yield 0.7f } }
- "display" @Yield {
- style @Case {
- # display and text styles yield the same font size
- { "display" "text" } @Yield 1.0f
- else @Yield 0.7f } }
- "nohspace" @Yield 1.0f
- }
- }
-
-
- #{ Helvetica Base 0.4f } @Font { @CurrStyle -> style } |0.2f
- @NewFontSize @Font
- { @CurrStyleVar @Yield style } @SetContext {
- { @CrampedVar @Yield cramped } @SetContext {
- # FIXME: Space is not properly inherited, hence this
- # `@Space' invocation.
- { initialspace @Space x }
- }
- }
- }
-
- def @CurrSuperScriptGap
- {
- @Cramped @Case {
- "Yes" @Yield 0.23fk
- "No" @Yield 0.35fk
- }
- }
-
- def @SubScriptGap { 0.35fk }
-
- # Space around relational operators.
- def @CurrRelSpaceGap
- {
- @CurrStyle @Case {
- { "display" "text" } @Yield 0.300fe
- "nohspace" @Yield 0i
- else @Yield 0.030ce
- }
- }
-
- # Space around binary operators.
- def @CurrBinarySpaceGap
- {
- @CurrStyle @Case {
- { "display" "text" } @Yield 0.240fe
- "nohspace" @Yield 0i
- else @Yield 0.024ce
- }
- }
-
- # Space around punctuation marks, including matrix braces.
- def @CurrPunctSpaceGap
- {
- @CurrStyle @Case {
- { "display" "text" } @Yield 0.180fe
- "nohspace" @Yield 0i
- else @Yield 0.018ce
- }
- }
-
- # Gap above/below math expressions (see, e.g., `to' and `from').
- def @AboveGap { 0.15f }
- def @BelowGap { 0.15f }
-
- def @SkewGap { 0.05f }
- def @ColGap { 0.8f }
- def @RowGap { 0.5f }
-
-
- ###################################################################
- # #
- # Miscellaneous helper definitions (private) #
- # #
- ###################################################################
-
- def @Base precedence @MaxPrec right x { basefont @Font x }
- def @Sym precedence @MaxPrec right x { symbolfont @Font x }
-
- def @HLine
- named line { @BackEnd @Case { PostScript @Yield { "0.05 ft setlinewidth" } PDF @Yield { "__mul(__loutf, 0.05) w" } } }
- {
- @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto xsize 0 lineto" line "stroke" } @Graphic {}
- }
- PDF @Yield { # note re-arrangement of commands (setlinewidth (='w') not allowed in a path)
- { line "0 0 m __xsize 0 l s" } @Graphic {}
- }
- }
- }
-
- def @VLine
- {
- @BackEnd @Case {
- PostScript @Yield {
- "0 0 moveto 0 ysize lineto 0.05 ft setlinewidth stroke" @Graphic {}
- }
- PDF @Yield {
- "__mul(__loutf, 0.05) w 0 0 m 0 __ysize l s" @Graphic {}
- }
- }
- }
-
- def @Strut
- precedence @MaxPrec
- right x
- {
- @OneCol { x | @OneRow { 0.5f @High ^/ 0.5f @High } }
- }
-
- def @OrDefault
- left l
- right r
- {
- l @Case {
- "dft" @Yield r
- else @Yield l
- }
- }
-
-
- ###################################################################
- # #
- # Helper symbols (public, exc @ScriptStyle and @FractionStyle) #
- # #
- ###################################################################
-
- def above
- precedence @HelperAbovePrec
- associativity left
- left x
- named gap { @BelowGap }
- named skew { 0c }
- right y
- {
- @HContract @VContract
- { |0.5rt x
- //gap |0.5rt &skew y
- }
- }
-
- def below
- precedence @HelperAbovePrec
- associativity left
- left x
- named gap { @AboveGap }
- named skew { 0c }
- right y
- {
- @HContract @VContract
- { |0.5rt &skew y
- ^//gap |0.5rt x
- }
- }
-
- def wideabove
- precedence @HelperAbovePrec
- associativity left
- left x
- named gap { @BelowGap }
- right y
- {
- @HContract @VContract
- {
- x //gap @HScale y
- }
- }
-
- def widebelow
- precedence @HelperAbovePrec
- associativity left
- left x
- named gap { @AboveGap }
- right y
- {
- @HContract @VContract
- {
- @HScale y ^//gap x
- }
- }
-
- def "`" { &@CurrPunctSpaceGap }
- def "``" { &@CurrBinarySpaceGap }
- def "```" { &@CurrRelSpaceGap }
-
- def non
- precedence @HelperNonPrec
- right x
- {
- { @CurrStyleVar @Yield "nohspace" } @SetContext x
- }
-
- def big
- precedence @MaxPrec
- right x
- {
- 1.3f @Font x
- }
-
- def small
- precedence @MaxPrec
- right x
- {
- 0.6f @Font x
- }
-
- def vctr
- precedence @MaxPrec
- right x
- {
- 0.5w @VShift x
- }
-
- def @ScriptStyle
- named level { "sup" }
- right script
- {
- @WithStyle
- style { @CurrStyle @Case {
- { "display" "text" } @Yield "script"
- { "script" "scriptscript" } @Yield "scriptscript"
- "nohspace" @Yield "nohspace"
- } }
- cramped { level @Case {
- "sub" @Yield "Yes"
- "sup" @Yield @Cramped
- } }
- { script }
- }
-
- def @SuperScriptStyle right superscript
- {
- @ScriptStyle level { "sup" } superscript
- }
-
- def @SubScriptStyle right subscript
- {
- @ScriptStyle level { "sub" } subscript
- }
-
- def @FractionStyle
- named level { "numerator" }
- right x
- {
- @WithStyle
- style { @CurrStyle @Case {
- "display" @Yield "text"
- "text" @Yield "script"
- { "script" "scriptscript" } @Yield "scriptscript"
- "nohspace" @Yield "nohspace"
- } }
- cramped { level @Case {
- "numerator" @Yield @Cramped
- "denominator" @Yield "Yes"
- } }
- { x }
- }
-
- def @NumeratorStyle right x
- {
- @FractionStyle level { "numerator" } x
- }
-
- def @DenominatorStyle right x
- {
- @FractionStyle level { "denominator" } x
- }
-
- def @SquareRootStyle right x
- {
- @WithStyle style { @CurrStyle } cramped { "Yes" } x
- }
-
- ###################################################################
- # #
- # Ordinary symbols (Symbol font) #
- # #
- # These symbols and their names are taken directly from the #
- # Adobe Systems Inc. Symbol font (see PostScript Language #
- # Reference Manual, pp. 256-257). The only differences are: #
- # #
- # Adobe: theta1 @Math: thetaone #
- # sigma1 sigmaone #
- # phi1 phione #
- # omega1 omegaone #
- # Upsilon1 Upsilonone #
- # #
- # These were needed since Lout identifiers do not have digits. #
- # #
- ###################################################################
-
- def space { @Sym @Char "space" }
- def exclam { @Sym @Char "exclam" }
- def universal { @Sym @Char "universal" }
- def numbersign { @Sym @Char "numbersign" }
- def existential { @Sym @Char "existential" }
- def percent { @Sym @Char "percent" }
- def ampersand { @Sym @Char "ampersand" }
- def suchthat { @Sym @Char "suchthat" }
- def parenleft { @Sym @Char "parenleft" }
- def parenright { @Sym @Char "parenright" }
- def asteriskmath { @Sym @Char "asteriskmath" }
- def plus { @Sym @Char "plus" }
- def comma { @Sym @Char "comma" }
- def minus { @Sym @Char "minus" }
- def period { @Sym @Char "period" }
- def slash { @Sym @Char "slash" }
- def zero { @Sym @Char "zero" }
- def one { @Sym @Char "one" }
- def two { @Sym @Char "two" }
- def three { @Sym @Char "three" }
- def four { @Sym @Char "four" }
- def five { @Sym @Char "five" }
- def six { @Sym @Char "six" }
- def seven { @Sym @Char "seven" }
- def eight { @Sym @Char "eight" }
- def nine { @Sym @Char "nine" }
- def colon { @Sym @Char "colon" }
- def semicolon { @Sym @Char "semicolon" }
- def less { @Sym @Char "less" }
- def equal { @Sym @Char "equal" }
- def greater { @Sym @Char "greater" }
- def question { @Sym @Char "question" }
- def congruent { @Sym @Char "congruent" }
- def Alpha { @Sym @Char "Alpha" }
- def Beta { @Sym @Char "Beta" }
- def Chi { @Sym @Char "Chi" }
- def Delta { @Sym @Char "Delta" }
- def Epsilon { @Sym @Char "Epsilon" }
- def Phi { @Sym @Char "Phi" }
- def Gamma { @Sym @Char "Gamma" }
- def Eta { @Sym @Char "Eta" }
- def Iota { @Sym @Char "Iota" }
- def thetaone { @Sym @Char "theta1" }
- def Kappa { @Sym @Char "Kappa" }
-
- def Lambda { @Sym @Char "Lambda" }
- def Mu { @Sym @Char "Mu" }
- def Nu { @Sym @Char "Nu" }
- def Omicron { @Sym @Char "Omicron" }
- def Pi { @Sym @Char "Pi" }
- def Theta { @Sym @Char "Theta" }
- def Rho { @Sym @Char "Rho" }
- def Sigma { @Sym @Char "Sigma" }
- def Tau { @Sym @Char "Tau" }
- def Upsilon { @Sym @Char "Upsilon" }
- def sigmaone { @Sym @Char "sigma1" }
- def Omega { @Sym @Char "Omega" }
- def Xi { @Sym @Char "Xi" }
- def Psi { @Sym @Char "Psi" }
- def Zeta { @Sym @Char "Zeta" }
- def bracketleft { @Sym @Char "bracketleft" }
- def therefore { @Sym @Char "therefore" }
- def bracketright { @Sym @Char "bracketright" }
- def perpendicular { @Sym @Char "perpendicular" }
- def underscore { @Sym @Char "underscore" }
- def radicalex { @Sym @Char "radicalex" }
- def alpha { @Sym @Char "alpha" }
- def beta { @Sym @Char "beta" }
- def chi { @Sym @Char "chi" }
- def delta { @Sym @Char "delta" }
- def epsilon { @Sym @Char "epsilon" }
- def phi { @Sym @Char "phi" }
- def gamma { @Sym @Char "gamma" }
- def eta { @Sym @Char "eta" }
- def iota { @Sym @Char "iota" }
- def phione { @Sym @Char "phi1" }
- def kappa { @Sym @Char "kappa" }
- def lambda { @Sym @Char "lambda" }
- def mu { @Sym @Char "mu" }
- def nu { @Sym @Char "nu" }
-
- def omicron { @Sym @Char "omicron" }
- def pi { @Sym @Char "pi" }
- def theta { @Sym @Char "theta" }
- def rho { @Sym @Char "rho" }
- def sigma { @Sym @Char "sigma" }
- def tau { @Sym @Char "tau" }
- def upsilon { @Sym @Char "upsilon" }
- def omegaone { @Sym @Char "omega1" }
- def omega { @Sym @Char "omega" }
- def xi { @Sym @Char "xi" }
- def psi { @Sym @Char "psi" }
- def zeta { @Sym @Char "zeta" }
- def braceleft { @Sym @Char "braceleft" }
- def bar { @Sym @Char "bar" }
- def braceright { @Sym @Char "braceright" }
- def similar { @Sym @Char "similar" }
- def Upsilonone { @Sym @Char "Upsilon1" }
- def minute { @Sym @Char "minute" }
- def lessequal { @Sym @Char "lessequal" }
- def fraction { @Sym @Char "fraction" }
- # For Adobe Symbol, `infinity' used to be "1.2f @Font { ... }"
- def infinity { @Sym @Char "infinity" }
- def florin { @Sym @Char "florin" }
- def club { @Sym @Char "club" }
- def diamond { @Sym @Char "diamond" }
- def heart { @Sym @Char "heart" }
- def spade { @Sym @Char "spade" }
- def arrowboth { @Sym @Char "arrowboth" }
- def arrowleft { @Sym @Char "arrowleft" }
- def arrowup { @Sym @Char "arrowup" }
- def arrowright { @Sym @Char "arrowright" }
- def arrowdown { @Sym @Char "arrowdown" }
- def degree { @Sym @Char "degree" }
- def plusminus { @Sym @Char "plusminus" }
- def second { @Sym @Char "second" }
- def greaterequal { @Sym @Char "greaterequal" }
-
- def multiply { @Sym @Char "multiply" }
- def proportional { @Sym @Char "proportional" }
- def partialdiff { @Sym @Char "partialdiff" }
- def bullet { @Sym @Char "bullet" }
- def divide { @Sym @Char "divide" }
- def notequal { @Sym @Char "notequal" }
- def equivalence { @Sym @Char "equivalence" }
- def approxequal { @Sym @Char "approxequal" }
- def ellipsis { @Sym @Char "ellipsis" }
- def arrowvertex { @Sym @Char "arrowvertex" }
- def arrowhorizex { @Sym @Char "arrowhorizex" }
- def carriagereturn { @Sym @Char "carriagereturn" }
- def aleph { @Sym @Char "aleph" }
- def Ifraktur { @Sym @Char "Ifraktur" }
- def Rfraktur { @Sym @Char "Rfraktur" }
- def weierstrass { @Sym @Char "weierstrass" }
- def circlemultiply { @Sym @Char "circlemultiply" }
- def circleplus { @Sym @Char "circleplus" }
- def emptyset { @Sym @Char "emptyset" }
- def intersection { @Sym @Char "intersection" }
- def union { @Sym @Char "union" }
- def propersuperset { @Sym @Char "propersuperset" }
- def reflexsuperset { @Sym @Char "reflexsuperset" }
- def notsubset { @Sym @Char "notsubset" }
- def propersubset { @Sym @Char "propersubset" }
- def reflexsubset { @Sym @Char "reflexsubset" }
- def element { @Sym @Char "element" }
- def notelement { @Sym @Char "notelement" }
- def angle { @Sym @Char "angle" }
- def gradient { @Sym @Char "gradient" }
- def registerserif { @Sym @Char "registerserif" }
- def copyrightserif { @Sym @Char "copyrightserif" }
- def trademarkserif { @Sym @Char "trademarkserif" }
- def product { @Sym @Char "product" }
- def radical { @Sym @Char "radical" }
- def dotmath { @Sym @Char "dotmath" }
- def logicalnot { @Sym @Char "logicalnot" }
- def logicaland { @Sym @Char "logicaland" }
- def logicalor { @Sym @Char "logicalor" }
- def arrowdblboth { @Sym @Char "arrowdblboth" }
- def arrowdblleft { @Sym @Char "arrowdblleft" }
- def arrowdblup { @Sym @Char "arrowdblup" }
- def arrowdblright { @Sym @Char "arrowdblright" }
- def arrowdbldown { @Sym @Char "arrowdbldown" }
- def lozenge { @Sym @Char "lozenge" }
- def angleleft { @Sym @Char "angleleft" }
- def registersans { @Sym @Char "registersans" }
- def copyrightsans { @Sym @Char "copyrightsans" }
- def trademarksans { @Sym @Char "trademarksans" }
- def summation { @Sym @Char "summation" }
- def parenlefttp { @Sym @Char "parenlefttp" }
- def parenleftex { @Sym @Char "parenleftex" }
- def parenleftbt { @Sym @Char "parenleftbt" }
- def bracketlefttp { @Sym @Char "bracketlefttp" }
- def bracketleftex { @Sym @Char "bracketleftex" }
- def bracketleftbt { @Sym @Char "bracketleftbt" }
- def bracelefttp { @Sym @Char "bracelefttp" }
- def braceleftmid { @Sym @Char "braceleftmid" }
- def braceleftbt { @Sym @Char "braceleftbt" }
- def braceex { @Sym @Char "braceex" }
- def angleright { @Sym @Char "angleright" }
- def integral { @Sym @Char "integral" }
- def integraltp { @Sym @Char "integraltp" }
- def integralex { @Sym @Char "integralex" }
- def integralbt { @Sym @Char "integralbt" }
- def parenrighttp { @Sym @Char "parenrighttp" }
- def parenrightex { @Sym @Char "parenrightex" }
- def parenrightbt { @Sym @Char "parenrightbt" }
- def bracketrighttp { @Sym @Char "bracketrighttp" }
- def bracketrightex { @Sym @Char "bracketrightex" }
- def bracketrightbt { @Sym @Char "bracketrightbt" }
- def bracerighttp { @Sym @Char "bracerighttp" }
- def bracerightmid { @Sym @Char "bracerightmid" }
- def bracerightbt { @Sym @Char "bracerightbt" }
-
-
- ###################################################################
- # #
- # Ordinary symbols (arrows) #
- # #
- ###################################################################
-
- def leftarrow { arrowleft }
- def longleftarrow { { 1.6 1 } @Scale arrowleft }
- def dblleftarrow { arrowdblleft }
- def dbllongleftarrow { { 1.6 1 } @Scale arrowdblleft }
- def rightarrow { arrowright }
- def longrightarrow { { 1.6 1 } @Scale arrowright }
- def dblrightarrow { arrowdblright }
- def dbllongrightarrow { { 1.6 1 } @Scale arrowdblright }
- def leftrightarrow { arrowboth }
- def longleftrightarrow { { 1.6 1 } @Scale arrowboth }
- def dblleftrightarrow { arrowdblboth }
- def dbllongleftrightarrow { { 1.6 1 } @Scale arrowdblboth }
-
- def mapsto
- {
- @HContract @VContract {
- @BackEnd @Case {
- PostScript @Yield {
- "0 ymark 0.16 ft sub moveto 0 ymark 0.16 ft add lineto stroke"
- @Graphic arrowright
- }
- PDF @Yield {
- "0 __sub(__ymark, __mul(__loutf, 0.16)) m 0 __add(__ymark, __mul(__loutf, 0.16)) l S"
- @Graphic arrowright
- }
- }
- }
- }
-
- def longmapsto
- {
- @HContract @VContract {
- @BackEnd @Case {
- PostScript @Yield {
- "0 ymark 0.16 ft sub moveto 0 ymark 0.16 ft add lineto stroke"
- @Graphic { { 1.6 1 } @Scale arrowright }
- }
- PDF @Yield {
- "0 __sub(__ymark, __mul(__loutf, 0.16)) m 0 __add(__ymark, __mul(__loutf, 0.16)) l S"
- @Graphic { { 1.6 1 } @Scale arrowright }
- }
- }
- }
- }
-
- def hookleftarrow
- {
- @HContract @VContract {
- @BackEnd @Case {
-
- PostScript @Yield {
- "xsize ymark moveto xsize ymark 0.1 ft add 0.1 ft -90 90 arc stroke"
- @Graphic leftarrow
- }
-
- PDF @Yield {
-#
-# VT: draws a counterclockwise 180 degree arc from -90 to +90 degree positions
-# (straight down to straight up) with centre = (xsize, ymark + 0.1 ft)
-# and radius = 0.1 ft
-#
-# the control points therefore are:
-# pt1 = (xsize + (4/3 * 0.1 ft), ymark) and pt2 = (xsize + (4/3 * 0.1 ft), ymark + 0.2 ft)
-#
- {
- "__xsize __ymark m" # pt0
- "__add(__xsize, __div(__mul(0.4, __loutf), 3)) __ymark" # pt1
- "__add(__xsize, __div(__mul(0.4, __loutf), 3)) __add(__ymark, __mul(0.2, __loutf))" # pt2
- "__xsize __add(__ymark, __mul(0.2, __loutf)) c S" # pt3
- }
- @Graphic leftarrow
- }
-
- }
- }
- }
-
- def hookrightarrow
- {
- @HContract @VContract {
- @BackEnd @Case {
-
- PostScript @Yield {
- "0 ymark moveto 0 0.1 ft ymark add 0.1 ft -90 90 arcn stroke"
- @Graphic rightarrow
- }
-
- PDF @Yield {
-#
-# VT: draws a clockwise 180 degree arc from -90 to +90 degree positions
-# (straight down to straight up) with centre = (0, ymark + 0.1 ft)
-# and radius = 0.1 ft
-#
-# the control points therefore are:
-# pt1 = (-4/3 * 0.1 ft, ymark) and pt2 = (-4/3 * 0.1 ft, ymark + 0.2 ft)
-#
- {
- "0 __ymark m" # pt0
- "__div(__mul(-0.4, __loutf), 3) __ymark" # pt1
- "__div(__mul(-0.4, __loutf), 3) __add(__ymark, __mul(0.2, __loutf))" # pt2
- "0 __add(__ymark, __mul(0.2, __loutf)) c S" # pt3
- }
- @Graphic rightarrow
- }
-
- }
- }
- }
-
- def @ClipToSize right x
- {
- @HContract @VContract
- @BackEnd @Case {
- PostScript @Yield {
- {
- "grestore newpath 0 0 moveto xsize 0 lineto xsize ysize lineto"
- "0 ysize lineto closepath clip gsave"
- } @Graphic x
- }
- PDF @Yield {
- "Q n 0 0 __xsize __ysize re W n q" @Graphic x
- }
- }
- }
-
- def @ClipAboveMark
- left amount
- right x
- {
- @ClipToSize { ^//{{amount}o} x }
- }
-
- def @ClipBelowMark
- left amount
- right x
- {
- @ClipToSize { x //{{amount}o} }
- }
-
- def leftharpoonup
- {
- 0.04f @ClipBelowMark leftarrow
- }
-
- def rightharpoonup
- {
- 0.04f @ClipBelowMark rightarrow
- }
-
- def leftharpoondown
- {
- 0.02f @ClipAboveMark leftarrow
- }
-
- def rightharpoondown
- {
- 0.02f @ClipAboveMark rightarrow
- }
-
- def rightleftharpoons
- {
- @HContract @VContract {
- rightharpoonup
- ^//0.1fo
- //0.1fo
- leftharpoondown
- }
- }
-
- def leadsto { @HContract { similar &0.4fo arrowright } }
-
- def uparrow { arrowup }
- def dbluparrow { arrowdblup }
- def downarrow { arrowdown }
- def dbldownarrow { arrowdbldown }
- def updownarrow { @HContract { arrowup &0io arrowdown } }
- def dblupdownarrow { @VContract { arrowdblup ^//0.2fo arrowdbldown } }
- def nearrow { 0.5w @VShift 0.5w @HShift 45d @Rotate arrowright }
- def searrow { 0.5w @VShift 0.5w @HShift 315d @Rotate arrowright }
- def swarrow { 0.5w @VShift 0.5w @HShift 225d @Rotate arrowright }
- def nwarrow { 0.5w @VShift 0.5w @HShift 135d @Rotate arrowright }
-
-
- ###################################################################
- # #
- # Ordinary symbols (to get Roman font) #
- # #
- # These symbols are defined to yield themselves, but in Roman #
- # font rather than the Italic that would otherwise be used. #
- # See Knuth p. 162 and 132. The definitions of "0" ... "9" #
- # should logically appear here, but they have been moved to #
- # the end since it is awkward to enter numeric lengths after #
- # they are defined. #
- # #
- ###################################################################
-
- def arccos { @Base "arccos" }
- def arcsin { @Base "arcsin" }
- def arctan { @Base "arctan" }
- def arg { @Base "arg" }
- def cos { @Base "cos" }
- def cosh { @Base "cosh" }
- def cot { @Base "cot" }
- def coth { @Base "coth" }
- def csc { @Base "csc" }
- def deg { @Base "deg" }
- def det { @Base "det" }
- def dim { @Base "dim" }
- def exp { @Base "exp" }
- def gcd { @Base "gcd" }
- def hom { @Base "hom" }
- def inf { @Base "inf" }
- def ker { @Base "ker" }
- def lg { @Base "lg" }
- def lim { @Base "lim" }
- def liminf { @OneCol { @Base "lim" ` @Base "inf" } }
- def limsup { @OneCol { @Base "lim" ` @Base "sup" } }
- def ln { @Base "ln" }
- def log { @Base "log" }
- def max { @Base "max" }
- def min { @Base "min" }
- def Pr { @Base "Pr" }
- def sec { @Base "sec" }
- def sin { @Base "sin" }
- def sinh { @Base "sinh" }
- def supr { @Base "sup" }
- def tan { @Base "tan" }
- def tanh { @Base "tanh" }
- def mod { @Base "mod" }
- def "!" { exclam }
- def "?" { question }
- def "%" { percent }
- def "(" { parenleft }
- def ")" { parenright }
- def "[" { bracketleft }
- def "]" { bracketright }
-
-
- ###################################################################
- # #
- # Ordinary symbols (for atleft and atright) #
- # These are Knuth's Groups 11 and 12 - openings and closings. #
- # #
- ###################################################################
-
- def lpar { parenleft }
- def rpar { parenright }
- def lbrack { bracketleft }
- def rbrack { bracketright }
- def lbrace { braceleft }
- def rbrace { braceright }
- def lfloor { ` "-0.15f" @VShift bracketleftbt }
- def rfloor { "-0.15f" @VShift bracketrightbt ` }
- def lceil { ` "-0.1f" @VShift bracketlefttp }
- def rceil { "-0.1f" @VShift bracketrighttp ` }
- def langle { angleleft }
- def rangle { angleright }
-
- def blpar { @OneRow {parenlefttp ^/ parenleftex / parenleftbt } }
- def brpar { @OneRow {parenrighttp ^/ parenrightex / parenrightbt } }
- def blbrack { @OneRow {bracketlefttp ^/ bracketleftex / bracketleftbt } }
- def brbrack { @OneRow {bracketrighttp ^/ bracketrightex / bracketrightbt} }
- def blbrace { @OneRow {bracelefttp ^/ braceleftmid / braceleftbt } }
- def brbrace { @OneRow {bracerighttp ^/ bracerightmid / bracerightbt } }
- def blfloor { @OneRow {bracketleftex ^/ bracketleftex / bracketleftbt } }
- def brfloor { @OneRow {bracketrightex ^/ bracketrightex / bracketrightbt} }
- def blceil { @OneRow {bracketlefttp ^/ bracketleftex / bracketleftex } }
- def brceil { @OneRow {bracketrighttp ^/ bracketrightex / bracketrightex} }
-
- def blangle
- {
- @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- { "xsize 0 moveto 0 ysize 2 div lineto"
- "xsize ysize lineto 0.04 ft setlinewidth stroke"
- } @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w __xsize 0 m"
- "0 __div(__ysize, 2) l __xsize __ysize l S"
- } @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- }
- }
-
- def brangle
- {
- @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto xsize ysize 2 div lineto"
- "0 ysize lineto 0.04 ft setlinewidth stroke"
- } @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w 0 0 m"
- "__xsize __div(__ysize, 2) l 0 __ysize l S"
- } @Graphic { 0.5f @Wide 2f @High ^/ 2f @High }
- }
- }
- }
-
-
- ###################################################################
- # #
- # Ordinary symbols (miscellaneous) #
- # #
- # Not all of Knuth's symbols are available. The four suits #
- # (heartsuit, etc.), have definitions above. #
- # #
- ###################################################################
-
- def hbar { @HContract @VContract {&0.1f @Base "-" ^/0.30fo h }}
- def Re { Rfraktur }
- def Im { Ifraktur }
- def partial { partialdiff }
- def infty { infinity }
- def prime { minute }
- #def emptyset { defined above }
- def nabla { gradient }
- def surd { radical }
- def top { 180d @Rotate perpendicular }
- def bot { perpendicular }
- def dbar { @Base "||" }
- #def angle { defined above }
- def backslash { "\\" }
- def forall { universal }
- def exists { existential }
- def neg { logicalnot }
-
- def circle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "xsize ysize 2 div moveto"
- "xsize 2 div ysize 2 div xsize 2 div 0 360 arc"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- #
- # VT: draws a counterclockwise 360 degree arc from 0 to +360
- # degree positions (straight right to straight right) with
- # centre = (xsize/2, ysize/2) and radius = xsize/2,
- # implemented as two counterclockwise 180 degree arcs.
- # start at (xsize, ysize/2); the control points are:
- #
- # pt1 = (xsize, ysize/2 + (4/3 * xsize/2))
- # pt2 = (0, ysize/2 + (4/3 * xsize/2))
- #
- # end at (0, ysize/2). Then start at (0, ysize/2); control points
- #
- # pt1 = (0, ysize/2 - (4/3 * xsize/2))
- # pt2 = (xsize, ysize/2 - (4/3 * xsize/2))
- #
- # and end at (xsize, ysize/2).
-
- {
- "__mul(0.04, __loutf) w"
- "__xsize __div(__ysize, 2) m"
- "__xsize __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __div(__ysize, 2) c"
- "0 __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __div(__ysize, 2) c S"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def filledcircle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "xsize ysize 2 div moveto"
- "xsize 2 div ysize 2 div xsize 2 div 0 360 arc"
- "0.04 ft setlinewidth fill"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- #
- # JK: I don't know how to fill in PDF, so this doesn't!
- #
- # VT: draws a counterclockwise 360 degree arc from 0 to +360
- # degree positions (straight right to straight right) with
- # centre = (xsize/2, ysize/2) and radius = xsize/2,
- # implemented as two counterclockwise 180 degree arcs.
- # start at (xsize, ysize/2); the control points are:
- #
- # pt1 = (xsize, ysize/2 + (4/3 * xsize/2))
- # pt2 = (0, ysize/2 + (4/3 * xsize/2))
- #
- # end at (0, ysize/2). Then start at (0, ysize/2); control points
- #
- # pt1 = (0, ysize/2 - (4/3 * xsize/2))
- # pt2 = (xsize, ysize/2 - (4/3 * xsize/2))
- #
- # and end at (xsize, ysize/2).
-
- {
- "__mul(0.04, __loutf) w"
- "__xsize __div(__ysize, 2) m"
- "__xsize __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __add(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "0 __div(__ysize, 2) c"
- "0 __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __sub(__div(__ysize, 2), __div(__mul(2, __xsize), 3))"
- "__xsize __div(__ysize, 2) c S"
- } @Graphic { 0.7f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def square
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "0 0 moveto xsize 0 lineto xsize ysize lineto"
- "0 ysize lineto closepath"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.6f @Wide 0.3f @High ^/ 0.3f @High }
- }
- PDF @Yield {
- {
- "__mul(__loutf, 0.04) w"
- "0 0 m __xsize 0 l __xsize __ysize l"
- "0 __ysize l s"
- } @Graphic { 0.6f @Wide 0.3f @High ^/ 0.3f @High }
- }
- }
- }
-
- def triangle
- { @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- {
- "0 0 moveto xsize 0 lineto"
- "xsize 2 div ysize lineto closepath"
- "0.04 ft setlinewidth stroke"
- } @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- PDF @Yield {
- {
- "__mul(__loutf, 0.04) w"
- "0 0 m __xsize 0 l"
- "__div(__xsize, 2) __ysize l s"
- } @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- }
- }
-
- # other symbols taken from TeX
- def ldots { . &0.3f . &0.3f . }
- def cdots { dotmath &0.3f dotmath &0.3f dotmath }
- def vdots { @OneRow { dotmath ^/0.3f dotmath /0.3f dotmath } }
- def ddots { @OneCol @OneRow
- { dotmath
- ^/0.3f |0.3f dotmath
- /0.3f | |0.3f dotmath
- }
- }
-
- # symbols taken from eqn (Kernighan and Cherry 1975). #
- def del { gradient }
- def grad { gradient }
- def "..." { ellipsis }
- def ",...," { , ellipsis ``` , }
- def "'" { minute }
- def "''" { minute minute }
- def "'''" { minute minute minute }
- def "''''" { minute minute minute minute }
- def empty { emptyset }
-
- # forget where these are from
- def triangleup { 0.8f @Font triangle }
- def triangledown { 180d @Rotate 0.8f @Font triangle }
-
- # half and third defined later, since they use frac
-
-
- ###################################################################
- # #
- # Variable-building symbols #
- # #
- # These symbols are essentially those of eqn, with some #
- # changes and additions. #
- # #
- ###################################################################
-
- def dot
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle .
- }
-
- def dotdot
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle ..
- }
-
- def hat
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle @Base "^"
- }
-
- def tilde
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle @Base "~"
- }
-
- def vec
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle arrowright
- }
-
- def dyad
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- x below gap { gap } skew { @SkewGap } @SuperScriptStyle arrowboth
- }
-
- def overbar
- precedence @HatPrec
- left x
- named gap { @AboveGap }
- {
- { @WithStyle style { @CurrStyle } cramped { "Yes" } x }
- widebelow gap { gap } @SuperScriptStyle minus
- }
-
- def underbar
- precedence @HatPrec
- left x
- named gap { @BelowGap }
- {
- x wideabove gap { gap } @SuperScriptStyle minus
- }
-
- def sup
- precedence @SupPrec
- associativity left
- left x
- named gap { "dft" }
- right y
- {
- @HContract @VContract
- { | @SuperScriptStyle y
- ^/{ gap @OrDefault @CurrSuperScriptGap } x
- }
- }
-
- def sub
- precedence @SubPrec
- associativity left
- left x
- named gap { @SubScriptGap }
- right y
- {
- @HContract @VContract
- {
- "." @KernShrink x
- /gap | @SubScriptStyle y
- }
- }
-
- def tsub
- precedence @SubPrec
- associativity left
- left x
- named gap { @SubScriptGap }
- right y
- {
- @HContract @VContract
- {
- x
- /gap | &0io 0.2f @HShift @SubScriptStyle y
- }
- }
-
- def supp
- precedence @SupPrec
- associativity left
- left x
- named gap { "dft" }
- right y
- {
- @HContract @VContract
- {
- { ^/{ gap @OrDefault @CurrSuperScriptGap } x
- /{ gap @OrDefault @CurrSuperScriptGap } }
- | y
- }
- }
-
- def on
- precedence @SubPrec
- associativity left
- left x
- right y
- {
- { @SuperScriptStyle x } ^/ /
- { @SubScriptStyle y }
- }
-
- def ton
- precedence @SubPrec
- associativity left
- left x
- right y
- {
- @SuperScriptStyle x ^/ /
- &0io 0.3f @HShift @SubScriptStyle y
- }
-
-
- ###################################################################
- # #
- # Large operator symbols (Knuth's Group 6 "Large" operators) #
- # #
- # Layout of large operators differs in several ways, depending #
- # on whether they are in display mode or not. #
- # #
- # 1. The operator itself is larger in display mode. We #
- # achieve this by automatically prepending `big' to the #
- # operator's symbol when in display mode. #
- # #
- # 2. The "bounds" of these operators (i.e., `from' and `to') #
- # are set as limits (i.e., above and below the operator #
- # symbol) when in display mode, and displayed to the #
- # right of the symbol otherwise. Integrations are an #
- # exception (the only exception?). #
- # #
- # See ``The TeXbook'', Chapter 17. #
- # #
- ###################################################################
-
- def largeop
- named symbol { "largeop" }
- named limits { "dft" } # whether to set `from' and `to' as limits
- named from { "" }
- named to { "" }
- {
- def @Symbol
- {
- @CurrStyle @Case {
- "display" @Yield { big symbol }
- else @Yield symbol
- }
- }
-
- def @Limits
- {
- limits @OrDefault {
- @CurrStyle @Case {
- "display" @Yield "Yes"
- else @Yield "No" }
- }
- }
-
- def @LimitsBody
- {
- @Symbol above { @SuperScriptStyle from }
- below { @SubScriptStyle to }
- }
-
- def @NoLimitsBody
- {
- 0.5w @VShift {
- 1.0w @VShift @OneRow {
- { | 0.3w @VShift @SuperScriptStyle to }
- ^/0.0fo { 0w @VShift @Symbol | }
- }
-
- /0.0fo
-
- { | 0.7w @VShift @SubScriptStyle from }
- }
- |{ @CurrPunctSpaceGap }
- }
-
- @Limits @Case {
- { "Yes" "yes" } @Yield @LimitsBody
- { "No" "no" } @Yield @NoLimitsBody
- }
- }
-
- # Ludovic's symbol, no longer used
- def largeoperator
- named symbol { "largeop" }
- named from { "" }
- named to { "" }
- named limits { "Yes" } # whether to set `from' and `to' as limits
- {
- def @NoLimitsBody {
- 0.5w @VShift {
- 1.0w @VShift @OneRow {
- { | 0.3w @VShift @SuperScriptStyle to }
- ^/0.0fo { 0w @VShift symbol | }
- }
-
- /0.0fo
-
- { | 0.7w @VShift @SubScriptStyle from }
- }
- |{ @CurrPunctSpaceGap }
- }
-
- def @LimitsBody {
- symbol above { @SuperScriptStyle from }
- below { @SubScriptStyle to }
- }
-
- limits @Case {
- { "Yes" "yes" } @Yield @LimitsBody
- { "No" "no" } @Yield @NoLimitsBody
- }
- }
-
- # Ludovic's symbol, no longer used
- def simplelargeoperator
- named symbol { "simplelargeop" }
- named limits { "dft" }
- named from { }
- named to { }
- {
- largeoperator
- symbol { @CurrStyle @Case {
- "display" @Yield { big symbol }
- else @Yield symbol }
- }
- limits { limits @OrDefault {
- @CurrStyle @Case {
- "display" @Yield "Yes"
- else @Yield "No" }
- }
- }
- from { from }
- to { to }
- }
-
- def sum
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { summation } limits { limits } from { from } to { to }
- }
-
- def prod
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { product } limits { limits } from { from } to { to }
- }
-
- def coprod
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { 180d @Rotate vctr product }
- limits { limits } from { from } to { to }
- }
-
- def bcap
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { big intersection } limits { limits } from { from } to { to }
- }
-
- def bcup
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { big union } limits { limits } from { from } to { to }
- }
-
- def bvee
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { big logicalor } limits { limits } from { from } to { to }
- }
-
- def bwedge
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { big logicaland } limits { limits } from { from } to { to }
- }
-
- def circledot
- {
- def @PureDot # dot with no extra space
- {
- @HContract { &0io 0.4w @HShift dotmath }
- }
-
- @OneRow @HContract { circle /0io &0.5rt @PureDot /0io circle }
- }
-
-
- def bodot
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { circledot }
- limits { limits } from { from } to { to }
- }
-
- def botimes
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { circlemultiply } limits { limits } from { from } to { to }
- }
-
- def boplus
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { circleplus } limits { limits } from { from } to { to }
- }
-
- def buplus
- named limits { "dft" }
- named from {}
- named to {}
- {
- largeop
- symbol { & big @HContract { &0.5rt 0.7f @Font plus ^/0.2fo union } }
- limits { limits } from { from } to { to }
- }
-
-
- ###################################################################
- # #
- # Integrations are slightly different in that, according to #
- # Knuth (Chapter 17, p. 144), ``superscripts and subscripts #
- # are not set as limits, even in display style''. Still, as #
- # in TeX, we give users the possibility to override this. #
- # #
- ###################################################################
-
- # Ludovic's symbol, no longer used
- def integration
- named symbol { "integration" }
- named limits { "No" }
- named from { }
- named to { }
- {
- largeoperator
- symbol { @CurrStyle @Case {
- "display" @Yield { big symbol }
- else @Yield symbol }
- }
- limits { limits } from { from } to { to }
- }
-
- def int
- named limits { "No" }
- named from { }
- named to { }
- {
- largeop
- symbol { vctr big integral } limits { limits } from { from } to { to }
- }
-
- def oint
- named limits { "No" }
- named from { }
- named to { }
- {
- largeop
- symbol { @OneCol { vctr degree |0.015fo big integral } }
- limits { limits } from { from } to { to }
- }
-
-
- ###################################################################
- # #
- # Unary operator symbols #
- # #
- ###################################################################
-
- def sqrt
- precedence @UnaryOpPrec
- named gap { @AboveGap }
- right x
- {
- @BackEnd @Case {
- PostScript @Yield {
- @HContract @VContract
- {
- @VScale surd | @OneRow
- {
- @HLine line { "0.03 ft setlinewidth 2 setlinecap" }
- ^//gap |gap @SquareRootStyle @Strut x # //gap
- }
- }
- }
- PDF @Yield {
- @HContract @VContract
- {
-#
-# VT: this PDF is correct but it renders badly in Acrobat (?problem
-# with scaling by fractional factors)
-# In other words, the @VScale value comes through correctly but it
-# looks ugly; GhostScript's translation actually expands the
-# "draw surd" instruction into raw moveto's and lineto's which
-# it presumably gets from the font's definition of the glyph!
-#
- @VScale surd | @OneRow
- {
- @HLine line { "__mul(__loutf, 0.03) w 2 J" }
- ^//gap |gap @SquareRootStyle @Strut x # //gap
- }
- }
- }
- }
- }
-
- def root
- precedence @UnaryOpPrec
- associativity left
- left x
- right y
- {
- "" sup x &0io sqrt y
- }
-
- def zroot
- precedence @UnaryOpPrec
- associativity left
- left x
- right y
- {
- def zsup right x { "+0.3f" @VShift 0.5f @Font x }
-
- "-0.4f" @HShift { 1w @HShift { zsup x } } &0co sqrt y
- }
-
- export row axisrow col lcol ccol rcol mcol
- def matrix
- precedence @UnaryOpPrec
- named gap { @CurrBinarySpaceGap }
- named strut
- named no { }
- named No { }
- named yes { 0.5f }
- named Yes { 0.5f }
- { No }
- named atleft {}
- named atright {}
- named userow { No }
- named shiftdelim { Yes }
- body x
- {
- def @Strut
- {
- strut @Case {
- "" @Yield {}
- else @Yield { @OneRow { strut @High ^/ strut @High } }
- }
- }
-
- def newrow
- precedence @HelperRowPrec
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { y | @Strut }
- else @Yield { x /@RowGap y | @Strut }
- }
- }
-
- macro row { newrow "" }
-
- def newaxisrow
- precedence @HelperRowPrec
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { y | @Strut }
- else @Yield { x ^/@RowGap y | @Strut }
- }
- }
-
- macro axisrow { newaxisrow "" }
-
- def col
- precedence @HelperColPrec
- associativity left
- left x
- named indent { 0.5rt }
- right y
- {
- x @Case {
- "" @Yield { &indent @OneCol y }
- else @Yield { x |@ColGap &indent @OneCol y }
- }
- }
-
- def lcol
- precedence @HelperColPrec
- associativity left
- left x
- right y
- {
- x col indent { 0i } y
- }
-
- def ccol
- precedence @HelperColPrec
- associativity left
- left x
- right y
- {
- x col indent { 0.5rt } y
- }
-
- def rcol
- precedence @HelperColPrec
- associativity left
- left x
- right y
- {
- x col indent { 1rt } y
- }
-
- def mcol
- precedence @HelperColPrec
- associativity left
- left x
- right y
- {
- x @Case {
- "" @Yield { @OneCol y }
- else @Yield { x |@ColGap @OneCol y }
- }
- }
-
- def delim right x
- {
- x @Case
- {
- "" @Yield @Null
- else @Yield
- {
- shiftdelim @Case {
- { Yes yes } @Yield { @VScale x }
- else @Yield { @VCover x }
- }
- }
- }
- }
-
- @HContract @VContract {
- delim atleft &@CurrPunctSpaceGap
- userow @Case {
- {Yes yes} @Yield @HContract @VContract {^//gap @OneRow x //gap}
- else @Yield vctr @HContract @VContract { //gap x //gap }
- }
- &@CurrPunctSpaceGap delim atright
- }
- }
-
- macro pmatrix { matrix atleft {1.5f @Font (} atright {1.5f @Font )} }
- macro bmatrix { matrix atleft { blbrack } atright { brbrack } }
- macro brmatrix { matrix atleft { blbrace } atright { brbrace } }
- macro fmatrix { matrix atleft { blfloor } atright { brfloor } }
- macro cmatrix { matrix atleft { blceil } atright { brceil } }
- macro amatrix { matrix atleft { blangle } atright { brangle } }
-
-
- ###################################################################
- # #
- # Binary operator symbols #
- # #
- ###################################################################
-
- ###################################################################
- # #
- # over and frac (also half and third) #
- # #
- ###################################################################
-
- def over
- precedence @BinaryOpDividePrec
- associativity left
- left x
- named gap { "dft" }
- named belowgap { "dft" }
- right y
- {
- def @AboveLineGap
- {
- gap @Case {
- "dft" @Yield {
- @CurrStyle @Case {
- "display" @Yield 0.20f
- else @Yield 0.10f
- }
- }
- else @Yield gap
- }
- }
-
- def @BelowLineGap
- {
- belowgap @Case {
- "dft" @Yield {
- @CurrStyle @Case {
- "display" @Yield 0.15f
- else @Yield 0.09f
- }
- }
- else @Yield belowgap
- }
- }
-
- @HContract @VContract
- { |0.5rt @OneCol @NumeratorStyle x
- ^//@AboveLineGap @HLine
- //@BelowLineGap |0.5rt @OneCol @DenominatorStyle @Strut y
- }
- }
-
- def frac
- precedence @BinaryOpDividePrec
- associativity left
- left x
- named gap { 0.2f }
- right y
- {
- @HContract @VContract
- { 1w @VShift { @SuperScriptStyle { x } /gap }
- | fraction &0io
- | 0w @VShift { |gap @SubScriptStyle { y } }
- }
- }
-
- def half { one frac two }
- def third { one frac three }
-
-
- ###################################################################
- # #
- # Knuth's Group 7 (binary operations) #
- # #
- # All of Knuth's symbols are available except \star, \diamond #
- # and \bullet; a few have been given more mnemonic names. #
- # #
- ###################################################################
-
- def bin
- precedence @BinaryOpPrec
- associativity left
- left l
- named op { "binop" }
- right r
- {
- l &@CurrBinarySpaceGap op &@CurrBinarySpaceGap r
- }
-
- def "+"
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { plus } r
- }
-
- def "-"
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { minus } r
- }
-
- def "+-"
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { plusminus } r
- }
-
- def "-+"
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { 180d @Rotate plusminus } r
- }
-
- def setminus
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { backslash } r
- }
-
- def cdot
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { dotmath } r
- }
-
- def times
- precedence @BinaryOpTimesPrec
- associativity left
- left l
- right r
- {
- l bin op { multiply } r
- }
-
- def "*"
- precedence @BinaryOpTimesPrec
- associativity left
- left l
- right r
- {
- l bin op { asteriskmath } r
- }
-
- #def diamond { name used above }
-
- def circ
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { circle } r
- }
-
- #def bullet { name used above }
-
- def div
- precedence @BinaryOpDividePrec
- associativity left
- left l
- right r
- {
- l bin op { divide } r
- }
-
- def cap
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { intersection } r
- }
-
- def cup
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { union } r
- }
-
- def uplus
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op {@OneRow @HContract { &0.5rt 0.7f @Font plus ^/0.2fo union}} r
- }
-
- def sqcapshape
- {
- @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto 0 ysize lineto xsize ysize lineto"
- "xsize 0 lineto 0.04 ft setlinewidth stroke"
- }
- @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w"
- "0 0 m 0 __ysize l __xsize __ysize l __xsize 0 l s"
- }
- @Graphic { 0.3f @Wide 0.3f @High ^| ^/ 0.3f @Wide 0.3f @High }
- }
- }
- }
-
- def sqcap
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { sqcapshape } r
- }
-
- def sqcup
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { "180d" @Rotate sqcapshape } r
- }
-
- def triangleleft
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { "90d" @Rotate 0.8f @Font triangle } r
- }
-
- def triangleright
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { "-90d" @Rotate 0.8f @Font triangle } r
- }
-
- def wr
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { vctr {90d @Rotate similar } } r
- }
-
- def bigcirc
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { 1.2f @Font circle} r
- }
-
- def bigtriangleup
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { 1.2f @Font triangle } r
- }
-
- def bigtriangledown
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { 180d @Rotate 1.2f @Font triangle } r
- }
-
- def vee
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { logicalor } r
- }
-
- def wedge
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { logicaland } r
- }
-
- def oplus
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { circleplus } r
- }
-
- def ominus
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { @OneRow @HContract { circle /0io &0.5rt minus } } r
- }
-
- def otimes
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { circlemultiply } r
- }
-
- def oslash
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- #l bin op { `vctr 60d @Rotate @HContract {circle /0io &0.5rt minus`} } r
- l bin op {@OneRow @HContract {circle /0io &0.5rt "-0.1f" @VShift slash}} r
- }
-
- def odot
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { circledot } r
- }
-
- def dagger
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { @Base @Char "dagger" } r
- }
-
- def daggerdbl
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { @Base @Char "daggerdbl" } r
- }
-
- def amalg
- precedence @BinaryOpPrec
- associativity left
- left l
- right r
- {
- l bin op { 180d @Rotate vctr product } r
- }
-
-
- ###################################################################
- # #
- # Group 8 (relations) #
- # #
- # All Knuth's operators are available, but many have been #
- # given different, more mnemonic names. Also included is #
- # a not operator for negating the relations. #
- # #
- ###################################################################
-
- # "not" done by an option now
- # def not right x { @HContract {@OneCol x /0co &0.5rt slash}}
-
- def rel
- precedence @RelationPrec
- associativity left
- left l
- named op { "relop" }
- named neg { "no" }
- right r
- {
-
- def @Op
- {
- neg @Case {
- { "No" "no" } @Yield op
- { "Yes" "yes" } @Yield
- { @HContract {@OneCol { & op } /0co &0.5rt slash} }
- }
- }
-
- l &@CurrRelSpaceGap @Op &@CurrRelSpaceGap r
- }
-
- def "<"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { less } r
- }
-
- def ">"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { greater } r
- }
-
- def "="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { equal } r
- }
-
- def "<="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { lessequal } r
- }
-
- def precsym
- {
- 0i @HShift 0.45f @Font "-90d" @Rotate {parenrighttp ^| parenlefttp}
- }
-
- def prec
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { precsym } r
- }
-
- def preceq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @VContract { precsym /0.1f minus } } r
- }
-
- def "<<"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { less less } r
- }
-
- def subset
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { propersubset } r
- }
-
- def subseteq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { reflexsubset } r
- }
-
- def sqsubsetshape
- {
- @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- { "xsize 0 moveto 0 0 lineto 0 ysize lineto"
- "xsize ysize lineto 0.04 ft setlinewidth stroke"
- }
- @Graphic { 0.5f @Wide 0.25f @High ^/ 0.25f @High }
- /0.1f minus
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w __xsize 0 m 0 0 l"
- "0 __ysize l __xsize __ysize l s"
- }
- @Graphic { 0.5f @Wide 0.25f @High ^/ 0.25f @High }
- /0.1f minus
- }
- }
- }
-
- def sqsubseteq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { sqsubsetshape } r
- }
-
- def in
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { element } r
- }
-
- def vdash
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { vctr {"-90d" @Rotate perpendicular} } r
- }
-
- def smile
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { vctr 90d @Rotate parenleft } r
- }
-
- def frown
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { vctr 90d @Rotate parenright } r
- }
-
- def ">="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { greaterequal } r
- }
-
- def succsym
- {
- 0.45f @Font 90d @Rotate { parenrighttp ^| parenlefttp }
- }
-
- def succ
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { succsym } r
- }
-
- def succeq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @OneRow non succ /0.1f minus } r
- }
-
- def ">>"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { greater greater } r
- }
-
- def supset
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { propersuperset } r
- }
-
- def supseteq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { reflexsuperset } r
- }
-
- def sqsupseteqshape
- {
- @HContract @VContract @BackEnd @Case {
- PostScript @Yield {
- { "0 0 moveto xsize 0 lineto xsize ysize lineto"
- "0 ysize lineto 0.04 ft setlinewidth stroke"
- } @Graphic { 0.5f @Wide 0.25f @High ^/ 0.25f @High }
- /0.1f minus
- }
- PDF @Yield {
- { "__mul(__loutf, 0.04) w 0 0 m __xsize 0 l"
- "__xsize __ysize l 0 __ysize l s"
- } @Graphic { 0.5f @Wide 0.25f @High ^/ 0.25f @High }
- /0.1f minus
- }
- }
- }
-
- def sqsupseteq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { sqsupseteqshape } r
- }
-
- def ni
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { 180d @Rotate element } r
- }
-
- def dashv
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { vctr {90d @Rotate perpendicular} } r
- }
-
- def mid
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @Base "|" } r
- }
-
- def parallel
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @Base "||" } r
- }
-
- def "=="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { equivalence } r
- }
-
- def "~"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { similar } r
- }
-
- def "-~"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @OneRow { similar ^/0.07f /0.07f minus } } r
- }
-
- def asymp
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- { l
- rel neg { neg } op { 0.7f @Font @OneRow
- { 90d @Rotate parenleft ^/0.008f
- /0.008f 90d @Rotate parenright } }
- r
- }
-
- def "~~"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { approxequal } r
- }
-
- def "=~"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { congruent } r
- }
-
- def bowtie
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { non triangleright non triangleleft } r
- }
-
- def propto
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { proportional } r
- }
-
- def models
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @Base vctr "|" &0.05fo vctr equal } r
- }
-
- def trieqsym
- {
- @OneRow @HContract {&0.5rt small triangle^/0.15f equal}
- }
-
- def trieq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { trieqsym } r
- }
-
- def doteqsym
- {
- @OneRow @HContract { &0.5rt dotmath^/0.15f equal }
- }
-
- def doteq
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { doteqsym } r
- }
-
- def perp
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { perpendicular } r
- }
-
- def notsub
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { notsubset } r
- }
-
- def notin
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { notelement } r
- }
-
- def "!="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { notequal } r
- }
-
- def "<->"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowboth } r
- }
-
- def "<--"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowleft } r
- }
-
- def "-->"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowright } r
- }
-
- def up
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowup } r
- }
-
- def down
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdown } r
- }
-
- def "<=>"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdblboth } r
- }
-
- def "<=="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdblleft } r
- }
-
- def "==>"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdblright } r
- }
-
- def dblup
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdblup } r
- }
-
- def dbldown
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { arrowdbldown } r
- }
-
- def ":"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { colon } r
- }
-
- def "::"
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { @OneCol {colon ` colon} } r
- }
-
- def ":="
- precedence @RelationPrec
- associativity left
- left l
- named neg { "no" }
- right r
- {
- l rel neg { neg } op { colon{ //0.05fo equal } } r
- }
-
-
- ###################################################################
- # #
- # Punctuation symbols (Knuth's Group 13) #
- # #
- ###################################################################
-
- def punct
- precedence @PunctuationPrec
- associativity left
- left l
- named symbol { "punct" }
- right r
- {
- l &0.0ce symbol &@CurrPunctSpaceGap r
- }
-
- def ";"
- precedence @PunctuationPrec
- associativity left
- left l
- right r
- {
- l punct symbol { semicolon } r
- }
-
- def ","
- precedence @PunctuationPrec
- associativity left
- left l
- right r
- {
- l punct symbol { comma } r
- }
-
- def col
- precedence @PunctuationPrec
- associativity left
- left l
- right r
- {
- l punct symbol { colon } r
- }
-
-
- ###################################################################
- # #
- # Ordinary symbols (to get Roman font) - continued #
- # #
- ###################################################################
-
- def "0" { zero }
- def "1" { one }
- def "2" { two }
- def "3" { three }
- def "4" { four }
- def "5" { five }
- def "6" { six }
- def "7" { seven }
- def "8" { eight }
- def "9" { nine }
-
-
- ###################################################################
- # #
- # The result object #
- # #
- ###################################################################
-
- basefont @Font
- { Slope xheight2mark nostrut } @Font { initialspace } @Space
- { @CurrStyleVar @Yield initialstyle } @SetContext {
- { @CrampedVar @Yield initiallycramped } @SetContext {
- @Body
- }
- }
-
-@End @Math
-
-
-###############################################################################
-# #
-# In-line equations #
-# #
-###############################################################################
-
-macro @M { @HContract @VContract @Math initialstyle { "text" } }
diff --git a/include/include/modula b/include/include/modula
deleted file mode 100644
index c6a9a2f..0000000
--- a/include/include/modula
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Modula-2 program printing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { modulaf } line #
-# #
-# This line causes Lout to read the definitions for Modula-2, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { modulaf }
-
-
-###############################################################################
-# #
-# This package does not offer the ability to change default options. #
-# #
-###############################################################################
diff --git a/include/include/modulaf b/include/include/modulaf
deleted file mode 100644
index 66ffa5e..0000000
--- a/include/include/modulaf
+++ /dev/null
@@ -1,154 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Modula package for formatting Modula-2 programs (Version 1.0) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, September 1993. #
-# #
-# This package implements the complete Modula-2 language (in a style which #
-# claims only to reflect its author's taste) with the following caveats: #
-# #
-# * The symbol { must be given as lbrace #
-# #
-# * The symbol } must be given as rbrace #
-# #
-# * The symbol # must be given as numbersign #
-# #
-# * Double quotes are used by Lout to delimit literal strings, so they #
-# need to be quoted (Modula-2 allows single quoted strings wherever #
-# double quoted strings can go; we recommend these be used) #
-# #
-# * Literal strings should be enclosed in double quotes #
-# #
-# * The symbols B, H, C, and E as used in numeric literals will appear #
-# in italic font #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
-
- "*" "/" "~" "+" "-" "=" "<>" ">" ">=" "<" "<=" "("
- ")" "[" "]" "," ";" "." ":" "..." ".." "|" "^" ":=" "'" "`"
- "&"
-
- lbrace rbrace numbersign
-
- AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE ELSIF
- END EXPORT EXIT FOR FROM IF IMPLEMENTATION IMPORT IN LOOP
- MOD MODULE NOT OF OR POINTER PROCEDURE QUALIFIED RECORD
- REPEAT RETURN SET TO THEN TYPE UNTIL VAR WHILE WITH @Com
-
-def @Modula
- body @Body
-@Begin
-
- def @R right x { Base @Font x }
- def @B right x { Bold @Font x }
- def @S right x { { Symbol Base } @Font x }
-
- def "0" { @R "0" }
- def "1" { @R "1" }
- def "2" { @R "2" }
- def "3" { @R "3" }
- def "4" { @R "4" }
- def "5" { @R "5" }
- def "6" { @R "6" }
- def "7" { @R "7" }
- def "8" { @R "8" }
- def "9" { @R "9" }
-
- def "*" { @S @Char "asteriskmath" }
- def "/" { @R @Char "fraction" }
- def "~" { @R "~" }
- def "+" { @S "+" }
- def "-" { @S "-" }
- def "=" { @S @Char "equal" }
- def "<>" { @S @Char "notequal" }
- def ">" { @S @Char "greater" }
- def ">=" { @S @Char "greaterequal" }
- def "<" { @S @Char "less" }
- def "<=" { @S @Char "lessequal" }
- def "(" { @R "(" }
- def ")" { @R ")" }
- def "[" { @R "[" }
- def "]" { @R "]" }
- def "," { @R "," }
- def ";" { @R ";" }
- def "." { @R "." }
- def ":" { @R ":" }
- def ".." { @R ".." &0.1f }
- def "..." { @R "..." }
- def "|" { @R "|" }
- def "^" { @S 0.8f @Font @Char "arrowup" }
- def ":=" { :{//0.03fo =} }
- def "'" { @R "'" }
- def "`" { @R "`" }
- def "&" { @R "&" }
-
- def lbrace { @R "{" }
- def rbrace { @R "}" }
- def numbersign { @R "#" }
-
- def AND { @B "and" }
- def ARRAY { @B "array" }
- def BEGIN { @B "begin" }
- def BY { @B "by" }
- def CASE { @B "case" }
- def CONST { @B "const" }
- def DEFINITION { @B "definition" }
- def DIV { @B "div" }
- def DO { @B "do" }
- def ELSE { @B "else" }
- def ELSIF { @B "elsif" }
- def END { @B "end" }
- def EXPORT { @B "export" }
- def EXIT { @B "exit" }
- def FOR { @B "for" }
- def FROM { @B "from" }
- def IF { @B "if" }
- def IMPLEMENTATION { @B "implementation" }
- def IMPORT { @B "import" }
- def IN { @B "in" }
- def LOOP { @B "loop" }
- def MOD { @B "mod" }
- def MODULE { @B "module" }
- def NOT { @B "not" }
- def OF { @B "of" }
- def OR { @B "or" }
- def POINTER { @B "pointer" }
- def PROCEDURE { @B "procedure" }
- def QUALIFIED { @B "qualified" }
- def RECORD { @B "record" }
- def REPEAT { @B "repeat" }
- def RETURN { @B "return" }
- def SET { @B "set" }
- def TO { @B "to" }
- def THEN { @B "then" }
- def TYPE { @B "type" }
- def UNTIL { @B "until" }
- def VAR { @B "var" }
- def WHILE { @B "while" }
- def WITH { @B "with" }
-
- def @Com right x { @R "{" x @R "}" }
-
- Slope @Font lines @Break @Body
-
-@End @Modula
diff --git a/include/include/mydefs b/include/include/mydefs
deleted file mode 100644
index 247457e..0000000
--- a/include/include/mydefs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-###############################################################################
-# #
-# mydefs #
-# #
-# This empty Lout file is a placeholder which is read by the standard setup #
-# files when there is no mydefs file in the user's current directory. #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
diff --git a/include/include/np b/include/include/np
deleted file mode 100644
index 716b8ad..0000000
--- a/include/include/np
+++ /dev/null
@@ -1,117 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Nonpareil program printing #
-# #
-# Jeffrey H. Kingston #
-# 3 December 2002 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { npf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @NonpareilSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { symbol @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # varying mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/npf b/include/include/npf
deleted file mode 100644
index f7512ad..0000000
--- a/include/include/npf
+++ /dev/null
@@ -1,460 +0,0 @@
-
-###############################################################################
-# #
-# Lout @NonpareilSetup package for formatting Nonpareil programs #
-# #
-# Jeffrey H. Kingston #
-# 3 December 2002 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Nonpareil
-def @NonpareilSetup
- named pipe { } # pipe through this
- named numbered { No } # numbered lines?
- named blanknumbered { Yes } # blanks numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 4s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD @PDD
- @A "$>"
-
- def @Nonpareil
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lNonpareil" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lNonpareil" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield style @Case {
- fixed @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
- }
-
-
- def @PDD # for formatting double dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield ".."
- else @Yield style @Case {
- fixed @Yield ".."
- else @Yield { "1.4f" @Font "+0.04f" @VShift ".." &"0.05f" }
- }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Nonpareil
-
-@End @NonpareilSetup
diff --git a/include/include/pas b/include/include/pas
deleted file mode 100644
index 0154ed5..0000000
--- a/include/include/pas
+++ /dev/null
@@ -1,29 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Pascal program printing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { pasf } line #
-# #
-# This line causes Lout to read the definitions for Pascal, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { pasf }
-
-
-###############################################################################
-# #
-# This package does not offer default options that can be changed. #
-# #
-###############################################################################
diff --git a/include/include/pasf b/include/include/pasf
deleted file mode 100644
index 34ebd29..0000000
--- a/include/include/pasf
+++ /dev/null
@@ -1,127 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Pas package for formatting Pascal programs (Version 2.0) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, June 1991. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# #
-# See "Eq - a Lout package for typesetting mathematics" for user #
-# information. #
-# #
-# Reference: Jensen, K. and Wirth, N. Pascal User Manual and Report. #
-# Second Edition, Springer-Verlag, 1975. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
- "." "," ":" ";" "'" "`" "+" "-" "*" "/" "(" ")"
- "[" "]" "^" ".." "=" "<" ">" "<>" "<=" ">=" ":="
-
- and array begin case const div do downto else end
- file for forward function goto if in label mod nil not
- of or otherwise packed procedure program record repeat
- set then to type until var while with @Com
-
-def @Pas
- body @Body
-@Begin
-
- def @R right x { Base @Font x }
- def @B right x { Bold @Font x }
- def @S right x { { Symbol Base } @Font x }
-
- def "0" { @R "0" }
- def "1" { @R "1" }
- def "2" { @R "2" }
- def "3" { @R "3" }
- def "4" { @R "4" }
- def "5" { @R "5" }
- def "6" { @R "6" }
- def "7" { @R "7" }
- def "8" { @R "8" }
- def "9" { @R "9" }
- def "." { @R "." }
- def "," { @R "," }
- def ":" { @R ":" }
- def ";" { @R ";" }
- def "'" { @R "'" }
- def "`" { @R "`" }
- def "+" { @S "+" }
- def "-" { @S "-" }
- def "*" { @S @Char "asteriskmath" }
- def "/" { @R @Char "fraction" }
- def "(" { @R "(" }
- def ")" { @R ")" }
- def "[" { @R "[" }
- def "]" { @R "]" }
- def "^" { @S 0.8f @Font @Char "arrowup" }
- def ".." { @R ".." &0.1f }
- def "=" { @S @Char "equal" }
- def "<" { @S @Char "less" }
- def ">" { @S @Char "greater" }
- def "<>" { @S @Char "notequal" }
- def "<=" { @S @Char "lessequal" }
- def ">=" { @S @Char "greaterequal" }
- def ":=" { :{//0.03fo &0.1f =} }
-
- def and { @B "and" }
- def array { @B "array" }
- def begin { @B "begin" }
- def case { @B "case" }
- def const { @B "const" }
- def div { @B "div" }
- def do { @B "do" }
- def downto { @B "downto" }
- def else { @B "else" }
- def end { @B "end" }
- def file { @B "file" }
- def for { @B "for" }
- def forward { @B "forward" }
- def function { @B "function" }
- def goto { @B "goto" }
- def if { @B "if" }
- def in { @B "in" }
- def label { @B "label" }
- def mod { @B "mod" }
- def nil { @B "nil" }
- def not { @B "not" }
- def of { @B "of" }
- def or { @B "or" }
- def otherwise { @B "otherwise" }
- def packed { @B "packed" }
- def procedure { @B "procedure" }
- def program { @B "program" }
- def record { @B "record" }
- def repeat { @B "repeat" }
- def set { @B "set" }
- def then { @B "then" }
- def to { @B "to" }
- def type { @B "type" }
- def until { @B "until" }
- def var { @B "var" }
- def while { @B "while" }
- def with { @B "with" }
-
- def @Com right x { @R "{" x @R "}" }
-
- Slope @Font lines @Break @Body
-
-@End @Pas
diff --git a/include/include/perl b/include/include/perl
deleted file mode 100644
index 7544e3f..0000000
--- a/include/include/perl
+++ /dev/null
@@ -1,136 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Perl program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude { pod } #
-# #
-# This line causes Lout to read the default setup file for the Pod #
-# documentation language that goes with Perl. If you want your own #
-# Pod setup file, it is probably best to delete this line and place #
-# #
-# @Include { mypod } #
-# @Include { myperl } #
-# #
-# at the start of your document in the usual way. #
-# #
-###############################################################################
-
-@SysInclude { pod }
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { perlf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @PerlSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingtabin { 8 } # tab interval
- # varyingspace { lout } # spacing mode
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/perlf b/include/include/perlf
deleted file mode 100644
index 7e5d414..0000000
--- a/include/include/perlf
+++ /dev/null
@@ -1,446 +0,0 @@
-
-###############################################################################
-# #
-# Lout @PerlSetup package for formatting Perl programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 10 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Perl
-def @PerlSetup
- named pipe { } # pipe through this
- named numbered { No } # numbered lines?
- named blanknumbered { Yes } # blanks numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @Perl
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lPerl" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lPerl" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Perl
-
-@End @PerlSetup
diff --git a/include/include/picture b/include/include/picture
deleted file mode 100644
index ab889ab..0000000
--- a/include/include/picture
+++ /dev/null
@@ -1,352 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for stand-alone illustrations #
-# #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude commands for standard packages. #
-# #
-###############################################################################
-
- @SysInclude { langdefs } # language definitions
- @SysInclude { bsf } # BasicSetup package
- @SysInclude { dsf } # DocumentSetup package
- @SysInclude { picturef } # IllustrationSetup extension
-
-
-###############################################################################
-# #
-# @Include command for reading personal definitions from current directory. #
-# #
-###############################################################################
-
- @Include { mydefs }
-
-
-###############################################################################
-# #
-# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BasicSetup
- # @InitialFont { Times Base 12p } # initial font
- # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}}
- # @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- # @InitialSpace { lout } # initial space style
- # @InitialLanguage { English } # initial language
- # @InitialColour { black } # initial colour
- # @InitialBackgroundColour { white } # initial background colour
- # @OptimizePages { No } # optimize page breaks?
- # @HeadingFont { Bold } # font for @Heading
- # @FixedWidthFont { Courier Base -1p } # font for @F
- # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP
- # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays
- # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent
- # @DefaultIndent { 0.5rt } # @Display indent
- # @DisplayNumStyle { (num) } # style of display numbers
- # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent
- # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent
- # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists
- # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items
- # @ListIndent { 0s } # indent of list items
- # @ListRightIndent { 0s } # right indent of list items
- # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags
- # @ListLabelRight { No } # right-adjust list labels
- # @ListLabelRightGap { 2s } # gap when right-adjusting
- # @ListFont { } # font of list items
- # @ListBreak { } # break style of list items
- # @NumberSeparator { . } # separates nums like 2.3.7
- # @CrossLinkFormat { @Body } # format of cross links
- # @ExternalLinkFormat { @Body } # format of external links
-}
-
-
-###############################################################################
-# #
-# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DocumentSetup
- # @PageType { A4 @OrIfPlain Other} # page type (width, height)
- # @PageWidth { 80s } # page width if type Other
- # @PageHeight { 66f } # page height if type Other
- # @PageOrientation { Portrait } # Portrait, Landscape, etc.
- # @PageBackground { } # background of each page
- # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages
- # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages
- # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages
- # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages
- # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages
- # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages
- # @OddLeftBodyMargin { 0c } # extra margin for page body
- # @OddRightBodyMargin { 0c } # extra margin for page body
- # @EvenLeftBodyMargin { 0c } # extra margin for page body
- # @EvenRightBodyMargin{ 0c } # extra margin for page body
- # @PageBoxType { None } # None Box CurveBox ShadowBox
- # @PageBoxMargin { 1.00c } # page box margin
- # @PageBoxLineWidth { } # page box line thickness
- # @PageBoxPaint { none } # page box paint
- # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- # @PageEnclose { @Body } # enclose every page in this
- # @ColumnNumber { 1 } # number of columns (1 to 10)
- # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- # @FigureLocation { PageTop } # default figure location
- # @FigureFormat { @CC @Body } # default figure format
- # @FigureWord { figure } # "Figure" word else anything
- # @FigureNumbers { Arabic } # method of numbering figures
- # @FigureCaptionPos { Below } # Above or Below
- # @FigureCaptionFont { -2p } # figure caption font
- # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFigureContents { No } # list of figures at start
-
- # @TableLocation { PageTop } # default table location
- # @TableFormat { @CC @Body } # default table format
- # @TableWord { table } # "Table" word else anything
- # @TableNumbers { Arabic } # method of numbering tables
- # @TableCaptionPos { Below } # Above or Below
- # @TableCaptionFont { -2p } # table caption font
- # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break
- # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeTableContents { No } # list of tables at start
-
- # @FloaterLocation { PageTop } # default floater location
- # @FloaterFormat { @CC @Body } # default floater format
- # @FloaterWord { floater } # "Floater" word else anything
- # @FloaterNumbers { Arabic } # method of numbering floaters
- # @FloaterCaptionPos { Below } # Above or Below
- # @FloaterCaptionFont { -2p } # floater caption font
- # @FloaterCaptionBreak{ adjust hyphen 1.2fx } # floater caption break
- # @FloaterCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFloaterContents{ No } # list of floaters at start
-
- # @MakeContents { No } # make contents? Yes or No
- # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- # @ContentsFont { Bold } # font for major entry
- # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry
- # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry
- # @ContentsFormat { number @DotSep title } # contents entry format
- # @ContentsLeader { .. } # leader symbol in contents
- # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- # @MakeReferences { Yes } # make references? Yes or No
- # @RefCiteStyle { [cite] } # citation style
- # @RefCiteLabels { @RefNum } # citation items
- # @RefNumbers { Arabic } # reference numbers
- # @RefListFormat { Labels } # NoLabels, Labels, etc.
- # @RefListLabels { [@RefNum] } # ref list label format
- # @RefListTitle { references } # title of reference list
- # @ChapRefListTitle { references } # title of chapter ref list
- # @RefListIndent { 0s } # indent to left of labels
- # @RefListRightIndent { 0s } # indent to right of items
- # @RefListGap { @ListGap } # gap between ref list items
- # @RefListFont { } # font used in reference list
- # @RefListBreak { } # break style of ref list
- # @RefListLabelWidth { @ListLabelWidth } # Labels column width
- # @RefListSortKey { @Tag } # sorting key
-
- # @MakeGlossary { No } # make glossary? Yes or No
- # @GlossaryText { @Null } # glossary initial text
- # @GlossaryFont { } # glossary entries font
- # @GlossaryBreak { } # glossary entries break
- # @GlossaryFormat { +3p @Font @S @Name # glossary entries format
- # @Right @I { @Word&&page @PageNum }
- # @DP @RawIndentedDisplay @Body }
- # @GlossaryGap { @DisplayGap } # gap between glossary entries
- # @GlossaryColumnNumber{ 2 } # glossary columns (1 to 10)
- # @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- # @InGlossaryFont { smallcaps } # font for @InGlossary
- # @InGlossaryFormat { @Body } # format for @InGlossary
-
- # @MakeIndex { No } # make index? Yes or No
- # @IndexText { @Null } # index initial text
- # @IndexFont { } # index entries font
- # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexFormat { @Body } # @Index format
- # @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
- # @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
- # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexTypeMain { @B @PageNum } # Main pagenum format
- # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexRangeFormat { @From--@To } # index page range format
- # @IndexColumnNumber { 2 } # index columns (1 to 10)
- # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- # @IndexCtd { Yes } # include (ctd.) lines
- # @IndexCtdWord { continued } # "ctd." in current lang.
- # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexSpacerAbove { 2v } # space above index spacer
- # @IndexSpacerBelow { 1v } # space below index spacer
- # @IndexSpacerFont { +3p } # font of index spacer
- # @IndexSpacerFormat { @Body } # format of index spacer
-
- # @MakeIndexA { No } # make index A? Yes or No
- # @IndexAText { @Null } # index A initial text
- # @IndexAFont { } # index A entries font
- # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexAFormat { @Body } # @IndexA format
- # @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
- # @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
- # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexATypeMain { @B @PageNum } # Main pagenum format
- # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexARangeFormat { @From--@To } # index page range format
- # @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- # @IndexACtd { Yes } # include (ctd.) lines
- # @IndexACtdWord { continued } # "ctd." in current lang.
- # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexASpacerAbove { 2v } # space above index A spacer
- # @IndexASpacerBelow { 1v } # space below index A spacer
- # @IndexASpacerFont { +3p } # font of index A spacer
- # @IndexASpacerFormat { @Body } # format of index A spacer
-
- # @MakeIndexB { No } # make index B? Yes or No
- # @IndexBText { @Null } # index B initial text
- # @IndexBFont { } # index B entries font
- # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexBFormat { @Body } # @IndexB format
- # @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
- # @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
- # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexBTypeMain { @B @PageNum } # Main pagenum format
- # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexBRangeFormat { @From--@To } # index page range format
- # @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- # @IndexBCtd { Yes } # include (ctd.) lines
- # @IndexBCtdWord { continued } # "ctd." in current lang.
- # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexBSpacerAbove { 2v } # space above index B spacer
- # @IndexBSpacerBelow { 1v } # space below index B spacer
- # @IndexBSpacerFont { +3p } # font of index B spacer
- # @IndexBSpacerFormat { @Body } # format of index B spacer
-
- # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- # @FootNoteNumbers { Arabic } # footnote numbers
- # @FootNoteThrough { No } # numbered through chapter?
- # @FootNoteLocation { ColFoot } # where the footnote appears
- # @FootNoteFont { 0.80f } # font for footnotes
- # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format
- # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- # @FootAboveGap { @DisplayGap } # gap above footnote line
- # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
- # @MarginNoteFont { 0.80f } # font of margin notes
- # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- # @MarginNoteHGap { 0.5c } # horizontal gap to notes
- # @MarginNoteVGap { @DisplayGap } # min vertical gap between
- # @MarginNoteWidth { 1.50c } # width of margin notes
- # @EndNoteNumbers { Arabic } # endnote numbers
- # @EndNoteFont { 0.80f } # font of endnotes
- # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format
- # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- # @TheoremWord { theorem } # "Theorem" word, etc.
- # @TheoremTitleFormat { (title) } # only if title present
- # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @DefinitionWord { definition } # "Definition" word, etc.
- # @DefinitionTitleFormat { (title) } # only if title present
- # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ClaimWord { claim } # "Claim" word, etc.
- # @ClaimTitleFormat { (title) } # only if title present
- # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @PropositionWord { proposition } # "Proposition" word, etc.
- # @PropositionTitleFormat { (title) } # only if title present
- # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @LemmaWord { lemma } # "Lemma" word, etc.
- # @LemmaTitleFormat { (title) } # only if title present
- # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @CorollaryWord { corollary } # "Corollary" word, etc.
- # @CorollaryTitleFormat { (title) } # only if title present
- # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ExampleWord { example } # "Example" word, etc.
- # @ExampleTitleFormat { (title) } # only if title present
- # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ProofWord { proof } # "Proof" word, etc.
-
- # @PageHeaders { Simple } # None Simple Titles NoTitles
- # @PageNumbers { Arabic } # page numbers
- # @FirstPageNumber { 1 } # number of first page
- # @IntroPageNumbers { Roman } # intro page numbers
- # @IntroFirstPageNumber{ 1 } # number of first intro page
- # @StructPageNums { No } # make structured page numbers
- # @PageNumberFormat { number } # format of all page numbers
-
- # @OddTop { @Centre{- @PageNum -} } # Simple page headers
- # @OddFoot { @Null }
- # @EvenTop { @Centre{- @PageNum -} }
- # @EvenFoot { @Null }
- # @StartOddTop { @Null }
- # @StartOddFoot { @Null }
- # @StartEvenTop { @Null }
- # @StartEvenFoot { @Null }
- # @IntroOddTop { @Null }
- # @IntroOddFoot { @Centre @PageNum }
- # @IntroEvenTop { @Null }
- # @IntroEvenFoot { @Centre @PageNum }
- # @IntroStartOddTop { @Null }
- # @IntroStartOddFoot { @Null }
- # @IntroStartEvenTop { @Null }
- # @IntroStartEvenFoot { @Null }
-
- # Titles, NoTitles headers
- # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum }
- # @RunningOddFoot { @Null }
- # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} }
- # @RunningEvenFoot { @Null }
- # @RunningStartOddTop { @Null }
- # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningStartEvenTop { @Null }
- # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningIntroOddTop { @Null }
- # @RunningIntroOddFoot { @Right @PageNum }
- # @RunningIntroEvenTop { @Null }
- # @RunningIntroEvenFoot { @PageNum }
- # @RunningIntroStartOddTop { @Null }
- # @RunningIntroStartOddFoot { @Null }
- # @RunningIntroStartEvenTop { @Null }
- # @RunningIntroStartEvenFoot { @Null }
-}
-
-
-###############################################################################
-# #
-# The @IllustrationSetup @Use clause - there are no options for this. #
-# #
-###############################################################################
-
-@Use { @IllustrationSetup
-}
-
-
-###############################################################################
-# #
-# @Database (and @SysDatabase) clauses go here. #
-# #
-###############################################################################
-
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/include/include/picturef b/include/include/picturef
deleted file mode 100644
index 8f8fc26..0000000
--- a/include/include/picturef
+++ /dev/null
@@ -1,55 +0,0 @@
-
-###########################################################################
-# #
-# @IllustrationSetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package extends DocumentSetup for illustrations. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @Illustration
-def @IllustrationSetup
-@Begin
-
- #######################################################################
- # #
- # @Illustration #
- # #
- #######################################################################
-
- def @Illustration
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @InitialColour { @InitialColour }
- right x
- {
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- @OneCol @OneRow x
- }
-
-@End @IllustrationSetup
diff --git a/include/include/pie b/include/include/pie
deleted file mode 100644
index a688feb..0000000
--- a/include/include/pie
+++ /dev/null
@@ -1,111 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for pie charts #
-# #
-# Jeffrey H. Kingston #
-# 16 October 2002 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { pief } line #
-# #
-# This line causes Lout to read the definitions for pie charts, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { pief }
-
-
-###############################################################################
-# #
-# The @PieSetup @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @PieSetup
-
- #############################################################################
- # #
- # General options #
- # #
- #############################################################################
-
- # save { no }
- # totalweight { 100 }
- # radius { 2.5c }
- # initialangle { 0d }
- # leftextra { 0i }
- # rightextra { 0i }
- # aboveextra { 0i }
- # belowextra { 0i }
-
- #############################################################################
- # #
- # Caption options #
- # #
- #############################################################################
-
- # leftcaption { }
- # rightcaption { }
- # abovecaption { }
- # belowcaption { }
- # leftgap { 0.5c }
- # rightgap { 0.5c }
- # abovegap { 0.5c }
- # belowgap { 0.5c }
- # hidecaptions { yes }
-
- #############################################################################
- # #
- # Slice options #
- # #
- #############################################################################
-
- # weight { 1 }
- # paint { none }
- # texture { solid }
- # outlinestyle { solid }
- # outlinedashlength { 0.2f }
- # outlinewidth { thin }
- # detach { no }
-
- #############################################################################
- # #
- # Label options #
- # #
- #############################################################################
-
- # label { }
- # labelfont { -2p }
- # labelbreak { clines }
- # labelmargin { 0.2f }
- # labelformat { @Body }
- # labelradius { internal }
- # labeladjust { 0 0 }
-
- #############################################################################
- # #
- # finger options #
- # #
- #############################################################################
-
- # finger { no }
- # fingerstyle { solid }
- # fingerdashlength { 0.2f }
- # fingerwidth { thin }
- # fingerradius { 0.7 }
- # fingeradjust { 0 0 }
- # fingerarrow { no }
- # fingerarrowlength { 0.6f }
- # fingerarrowwidth { 0.45f }
-
-}
diff --git a/include/include/pief b/include/include/pief
deleted file mode 100644
index 2bb0001..0000000
--- a/include/include/pief
+++ /dev/null
@@ -1,426 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Pie package for drawing pie charts #
-# Version 1.0 (October 2002) #
-# Jeffrey H. Kingston #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysPrependGraphic { pief.lpg }
-@SysInclude { lengths } # @PSLengths and @LoutLengths
-@SysInclude { coltex } # @ColourCommand and @TextureCommand
-
-
-###############################################################################
-# #
-# @PieSetup symbol #
-# #
-###############################################################################
-
-export @Pie
-def @PieSetup
- named save { no }
- named totalweight { 100 }
- named radius { 2.5c }
- import @PSLengths named initialangle{ 0d }
- named leftextra { 0i }
- named rightextra { 0i }
- named aboveextra { 0i }
- named belowextra { 0i }
- named leftcaption { }
- named rightcaption { }
- named abovecaption { }
- named belowcaption { }
- named leftgap { 0.5c }
- named rightgap { 0.5c }
- named abovegap { 0.5c }
- named belowgap { 0.5c }
- named hidecaptions { yes }
- named weight { 1 }
- named paint { none }
- import @TextureImport named texture { solid }
- named outlinestyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { solid }
- import @PSLengths named outlinedashlength { 0.2f }
- import @PSLengths named outlinewidth
- named thin { 0.04f }
- named medium { 0.08f }
- named thick { 0.12f }
- { thin }
- named detach
- named yes Yes { 0.5 }
- named no No { 0.0 }
- { no }
- named label { }
- named labelfont { -2p }
- named labelbreak { clines }
- named labelmargin { 0.2f }
- named labelformat right @Body { @Body }
- named labelradius
- named internal { 0.6 }
- named external { 1.4 }
- { internal }
- import @PSLengths named labeladjust { 0 0 }
- named finger { no }
- named fingerstyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { solid }
- import @PSLengths named fingerdashlength { 0.2f }
- import @PSLengths named fingerwidth
- named thin { 0.04f }
- named medium { 0.08f }
- named thick { 0.12f }
- { thin }
- named fingerradius { 0.7 }
- import @PSLengths named fingeradjust{ 0 0 }
- named fingerarrow { no }
- import @PSLengths named fingerarrowlength { 0.6f }
- import @PSLengths named fingerarrowwidth { 0.45f }
-{
-
- ###########################################################################
- # #
- # @Pie symbol #
- # #
- ###########################################################################
-
- export @Slice
- def @Pie
- named save { save }
- named totalweight { totalweight }
- named radius { radius }
- import @PSLengths named initialangle { initialangle }
- named leftextra { leftextra }
- named rightextra { rightextra }
- named aboveextra { aboveextra }
- named belowextra { belowextra }
- named leftcaption { leftcaption }
- named rightcaption { rightcaption }
- named abovecaption { abovecaption }
- named belowcaption { belowcaption }
- named leftgap { leftgap }
- named rightgap { rightgap }
- named abovegap { abovegap }
- named belowgap { belowgap }
- named hidecaptions { hidecaptions }
- named weight { weight }
- named paint { paint }
- import @TextureImport named texture { texture }
- named outlinestyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { outlinestyle }
- import @PSLengths named outlinedashlength{ outlinedashlength }
- import @PSLengths named outlinewidth
- named thin { 0.04f }
- named medium { 0.08f }
- named thick { 0.12f }
- { outlinewidth }
- named detach
- named yes Yes { 0.5 }
- named no No { 0.0 }
- { detach }
- named label { label }
- named labelfont { labelfont }
- named labelbreak { labelbreak }
- named labelmargin { labelmargin }
- named labelformat right @Body { labelformat @Body }
- named labelradius
- named internal { 0.6 }
- named external { 1.4 }
- { labelradius }
- import @PSLengths named labeladjust { labeladjust }
- named finger { finger }
- named fingerstyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { fingerstyle }
- import @PSLengths named fingerdashlength{ fingerdashlength }
- import @PSLengths named fingerwidth
- named thin { 0.04f }
- named medium { 0.08f }
- named thick { 0.12f }
- { fingerwidth }
- named fingerradius { fingerradius }
- import @PSLengths named fingeradjust { fingeradjust }
- named fingerarrow { fingerarrow }
- import @PSLengths named fingerarrowlength { fingerarrowlength }
- import @PSLengths named fingerarrowwidth { fingerarrowwidth }
-
- body @Body
- {
-
-
- #######################################################################
- # #
- # Miscellaneous helper definitions #
- # #
- #######################################################################
-
- def @AddPaint left col right texture
- {
- col @Case {
- { "no" "none" "nopaint" } @Yield "{}"
- else @Yield { "{" @ColourCommand col texture "fill }" }
- }
- }
-
- # Like @Graphic, but affects the graphics state of right parameter
- def @InnerGraphic
- left ps
- right x
- {
- { ps gsave // grestore } @Graphic x
- }
-
- def @ZeroWidth right x
- {
- @HContract @VContract {
- ^|0io @HContract @VContract x |0io
- }
- }
-
- def @ZeroSize right x
- {
- @HContract @VContract {
- ^/0io ^|0io @HContract @VContract x |0io /0io
- }
- }
-
-
- #######################################################################
- # #
- # @Slice #
- # #
- #######################################################################
-
- def @Slice
- named weight { weight }
- named paint { paint }
- import @TextureImport named texture { texture }
- named outlinestyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { outlinestyle }
- import @PSLengths named outlinedashlength { outlinedashlength }
- import @PSLengths named outlinewidth
- named thin { 0.04f }
- named medium { 0.08f }
- named thick { 0.12f }
- { outlinewidth }
- named detach
- named yes Yes { 0.5 }
- named no No { 0.0 }
- { detach }
- named label { label }
- named labelfont { labelfont }
- named labelbreak { labelbreak }
- named labelmargin { labelmargin }
- named labelformat right @Body { labelformat @Body }
- named labelradius
- named internal { 0.6 }
- named external { 1.4 }
- { labelradius }
- import @PSLengths named labeladjust { labeladjust }
- named finger { finger }
- named fingerstyle
- named solid { "/lpiesolid" }
- named dashed { "/lpiedashed" }
- named cdashed { "/lpiecdashed" }
- named dotted { "/lpiedotted" }
- named noline { "/lpienoline" }
- { fingerstyle }
- import @PSLengths named fingerdashlength { fingerdashlength }
- import @PSLengths named fingerwidth
- named thin { 0.04 ft }
- named medium { 0.08 ft }
- named thick { 0.12 ft }
- { fingerwidth }
- named fingerradius { fingerradius }
- import @PSLengths named fingeradjust{ fingeradjust }
- named fingerarrow { fingerarrow }
- import @PSLengths named fingerarrowlength { fingerarrowlength }
- import @PSLengths named fingerarrowwidth { fingerarrowwidth }
- {
-
- def @DrawSlice
- {
- outlinedashlength "[" outlinestyle "]"
- outlinewidth paint @AddPaint texture
- weight detach
- "lpiebeginslice"
- //
- "lpieendslice"
- }
-
- def @TranslateLabelAndDrawFinger
- { labeladjust labelradius "lpietranslatelabel"
- finger @Case {
- { no No } @Yield ""
- { yes Yes } @Yield {
- fingerdashlength "[" fingerstyle "]"
- fingerwidth fingeradjust fingerradius
- "lpiedrawfinger"
- fingerarrow @Case {
- { no No } @Yield ""
- { yes Yes } @Yield {
- fingerarrowlength fingerarrowwidth
- "lpiedrawarrowhead"
- }
- }
- }
- }
- }
-
- def @AddMargins right x
- {
- @HContract @VContract {
- //labelmargin ||labelmargin x ||labelmargin //labelmargin
- }
- }
-
- @Null @ZeroSize @DrawSlice @Graphic
- @TranslateLabelAndDrawFinger @InnerGraphic {
- @AddMargins labelfont @Font labelbreak @Break labelformat label
- } @Null
-
- }
-
- def @Above
- {
- abovecaption @Case {
- "" @Yield ""
- else @Yield @OneCol {
- ||0.5rt clines @Break abovecaption || //abovegap
- }
- }
- }
-
- def @Below
- {
- belowcaption @Case {
- "" @Yield ""
- else @Yield @OneCol {
- //belowgap ||0.5rt clines @Break belowcaption ||
- }
- }
- }
-
- def @Left
- {
- leftcaption @Case {
- "" @Yield ""
- else @Yield @OneRow {
- { //0.5rt clines @Break leftcaption // } ^||leftgap
- }
- }
- }
-
- def @Right
- {
- rightcaption @Case {
- "" @Yield ""
- else @Yield @OneRow {
- ||rightgap { //0.5rt lines @Break rightcaption // }
- }
- }
- }
-
- def @HideWidth right x
- {
- hidecaptions @Case {
- { No no } @Yield x
- { Yes yes } @Yield @OneCol { ||0io x ||0io }
- }
- }
-
- def @AddCaptions right x
- {
-
- @HContract @VContract
- {
- | @Above |
- / @HideWidth @Left | &0.5rt x | @HideWidth @Right
- / | @Below |
- }
- }
-
- def @AddExtra right x
- {
- @HContract @VContract
- {
- /aboveextra |leftextra x |rightextra /belowextra
- }
- }
-
- def @GraphicSetup right x
- {
- {
- save @Case {
- { yes Yes } @Yield {
- "grestore save gsave" totalweight initialangle "lpiebegin"
- //
- "lpieend restore"
- }
- { no No } @Yield {
- totalweight initialangle "lpiebegin"
- //
- "lpieend"
- }
- }
- } @Graphic x
- }
-
- def @Base right x
- {
- def @Square { radius @Wide radius @High {} }
-
- @HContract @VContract {
- @Square ^| @Square
- ^/
- @Square | @Square
- /
- x
- }
- }
-
- @AddCaptions @AddExtra @GraphicSetup @Base @Body
-
- }
-}
diff --git a/include/include/pief.lpg b/include/include/pief.lpg
deleted file mode 100644
index 8350659..0000000
--- a/include/include/pief.lpg
+++ /dev/null
@@ -1,488 +0,0 @@
-%%BeginResource: procset LoutPiePrependGraphic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @Pie Jeffrey H. Kingston %
-% Version 1.0 %
-% %
-% Jeffrey H. Kingston %
-% October 2002 %
-% %
-% This file has been placed in the public domain by its author, %
-% Jeffrey H. Kingston %
-% %
-% To assist in avoiding name clashes, the names of all symbols %
-% defined here begin with "lpie". %
-% %
-% <point> is two numbers, a point. %
-% <length> is one number, a length %
-% <angle> is one number, an angle in degrees %
-% <dashlength> is one number, the preferred length of a dash %
-% %
-% The following invariant is maintained from the end of the %
-% call to lpiebegin to the beginning of the call to lpieend: %
-% %
-% lpiecentre is an executable function which leaves the two %
-% coordinates of the centre of the pie on the %
-% operand stack (signature - lpiectr <x> <y>) %
-% %
-% lpieradius is the radius of the pie %
-% %
-% lpieinitangle is the initial angle %
-% %
-% lpietotalweight is the total weight of all slices %
-% %
-% lpiecurrentweight is the total weight of all slices so far %
-% %
-% The first four are constants set by lpiebegin; the last is %
-% updated as each slice is printed. %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% install error handler into error dictionary
-errordict begin
- /handleerror
- {
- { /Times-Roman findfont 8 pt scalefont setfont
- 0 setgray 4 pt 4 pt moveto
- $error /errorname get
- dup lpiedict exch known
- { lpiedict exch get }
- { 100 string cvs } ifelse
- show
- ( Command: ) show
- $error /command get 100 string cvs show
- } stopped {} if
- showpage stop
- } def
-end
-
-% initial coordinates of debug output
-/lpiedebugposy 432 def
-/lpiedebugposx 72 def
-
-% <string> <int> lpiedebugprint -
-% must be defined outside lpiedict since used in arbitrary places
-% print <string> plus count or <int> stack entries, whichever is the smaller
-/lpiedebugprint
-{
- exch
- gsave
- initgraphics
- lpiedebugposy 72 lt
- { /lpiedebugposx lpiedebugposx 144 add store
- /lpiedebugposy 432 store
- }
- {
- /lpiedebugposy lpiedebugposy 12 sub store
- } ifelse
- lpiedebugposx lpiedebugposy moveto
- /Times-Roman findfont 10 scalefont setfont
- 0 setgray show
- count 1 sub 2 copy lt { pop } { exch pop } ifelse 1 sub
- 0 exch 1 exch
- {
- /lpiedebugposy lpiedebugposy 12 sub store
- lpiedebugposx 12 add lpiedebugposy moveto
- index
- dup type (dicttype) eq
- {
- (begin dict) show
- {
- /lpiedebugposy lpiedebugposy 12 sub store
- lpiedebugposx 24 add lpiedebugposy moveto
- pop 100 string cvs show
- } forall
- /lpiedebugposy lpiedebugposy 12 sub store
- lpiedebugposx 12 add lpiedebugposy moveto
- (end dict) show
- }
- {
- dup type (arraytype) eq
- {
- dup xcheck { (executable array) } { (literal array) } ifelse show
- {
- /lpiedebugposy lpiedebugposy 12 sub store
- lpiedebugposx 24 add lpiedebugposy moveto
- 100 string cvs show
- } forall
- /lpiedebugposy lpiedebugposy 12 sub store
- lpiedebugposx 12 add lpiedebugposy moveto
- (end array) show
- }
- {
- dup xcheck { (ex: ) } { (lit: ) } ifelse show
- 100 string cvs show
- } ifelse
- } ifelse
- } for
- grestore
-} def
-
-% name lpiedebugpoint -
-/lpieshowpoint
-{
- dup cvx exec moveto 20 string cvs show newpath
-} def
-
-% begin pie: <totalweight> <initialangle> lpiebegin -
-% must be defined outside lpiedict since it loads it
-/lpiebegin
-{ lpiedict begin
- 20 dict begin
- xmark ymark /lpiecentre lpiepointdef
- /lpieradius xmark def
- /lpieinitialangle exch def
- /lpietotalweight exch def
- /lpiecurrentweight 0 def
-} def
-
-% end pie: - lpieend -
-/lpieend
-{
- end
- end
-} def
-
-% pie dictionary
-/lpiedict 200 dict def
-
-% subsequent definitions are held within the pie dictionary
-lpiedict begin
-
-% error messages
-/syntaxerror (syntaxerror error: syntax error in text of pie chart?) def
-/typecheck (typecheck error: syntax error in text of pie chart?) def
-/undefined (undefined error: unknown or misspelt label?) def
-/VMError (VMError error: run out of memory?) def
-
-% maximum of two numbers: <num> <num> lpiemax <num>
-/lpiemax { 2 copy gt { pop } { exch pop } ifelse } def
-
-% minimum of two numbers: <num> <num> lpiemin <num>
-/lpiemin { 2 copy lt { pop } { exch pop } ifelse } def
-
-% add two points: <point> <point> lpiepadd <point>
-/lpiepadd
-{
- % (Entering padd) 4 lpiedebugprint
- exch 3 1 roll add 3 1 roll add exch
- % (Leaving padd) 2 lpiedebugprint
-} def
-
-% subtract first point from second: <point> <point> lpiepsub <point>
-/lpiepsub { 3 2 roll sub 3 1 roll exch sub exch } def
-
-% max two points: <point> <point> lpiepmax <point>
-/lpiepmax { exch 3 1 roll lpiemax 3 1 roll lpiemax exch } def
-
-% min two points: <point> <point> lpiepmin <point>
-/lpiepmin { exch 3 1 roll lpiemin 3 1 roll lpiemin exch } def
-
-% scalar multiplication: <point> <num> lpiepmul <point>
-/lpiepmul { dup 3 1 roll mul 3 1 roll mul exch } def
-
-% distance between two points: <point> <point> lpiedistance <length>
-/lpiedistance { lpiepsub dup mul exch dup mul add sqrt } def
-
-% point at angle and distance
-% <point> <length> <angle> lpieatangle <point>
-/lpieatangle { 2 copy cos mul 3 1 roll sin mul lpiepadd } def
-
-% stroke a solid line: <length> <dashlength> lpiesolid -
-/lpiesolid
-{ % (Entering lpiesolid) 2 lpiedebugprint
- gsave pop pop [] 0 setdash 1 setlinecap stroke grestore newpath
- % (Leaving lpiesolid) 0 lpiedebugprint
-} def
-
-% stroke a dashed line: <length> <dashlength> lpiedashed -
-/lpiedashed
-{ gsave
- 2 copy div 2 le 1 index 0 le or
- { exch pop 1 pt lpiemax [ exch dup ] 0 setdash }
- { dup [ exch 4 2 roll 2 copy div
- 1 sub 2 div ceiling dup 4 1 roll
- 1 add mul sub exch div ] 0 setdash
- } ifelse 0 setlinecap stroke
- grestore newpath
-} def
-
-% stroke a cdashed line: <length> <dashlength> lpiecdashed -
-/lpiecdashed
-{ % (Entering lpiecdashed) 2 lpiedebugprint
- gsave
- 2 copy le 1 index 0 le or
- { exch pop 1 pt lpiemax [ exch dup ] dup 0 get 2 div setdash }
- { dup [ 4 2 roll exch 2 copy exch div
- 2 div ceiling div 1 index sub
- ] exch 2 div setdash
- } ifelse 0 setlinecap stroke
- grestore newpath
- % (Leaving lpiecdashed) 0 lpiedebugprint
-} def
-
-% stroke a dotted line: <length> <dashlength> lpiedotted -
-/lpiedotted
-{ gsave
- 2 copy le 1 index 0 le or
- { exch pop 1 pt lpiemax [ exch 0 exch ] 0 setdash }
- { 1 index exch div ceiling div
- [ 0 3 2 roll ] 0 setdash
- } ifelse 1 setlinecap stroke
- grestore newpath
-} def
-
-% stroke a noline line: <length> <dashlength> lpienoline -
-/lpienoline
-{ pop pop
-} def
-
-% label a point in current dictionary: <point> /name lpiepointdef -
-/lpiepointdef
-{
- % (Entering lpiepointdef) 3 lpiedebugprint
- [ 4 2 roll transform /itransform cvx ] cvx def
- % (Leaving lpiepointdef) 0 lpiedebugprint
-} def
-
-% find the angle that the current slice starts at
-% - lpiesliceangle1 <angle>
-/lpiesliceangle1
-{ lpiecurrentweight lpietotalweight div 360 mul lpieinitialangle add
-} def
-
-% find the angle that the current slice stops at
-% - lpiesliceangle2 <angle>
-/lpiesliceangle2
-{ weight lpiecurrentweight add lpietotalweight div 360 mul lpieinitialangle add
-} def
-
-% find the angle that bisects the current slice
-% - lpieslicemidangle <angle>
-/lpieslicemidangle
-{ weight 2 div lpiecurrentweight add lpietotalweight div 360 mul lpieinitialangle add
-} def
-
-% update the total weight
-% - lpieupdateweight -
-/lpieupdateweight
-{ weight lpiecurrentweight add /lpiecurrentweight exch def
-} def
-
-% find the apex of the slice
-% - lpiesliceapex <x> <y>
-/lpiesliceapex
-{ lpiecentre lpieradius detach mul lpieslicemidangle lpieatangle
-} def
-
-% find the end of the first arm of the slice
-% - lpieslicearm1 <x> <y>
-/lpieslicearm1
-{ lpiesliceapex lpieradius lpiesliceangle1 lpieatangle
-} def
-
-% find the end of the second arm of the slice
-% - lpieslicearm2 <x> <y>
-/lpieslicearm2
-{ lpiesliceapex lpieradius lpiesliceangle2 lpieatangle
-} def
-
-% set the whole closed path for the current slice
-% - lpiesetslicepath -
-/lpiesetslicepath
-{ newpath lpiesliceapex moveto
- currentpoint lpieradius lpiesliceangle1 lpiesliceangle2 arc
- closepath
-} def
-
-% set the first segment of the current slice and return its length
-% - lpiesetsegment1 <length>
-/lpiesetsegment1
-{ newpath lpiesliceapex moveto lpieslicearm1 lineto
- lpieradius
-} def
-
-% set the second segment of the current slice and return its length
-% - lpiesetsegment2 <length>
-/lpiesetsegment2
-{ newpath lpiesliceapex moveto lpieslicearm2 lineto
- lpieradius
-} def
-
-% set the arc segment of the current slice and return its length
-% - lpiesetarcsegment <length>
-/lpiesetarcsegment
-{ newpath
- lpiesliceapex lpieradius lpiesliceangle1 lpiesliceangle2 arc
- lpiesliceangle2 lpiesliceangle1 sub 180 div 3.14159 mul lpieradius mul
-} def
-
-% draw one slice
-% <dashlength> [ <outlinecommand> ] <outlinewidth> { <paintcommand> }
-% <weight> <detach> lpiedrawslice -
-/lpiebeginslice
-{
- % (Entering lpiebeginslice) 6 lpiedebugprint
- /detach exch def
- /weight exch def
-
- % paint the slice
- gsave lpiesetslicepath exec grestore
-
- % set the line width
- setlinewidth
-
- % stroke each segment separately to get dashes right
- 2 copy lpiesetsegment1 3 1 roll
- dup length 0 exch mod get cvx
- % (Stroking segment1) count 1 sub lpiedebugprint
- exec
-
- 2 copy lpiesetarcsegment 3 1 roll
- dup length 1 exch mod get cvx
- % (Stroking arc segment) count 1 sub lpiedebugprint
- exec
-
- lpiesetsegment2 3 1 roll
- dup length 2 exch mod get cvx
- % (Stroking segment2) count 1 sub lpiedebugprint
- exec
-
- % (Leaving lpiebeginslice) 0 lpiedebugprint
-} def
-
-% finish off one slice
-/lpieendslice
-{
- % (Entering lpieendslice) 0 lpiedebugprint
-
- % update current weight ready for next slice
- lpieupdateweight
-
- % (Leaving lpieendslice) 0 lpiedebugprint
-} def
-
-% translate label
-% <xadjust> <yadjust> <labelradius> lpietranslatelabel -
-/lpietranslatelabel
-{
- % (Entering lpietranslatelabel) 3 lpiedebugprint
- /labelradius exch def
- % lpiecentre (lpiecentre:) 2 lpiedebugprint pop pop
- % lpieradius (lpieradius:) 1 lpiedebugprint pop
- % labelradius (labelradius:) 1 lpiedebugprint pop
- % lpieslicemidangle (lpieslicemidangle:) 1 lpiedebugprint pop
- xsize 2 div ysize 2 div /labelcentre lpiepointdef
- labelcentre
- lpiesliceapex lpieradius labelradius mul lpieslicemidangle lpieatangle lpiepsub
- lpiepadd
- translate
- % (Leaving lpietranslatelabel) 0 lpiedebugprint
-} def
-
-% fix an angle to 0 <= res < 360: <angle> lpiefixangle <angle>
-/lpiefixangle
-{
- % (Entering lpiefixangle) 1 lpiedebugprint
- { dup 0 ge { exit } if
- 360 add
- } loop
- { dup 360 lt { exit } if
- 360 sub
- } loop
- % (Leaving lpiefixangle) 1 lpiedebugprint
-} def
-
-% angle from one point to another
-% <point> <point> lpieangleto <angle>
-/lpieangleto {
- lpiepsub 2 copy 0 eq exch 0 eq and {pop} {exch atan} ifelse
-} def
-
-% find point on circumference of box: alpha a b lpieboxcircum x y
-/lpieboxcircum
-{
- % (Entering lpieboxcircum) 3 lpiedebugprint
- 4 dict begin
- /b exch def
- /a exch def
- lpiefixangle /alpha exch def
- 0 0 a b lpieangleto /theta exch def
- % a (a:) 1 lpiedebugprint pop
- % b (b:) 1 lpiedebugprint pop
- % theta (theta:) 1 lpiedebugprint pop
- % alpha (alpha:) 1 lpiedebugprint pop
-
- % if alpha <= theta, return (a, a*tan(alpha))
- alpha theta le
- { a a alpha sin mul alpha cos div }
- {
- % else if alpha <= 180 - theta, return (b*cot(alpha), b)
- alpha 180 theta sub le
- { b alpha cos mul alpha sin div b }
- {
- % else if alpha <= 180 + theta, return (-a, -a*tan(alpha))
- alpha 180 theta add le
- { a neg a neg alpha sin mul alpha cos div }
- {
- % else if alpha <= 360 - theta, return (-b*cot(alpha), -b)
- alpha 360 theta sub le
- { b neg alpha cos mul alpha sin div b neg }
- {
- % else 360 - theta <= alpha, return (a, a*tan(alpha))
- a a alpha sin mul alpha cos div
- } ifelse
- } ifelse
- } ifelse
- } ifelse
- end
- % (Leaving lpieboxcircum) 2 lpiedebugprint
-} def
-
-
-% draw finger (will immediately follow lpietranslatelabel)
-% <fingerdashlength> "[" <fingerstyle> "]" fingerwidth
-% <fingeradjustx> <fingeradjusty> <fingerradius> lpiedrawfinger -
-/lpiedrawfinger
-{
- % (Entering lpidrawfinger) 6 lpiedebugprint
- % find inner endpoint of finger
- /fingerradius exch def
- lpiesliceapex lpieradius fingerradius mul
- lpieslicemidangle lpieatangle lpiepadd
- /fingerinner lpiepointdef
- xsize 2 div ysize 2 div /labelcentre lpiepointdef
- 0 0 /labelorigin lpiepointdef
-
- % find outer endpoint of finger, on circumference of label
- labelcentre fingerinner lpieangleto
- xsize 2 div ysize 2 div
- lpieboxcircum labelcentre lpiepadd
- /fingerouter lpiepointdef
-
- % set the line width
- setlinewidth
-
- % draw line
- newpath fingerinner moveto fingerouter lineto
- fingerinner fingerouter lpiedistance 3 1 roll 0 get cvx exec
- % (Leaving lpiedrawfinger) 0 lpiedebugprint
-} def
-
-% draw arrowhead (will immediately follow lpiedrawfinger if reqd)
-% <headlength> <headwidth> lpiedrawarrowhead
-/lpiedrawarrowhead
-{
- gsave
- /headwidth exch def
- /headlength exch def
- fingerinner translate
- fingerouter fingerinner lpieangleto rotate
- 0 0 moveto
- headlength neg headwidth 2 div lineto
- 0 headwidth neg rlineto
- closepath fill
- grestore
-} def
-end
-%%EndResource
diff --git a/include/include/pod b/include/include/pod
deleted file mode 100644
index 9bfd373..0000000
--- a/include/include/pod
+++ /dev/null
@@ -1,178 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Pod documentation printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-# Note: although Pod is treated like a programming language in some #
-# respects, the setup file options below are largely unrelated to #
-# the setup file options for other languages. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { podf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-# Pod has two quite different kinds of paragraphs: verbatim and non- #
-# verbatim. When we say "verbatim" and "text" below we refer to these. #
-# There is no paragraph breaking option for verbatim since line breaks #
-# are honoured. #
-# #
-# As you can see below, we have been obliged to give "Times Base" as #
-# the default text font for varying style, rather than the usual empty, #
-# to get a varying-width font when Pod is embedded in fixed-width Perl. If #
-# you are using a different text font family in your document you will have #
-# to change this option if you want your varying-width Pod in that family. #
-# #
-###############################################################################
-
-@Use { @PodSetup
- # pipe { } # pipe source through this
- # style { varying @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedtextfont { Courier Base -1p } # text font
- # fixedtextbreak { adjust 1.0vx hyphen } # text para breaking
- # fixedverbatimfont { Courier Base } # verbatim font
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
- # fixedlinenumbersfont { } # line numbers font
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # fixedparagap { 1.0v } # gap between paras
- # fixedlistgap { 1.0v } # gap within lists
- # fixedlistindent { 0s } # list label indent
- # fixedlistrightindent { 0s } # list right indent
- # fixedlistlabelwidth { 2.0f } # default label space
- # fixedlistlabelfont { } # list label font
- # fixedlistlabelformat { @Body } # list label format
-
- # fixedaheadfont { Bold +4p } # =head1 font
- # fixedaheadbreak { lines 1.1vx } # =head1 para break
- # fixedaheadformat { @DP @Body } # =head1 format
- # fixedbheadfont { Bold +2p } # =head2 font
- # fixedbheadbreak { lines 1.1vx } # =head2 para break
- # fixedbheadformat { @Body } # =head2 format
- # fixedcheadfont { Bold } # =head3 font
- # fixedcheadbreak { lines 1.1vx } # =head3 para break
- # fixedcheadformat { @Body } # =head3 format
-
- # fixeditalicfont { Slope } # font of I<>
- # fixeditalicformat { @Body } # format of I<>
- # fixedboldfont { Bold } # font of B<>
- # fixedboldformat { @Body } # format of B<>
- # fixedcodefont { Base } # font of C<>
- # fixedcodeformat { @Body } # format of C<>
- # fixedfilefont { Slope } # font of F<>
- # fixedfileformat { @Body } # format of F<>
- # fixedlinkfont { Slope } # font of L<>
- # fixedlinkformat { @Underline @Body } # format of L<>
- # fixedindexfont { Slope } # font of X<>
- # fixedindexformat { @Body } # format of X<>
-
-
- # the following options apply when style is "varying"
-
- # varyingtextfont { Times Base } # text font
- # varyingtextbreak { adjust 1.0vx hyphen } # text para breaking
- # varyingverbatimfont { Courier Base -1p } # verbatim font
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 8s } # tab width
- # varyinglinenumbersfont { } # line numbers font
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # varyingparagap { 1.0v } # gap between paras
- # varyinglistgap { 1.0v } # gap within lists
- # varyinglistindent { 0s } # list label indent
- # varyinglistrightindent { 0s } # list right indent
- # varyinglistlabelwidth { 2.0f } # default label space
- # varyinglistlabelfont { } # list label font
- # varyinglistlabelformat { @Body } # list label format
-
- # varyingaheadfont { Bold +4p } # =head1 font
- # varyingaheadbreak { lines 1.1vx } # =head1 para break
- # varyingaheadformat { @DP @Body } # =head1 format
- # varyingbheadfont { Bold +2p } # =head2 font
- # varyingbheadbreak { lines 1.1vx } # =head2 para break
- # varyingbheadformat { @Body } # =head2 format
- # varyingcheadfont { Bold } # =head3 font
- # varyingcheadbreak { lines 1.1vx } # =head3 para break
- # varyingcheadformat { @Body } # =head3 format
-
- # varyingitalicfont { Slope } # font of I<>
- # varyingitalicformat { @Body } # format of I<>
- # varyingboldfont { Bold } # font of B<>
- # varyingboldformat { @Body } # format of B<>
- # varyingcodefont { Courier Base -1p } # font of C<>
- # varyingcodeformat { @Body } # format of C<>
- # varyingfilefont { Slope } # font of F<>
- # varyingfileformat { @Body } # format of F<>
- # varyinglinkfont { Slope } # font of L<>
- # varyinglinkformat { @Underline @Body } # format of L<>
- # varyingindexfont { Slope } # font of X<>
- # varyingindexformat { @Body } # format of X<>
-
- # the following options apply when style is "symbol"
-
- # symboltextfont { Times Base } # text font
- # symboltextbreak { adjust 1.0vx hyphen } # text para breaking
- # symbolverbatimfont { Courier Base -1p } # verbatim font
- # symboltabin { 8 } # tab interval
- # symboltabout { 8s } # tab width
- # symbollinenumbersfont { } # line numbers font
- # symbollinenumbersformat { @Body } # line numbers format
-
- # symbolparagap { 1.0v } # gap between paras
- # symbollistgap { 1.0v } # gap within lists
- # symbollistindent { 0s } # list label indent
- # symbollistrightindent { 0s } # list right indent
- # symbollistlabelwidth { 2.0f } # default label space
- # symbollistlabelfont { } # list label font
- # symbollistlabelformat { @Body } # list label format
-
- # symbolaheadfont { Bold +4p } # =head1 font
- # symbolaheadbreak { lines 1.1vx } # =head1 para break
- # symbolaheadformat { @DP @Body } # =head1 format
- # symbolbheadfont { Bold +2p } # =head2 font
- # symbolbheadbreak { lines 1.1vx } # =head2 para break
- # symbolbheadformat { @Body } # =head2 format
- # symbolcheadfont { Bold } # =head3 font
- # symbolcheadbreak { lines 1.1vx } # =head3 para break
- # symbolcheadformat { @Body } # =head3 format
-
- # symbolitalicfont { Slope } # font of I<>
- # symbolitalicformat { @Body } # format of I<>
- # symbolboldfont { Bold } # font of B<>
- # symbolboldformat { @Body } # format of B<>
- # symbolcodefont { Courier Base -1p } # font of C<>
- # symbolcodeformat { @Body } # format of C<>
- # symbolfilefont { Slope } # font of F<>
- # symbolfileformat { @Body } # format of F<>
- # symbollinkfont { Slope } # font of L<>
- # symbollinkformat { @Underline @Body } # format of L<>
- # symbolindexfont { Slope } # font of X<>
- # symbolindexformat { @Body } # format of X<>
-
-}
diff --git a/include/include/podf b/include/include/podf
deleted file mode 100644
index 062c09b..0000000
--- a/include/include/podf
+++ /dev/null
@@ -1,567 +0,0 @@
-
-###############################################################################
-# #
-# Lout @PodSetup package for formatting Pod programs #
-# #
-# Jeffrey H. Kingston #
-# 25 March 2000 #
-# #
-# This package uses a filtered body parameter to convert Pod source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Pod
-def @PodSetup
- named pipe { } # pipe through this first
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { varying @OrIfPlain fixed } # print style
-
-
- # the following options apply when style is "fixed"
-
- named fixedtextfont { Courier Base -1p } # text font
- named fixedtextbreak { adjust 1.0vx hyphen } # text para breaking
- named fixedverbatimfont { Courier Base } # verbatim font
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
- named fixedlinenumbersfont { } # line numbers font
- named fixedlinenumbersformat right @Body{ @Body } # line numbers format
-
- named fixedparagap { 1.0v } # gap between paras
- named fixedlistgap { 1.0v } # gap within lists
- named fixedlistindent { 0s } # list label indent
- named fixedlistrightindent { 0s } # list right indent
- named fixedlistlabelwidth { 2.0f } # default label space
- named fixedlistlabelfont { } # list label font
- named fixedlistlabelformat right @Body { @Body } # list label format
-
- named fixedaheadfont { Bold +4p } # =head1 font
- named fixedaheadbreak { lines 1.1vx } # =head1 para break
- named fixedaheadformat right @Body { //1v @Body } # =head1 format
- named fixedbheadfont { Bold +2p } # =head2 font
- named fixedbheadbreak { lines 1.1vx } # =head2 para break
- named fixedbheadformat right @Body { @Body } # =head2 format
- named fixedcheadfont { Bold } # =head3 font
- named fixedcheadbreak { lines 1.1vx } # =head3 para break
- named fixedcheadformat right @Body { @Body } # =head3 format
-
- named fixeditalicfont { Slope } # font of I<>
- named fixeditalicformat right @Body { @Body } # format of I<>
- named fixedboldfont { Bold } # font of B<>
- named fixedboldformat right @Body { @Body } # format of B<>
- named fixedcodefont { Base } # font of C<>
- named fixedcodeformat right @Body { @Body } # format of C<>
- named fixedfilefont { Slope } # font of F<>
- named fixedfileformat right @Body { @Body } # format of F<>
- named fixedlinkfont { Slope } # font of L<>
- named fixedlinkformat right @Body { @Underline @Body } # format of L<>
- named fixedindexfont { Slope } # font of X<>
- named fixedindexformat right @Body { @Body } # format of X<>
-
-
- # the following options apply when style is "varying"
-
- named varyingtextfont { Times Base } # text font
- named varyingtextbreak { adjust 1.0vx hyphen } # text para breaking
- named varyingverbatimfont { Courier Base -1p } # verbatim font
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 8s } # tab width
- named varyinglinenumbersfont { } # line numbers font
- named varyinglinenumbersformat right @Body{ @Body } # line numbers format
-
- named varyingparagap { 1.0v } # gap between paras
- named varyinglistgap { 1.0v } # gap within lists
- named varyinglistindent { 0s } # list label indent
- named varyinglistrightindent { 0s } # list right indent
- named varyinglistlabelwidth { 2.0f } # default label space
- named varyinglistlabelfont { } # list label font
- named varyinglistlabelformat right @Body { @Body } # list label format
-
- named varyingaheadfont { Bold +4p } # =head1 font
- named varyingaheadbreak { lines 1.1vx } # =head1 para break
- named varyingaheadformat right @Body{ //1v @Body } # =head1 format
- named varyingbheadfont { Bold +2p } # =head2 font
- named varyingbheadbreak { lines 1.1vx } # =head2 para break
- named varyingbheadformat right @Body{ @Body } # =head2 format
- named varyingcheadfont { Bold } # =head3 font
- named varyingcheadbreak { lines 1.1vx } # =head3 para break
- named varyingcheadformat right @Body{ @Body } # =head3 format
-
- named varyingitalicfont { Slope } # font of I<>
- named varyingitalicformat right @Body { @Body } # format of I<>
- named varyingboldfont { Bold } # font of B<>
- named varyingboldformat right @Body { @Body } # format of B<>
- named varyingcodefont { Courier Base -1p } # font of C<>
- named varyingcodeformat right @Body { @Body } # format of C<>
- named varyingfilefont { Slope } # font of F<>
- named varyingfileformat right @Body { @Body } # format of F<>
- named varyinglinkfont { Slope } # font of L<>
- named varyinglinkformat right @Body { @Underline @Body } # format of L<>
- named varyingindexfont { Slope } # font of X<>
- named varyingindexformat right @Body{ @Body } # format of X<>
-
- # the following options apply when style is "symbol"
-
- named symboltextfont { Times Base } # text font
- named symboltextbreak { adjust 1.0vx hyphen } # text para breaking
- named symbolverbatimfont { Courier Base -1p } # verbatim font
- named symboltabin { 8 } # tab interval
- named symboltabout { 8s } # tab width
- named symbollinenumbersfont { } # line numbers font
- named symbollinenumbersformat right @Body { @Body } # line numbers format
-
- named symbolparagap { 1.0v } # gap between paras
- named symbollistgap { 1.0v } # gap within lists
- named symbollistindent { 0s } # list label indent
- named symbollistrightindent { 0s } # list right indent
- named symbollistlabelwidth { 2.0f } # default label space
- named symbollistlabelfont { } # list label font
- named symbollistlabelformat right @Body { @Body } # list label format
-
- named symbolaheadfont { Bold +4p } # =head1 font
- named symbolaheadbreak { lines 1.1vx } # =head1 para break
- named symbolaheadformat right @Body { //1v @Body } # =head1 format
- named symbolbheadfont { Bold +2p } # =head2 font
- named symbolbheadbreak { lines 1.1vx } # =head2 para break
- named symbolbheadformat right @Body { @Body } # =head2 format
- named symbolcheadfont { Bold } # =head3 font
- named symbolcheadbreak { lines 1.1vx } # =head3 para break
- named symbolcheadformat right @Body { @Body } # =head3 format
-
- named symbolitalicfont { Slope } # font of I<>
- named symbolitalicformat right @Body{ @Body } # format of I<>
- named symbolboldfont { Bold } # font of B<>
- named symbolboldformat right @Body { @Body } # format of B<>
- named symbolcodefont { Courier Base -1p } # font of C<>
- named symbolcodeformat right @Body { @Body } # format of C<>
- named symbolfilefont { Slope } # font of F<>
- named symbolfileformat right @Body { @Body } # format of F<>
- named symbollinkfont { Slope } # font of L<>
- named symbollinkformat right @Body { @Underline @Body } # format of L<>
- named symbolindexfont { Slope } # font of X<>
- named symbolindexformat right @Body { @Body } # format of X<>
-
-@Begin
-
-
- export
-
- @PV @PPG @PLG @PLI @PLRI @PLLW @PLL @PHA @PHB @PHC
- @PFI @PFB @PFC @PFF @PFL @PFX @A "$>" @PL
-
- def @Pod
- named style { style } # style
- named pipe { pipe } # pipe through this
- named textfont { dft } # text font
- named textbreak { dft } # text para breaking
- named verbatimfont { dft } # verbatim font
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named linenumbersfont { dft } # line numbers font
- named paragap { dft } # gap between paras
- named listgap { dft } # gap within lists
- named listindent { dft } # list label indent
- named listrightindent { dft } # list right indent
- named listlabelwidth { dft } # default label space
- named listlabelfont { dft } # list label font
- named aheadfont { dft } # =head1 font
- named aheadbreak { dft } # =head1 para break
- named bheadfont { dft } # =head2 font
- named bheadbreak { dft } # =head2 para break
- named cheadfont { dft } # =head3 font
- named cheadbreak { dft } # =head3 para break
- named italicfont { dft } # font of I<>
- named boldfont { dft } # font of B<>
- named codefont { dft } # font of C<>
- named filefont { dft } # font of F<>
- named linkfont { dft } # font of L<>
- named indexfont { dft } # font of X<>
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lPod" -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lPod" -o{@FilterOut}
- -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFont
- {
- textfont @Test
- iffixed { fixedtextfont }
- ifvarying { varyingtextfont }
- ifsymbol { symboltextfont }
- }
-
-
-
- def @InitBreak
- {
- textbreak @Test
- iffixed { fixedtextbreak }
- ifvarying { varyingtextbreak }
- ifsymbol { symboltextbreak }
- }
-
-
- def printverbatim
- right x
- {
- def verbfont
- {
- verbatimfont @Test
- iffixed { fixedverbatimfont }
- ifvarying { varyingverbatimfont }
- ifsymbol { symbolverbatimfont }
- }
-
- def verbatimstrut { @VContract { 0.5v @High ^/ / 0.5v @High } }
-
- @OneCol verbfont @Font x |0io verbatimstrut
- }
-
-
- macro @PV { // printverbatim }
-
-
- def paragraphgap
- {
- paragap @Test
- iffixed { fixedparagap }
- ifvarying { varyingparagap }
- ifsymbol { symbolparagap }
- }
-
-
- macro @PPG { //paragraphgap }
-
-
- def @PLG
- {
- listgap @Test
- iffixed { fixedlistgap }
- ifvarying { varyinglistgap }
- ifsymbol { symbollistgap }
- }
-
-
- def @PLI
- {
- listindent @Test
- iffixed { fixedlistindent }
- ifvarying { varyinglistindent }
- ifsymbol { symbollistindent }
- }
-
-
- def @PLRI
- {
- listrightindent @Test
- iffixed { fixedlistrightindent }
- ifvarying { varyinglistrightindent }
- ifsymbol { symbollistrightindent }
- }
-
-
- def @PLLW right x
- {
- def defaultwidth
- {
- listlabelwidth @Test
- iffixed { fixedlistlabelwidth }
- ifvarying { varyinglistlabelwidth }
- ifsymbol { symbollistlabelwidth }
- }
-
- def givenwidth
- {
- style @Case {
- fixed @Yield { x"s" }
- varying @Yield { x"f" }
- symbol @Yield { x"f" }
- }
- }
-
- x @Case {
- "" @Yield defaultwidth
- else @Yield givenwidth
- }
- }
-
-
- def @PLL right x
- {
- def bullet
- {
- @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield @Char "bullet"
- }
- }
-
- def value
- {
- x @Case {
- "*" @Yield bullet
- else @Yield x
- }
- }
-
- style @Case {
- fixed @Yield fixedlistlabelformat {
- { listlabelfont @Else fixedlistlabelfont } @Font value }
- varying @Yield varyinglistlabelformat {
- { listlabelfont @Else varyinglistlabelfont } @Font value }
- symbol @Yield symbollistlabelformat {
- { listlabelfont @Else symbollistlabelfont } @Font value }
- }
- }
-
-
- def @PHA right x
- {
- style @Case {
- fixed @Yield fixedaheadformat {
- { aheadfont @Else fixedaheadfont } @Font
- { aheadbreak @Else fixedaheadbreak } @Break x }
- varying @Yield varyingaheadformat {
- { aheadfont @Else varyingaheadfont } @Font
- { aheadbreak @Else varyingaheadbreak } @Break x }
- symbol @Yield symbolaheadformat {
- { aheadfont @Else symbolaheadfont } @Font
- { aheadbreak @Else varyingaheadbreak } @Break x }
- }
- }
-
-
- def @PHB right x
- {
- style @Case {
- fixed @Yield fixedbheadformat {
- { bheadfont @Else fixedbheadfont } @Font
- { bheadbreak @Else fixedbheadbreak } @Break x }
- varying @Yield varyingbheadformat {
- { bheadfont @Else varyingbheadfont } @Font
- { bheadbreak @Else varyingbheadbreak } @Break x }
- symbol @Yield symbolbheadformat {
- { bheadfont @Else symbolbheadfont } @Font
- { bheadbreak @Else varyingbheadbreak } @Break x }
- }
- }
-
-
- def @PHC right x
- {
- style @Case {
- fixed @Yield fixedcheadformat {
- { cheadfont @Else fixedcheadfont } @Font
- { cheadbreak @Else fixedcheadbreak } @Break x }
- varying @Yield varyingcheadformat {
- { cheadfont @Else varyingcheadfont } @Font
- { cheadbreak @Else varyingcheadbreak } @Break x }
- symbol @Yield symbolcheadformat {
- { cheadfont @Else symbolcheadfont } @Font
- { cheadbreak @Else varyingcheadbreak } @Break x }
- }
- }
-
-
- def @PFI right x
- {
- style @Case {
- fixed @Yield fixeditalicformat {
- { italicfont @Else fixeditalicfont } @Font x }
- varying @Yield varyingitalicformat {
- { italicfont @Else varyingitalicfont } @Font x }
- symbol @Yield symbolitalicformat {
- { italicfont @Else symbolitalicfont } @Font x }
- }
- }
-
-
- def @PFB right x
- {
- style @Case {
- fixed @Yield fixedboldformat {
- { boldfont @Else fixedboldfont } @Font x }
- varying @Yield varyingboldformat {
- { boldfont @Else varyingboldfont } @Font x }
- symbol @Yield symbolboldformat {
- { boldfont @Else symbolboldfont } @Font x }
- }
- }
-
-
- def @PFC right x
- {
- style @Case {
- fixed @Yield fixedcodeformat {
- { codefont @Else fixedcodefont } @Font x }
- varying @Yield varyingcodeformat {
- { codefont @Else varyingcodefont } @Font x }
- symbol @Yield symbolcodeformat {
- { codefont @Else symbolcodefont } @Font x }
- }
- }
-
-
- def @PFF right x
- {
- style @Case {
- fixed @Yield fixedfileformat {
- { filefont @Else fixedfilefont } @Font x }
- varying @Yield varyingfileformat {
- { filefont @Else varyingfilefont } @Font x }
- symbol @Yield symbolfileformat {
- { filefont @Else symbolfilefont } @Font x }
- }
- }
-
-
- def @PFL right x
- {
- style @Case {
- fixed @Yield fixedlinkformat {
- { linkfont @Else fixedlinkfont } @Font x }
- varying @Yield varyinglinkformat {
- { linkfont @Else varyinglinkfont } @Font x }
- symbol @Yield symbollinkformat {
- { linkfont @Else symbollinkfont } @Font x }
- }
- }
-
-
- def @PFX right x
- {
- style @Case {
- fixed @Yield fixedindexformat {
- { indexfont @Else fixedindexfont } @Font x }
- varying @Yield varyingindexformat {
- { indexfont @Else varyingindexfont } @Font x }
- symbol @Yield symbolindexformat {
- { indexfont @Else symbolindexfont } @Font x }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- def pl # for formatting line numbers
- right x
- {
- def strut { @VContract { 0.5v @High ^/ / 0.5v @High } }
-
- strut & style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbersfont @Else fixedlinenumbersfont } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbersfont @Else varyinglinenumbersfont } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbersfont @Else symbollinenumbersfont } @Font x
- }
- }
- }
-
-
- macro @PL { // pl }
-
-
- @InitFont @Font @InitBreak @Break @Body
-
- @End @Pod
-
-@End @PodSetup
diff --git a/include/include/python b/include/include/python
deleted file mode 100644
index c39284c..0000000
--- a/include/include/python
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Python program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { pythonf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @PythonSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { varying @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/pythonf b/include/include/pythonf
deleted file mode 100644
index 2d3f77f..0000000
--- a/include/include/pythonf
+++ /dev/null
@@ -1,450 +0,0 @@
-
-###############################################################################
-# #
-# Lout @PythonSetup package for formatting Python programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Python
-def @PythonSetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { varying @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>" "''"
-
- def @Python
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lPython" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lPython" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- export "'''"
- def @PS # for formatting strings
- body x
- {
- def "'''" { "'''" }
-
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
- def "''" { "''" }
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Python
-
-@End @PythonSetup
diff --git a/include/include/report b/include/include/report
deleted file mode 100644
index 9f58ae5..0000000
--- a/include/include/report
+++ /dev/null
@@ -1,506 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for technical reports #
-# #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-# Note: this version, released with Lout Version 3.13, is not upwardly #
-# compatible with previous versions: the @Abstract symbol must now #
-# be placed before the //, not after. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude commands for standard packages. #
-# #
-###############################################################################
-
- @SysInclude { langdefs } # language definitions
- @SysInclude { bsf } # BasicSetup package
- @SysInclude { dsf } # DocumentSetup package
- @SysInclude { reportf } # ReportSetup extension
-
-
-###############################################################################
-# #
-# @Include command for reading personal definitions from current directory. #
-# #
-###############################################################################
-
- @Include { mydefs }
-
-
-###############################################################################
-# #
-# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BasicSetup
- # @InitialFont { Times Base 12p } # initial font
- # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}}
- # @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- # @InitialSpace { lout } # initial space style
- # @InitialLanguage { English } # initial language
- # @InitialColour { black } # initial colour
- # @InitialBackgroundColour { white } # initial background colour
- # @OptimizePages { No } # optimize page breaks?
- # @HeadingFont { Bold } # font for @Heading
- # @FixedWidthFont { Courier Base -1p } # font for @F
- # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP
- # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays
- # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent
- # @DefaultIndent { 0.5rt } # @Display indent
- # @DisplayNumStyle { (num) } # style of display numbers
- # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent
- # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent
- # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists
- # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items
- # @ListIndent { 0s } # indent of list items
- # @ListRightIndent { 0s } # right indent of list items
- # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags
- # @ListLabelRight { No } # right-adjust list labels
- # @ListLabelRightGap { 2s } # gap when right-adjusting
- # @ListFont { } # font of list items
- # @ListBreak { } # break style of list items
- # @NumberSeparator { . } # separates nums like 2.3.7
- # @CrossLinkFormat { @Body } # format of cross links
- # @ExternalLinkFormat { @Body } # format of external links
-}
-
-
-###############################################################################
-# #
-# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DocumentSetup
- # @PageType { A4 @OrIfPlain Other} # page type (width, height)
- # @PageWidth { 80s } # page width if type Other
- # @PageHeight { 66f } # page height if type Other
- # @PageOrientation { Portrait } # Portrait, Landscape, etc.
- # @PageBackground { } # background of each page
- # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages
- # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages
- # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages
- # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages
- # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages
- # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages
- # @OddLeftBodyMargin { 0c } # extra margin for page body
- # @OddRightBodyMargin { 0c } # extra margin for page body
- # @EvenLeftBodyMargin { 0c } # extra margin for page body
- # @EvenRightBodyMargin{ 0c } # extra margin for page body
- # @PageBoxType { None } # None Box CurveBox ShadowBox
- # @PageBoxMargin { 1.00c } # page box margin
- # @PageBoxLineWidth { } # page box line thickness
- # @PageBoxPaint { none } # page box paint
- # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- # @PageEnclose { @Body } # enclose every page in this
- # @ColumnNumber { 1 } # number of columns (1 to 10)
- # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- # @FigureLocation { PageTop } # default figure location
- # @FigureFormat { @CC @Body } # default figure format
- # @FigureWord { figure } # "Figure" word else anything
- # @FigureNumbers { Arabic } # method of numbering figures
- # @FigureCaptionPos { Below } # Above or Below
- # @FigureCaptionFont { -2p } # figure caption font
- # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFigureContents { No } # list of figures at start
-
- # @TableLocation { PageTop } # default table location
- # @TableFormat { @CC @Body } # default table format
- # @TableWord { table } # "Table" word else anything
- # @TableNumbers { Arabic } # method of numbering tables
- # @TableCaptionPos { Below } # Above or Below
- # @TableCaptionFont { -2p } # table caption font
- # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break
- # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeTableContents { No } # list of tables at start
-
- # @FloaterLocation { PageTop } # default floater location
- # @FloaterFormat { @CC @Body } # default floater format
- # @FloaterWord { floater } # "Floater" word else anything
- # @FloaterNumbers { Arabic } # method of numbering floaters
- # @FloaterCaptionPos { Below } # Above or Below
- # @FloaterCaptionFont { -2p } # floater caption font
- # @FloaterCaptionBreak{ adjust hyphen 1.2fx } # floater caption break
- # @FloaterCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFloaterContents{ No } # list of floaters at start
-
- # @MakeContents { No } # make contents? Yes or No
- # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- # @ContentsGapAbove { 0.80v @OrIfPlain 1f } # extra gap above major entry
- # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- # @ContentsFont { Bold } # font for major entry
- # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry
- # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry
- # @ContentsFormat { number @DotSep title } # contents entry format
- # @ContentsLeader { .. } # leader symbol in contents
- # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- # @MakeReferences { Yes } # make references? Yes or No
- # @RefCiteStyle { [cite] } # citation style
- # @RefCiteLabels { @RefNum } # citation items
- # @RefNumbers { Arabic } # reference numbers
- # @RefListFormat { Labels } # NoLabels, Labels, etc.
- # @RefListLabels { [@RefNum] } # ref list label format
- # @RefListTitle { references } # title of reference list
- # @ChapRefListTitle { references } # title of chapter ref list
- # @RefListIndent { 0s } # indent to left of labels
- # @RefListRightIndent { 0s } # indent to right of items
- # @RefListGap { @ListGap } # gap between ref list items
- # @RefListFont { } # font used in reference list
- # @RefListBreak { } # break style of ref list
- # @RefListLabelWidth { @ListLabelWidth } # Labels column width
- # @RefListSortKey { @Tag } # sorting key
-
- # @MakeGlossary { No } # make glossary? Yes or No
- # @GlossaryText { @Null } # glossary initial text
- # @GlossaryFont { } # glossary entries font
- # @GlossaryBreak { } # glossary entries break
- # @GlossaryFormat { +3p @Font @S @Name # glossary entries format
- # @Right @I { @Word&&page @PageNum }
- # @DP @RawIndentedDisplay @Body }
- # @GlossaryGap { @DisplayGap } # gap between glossary entries
- # @GlossaryColumnNumber{ 2 } # glossary columns (1 to 10)
- # @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- # @InGlossaryFont { smallcaps } # font for @InGlossary
- # @InGlossaryFormat { @Body } # format for @InGlossary
-
- # @MakeIndex { No } # make index? Yes or No
- # @IndexText { @Null } # index initial text
- # @IndexFont { } # index entries font
- # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexFormat { @Body } # @Index format
- # @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
- # @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
- # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexTypeMain { @B @PageNum } # Main pagenum format
- # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexRangeFormat { @From--@To } # index page range format
- # @IndexColumnNumber { 2 } # index columns (1 to 10)
- # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- # @IndexCtd { Yes } # include (ctd.) lines
- # @IndexCtdWord { continued } # "ctd." in current lang.
- # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexSpacerAbove { 2v } # space above index spacer
- # @IndexSpacerBelow { 1v } # space below index spacer
- # @IndexSpacerFont { +3p } # font of index spacer
- # @IndexSpacerFormat { @Body } # format of index spacer
-
- # @MakeIndexA { No } # make index A? Yes or No
- # @IndexAText { @Null } # index A initial text
- # @IndexAFont { } # index A entries font
- # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexAFormat { @Body } # @IndexA format
- # @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
- # @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
- # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexATypeMain { @B @PageNum } # Main pagenum format
- # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexARangeFormat { @From--@To } # index page range format
- # @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- # @IndexACtd { Yes } # include (ctd.) lines
- # @IndexACtdWord { continued } # "ctd." in current lang.
- # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexASpacerAbove { 2v } # space above index A spacer
- # @IndexASpacerBelow { 1v } # space below index A spacer
- # @IndexASpacerFont { +3p } # font of index A spacer
- # @IndexASpacerFormat { @Body } # format of index A spacer
-
- # @MakeIndexB { No } # make index B? Yes or No
- # @IndexBText { @Null } # index B initial text
- # @IndexBFont { } # index B entries font
- # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexBFormat { @Body } # @IndexB format
- # @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
- # @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
- # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexBTypeMain { @B @PageNum } # Main pagenum format
- # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexBRangeFormat { @From--@To } # index page range format
- # @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- # @IndexBCtd { Yes } # include (ctd.) lines
- # @IndexBCtdWord { continued } # "ctd." in current lang.
- # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexBSpacerAbove { 2v } # space above index B spacer
- # @IndexBSpacerBelow { 1v } # space below index B spacer
- # @IndexBSpacerFont { +3p } # font of index B spacer
- # @IndexBSpacerFormat { @Body } # format of index B spacer
-
- # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- # @FootNoteNumbers { Arabic } # footnote numbers
- # @FootNoteThrough { No } # numbered through chapter?
- # @FootNoteLocation { ColFoot } # where the footnote appears
- # @FootNoteFont { 0.80f } # font for footnotes
- # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format
- # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- # @FootAboveGap { @DisplayGap } # gap above footnote line
- # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
- # @MarginNoteFont { 0.80f } # font of margin notes
- # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- # @MarginNoteHGap { 0.5c } # horizontal gap to notes
- # @MarginNoteVGap { @DisplayGap } # min vertical gap between
- # @MarginNoteWidth { 1.50c } # width of margin notes
- # @EndNoteNumbers { Arabic } # endnote numbers
- # @EndNoteFont { 0.80f } # font of endnotes
- # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format
- # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- # @TheoremWord { theorem } # "Theorem" word, etc.
- # @TheoremTitleFormat { (title) } # only if title present
- # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @DefinitionWord { definition } # "Definition" word, etc.
- # @DefinitionTitleFormat { (title) } # only if title present
- # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ClaimWord { claim } # "Claim" word, etc.
- # @ClaimTitleFormat { (title) } # only if title present
- # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @PropositionWord { proposition } # "Proposition" word, etc.
- # @PropositionTitleFormat { (title) } # only if title present
- # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @LemmaWord { lemma } # "Lemma" word, etc.
- # @LemmaTitleFormat { (title) } # only if title present
- # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @CorollaryWord { corollary } # "Corollary" word, etc.
- # @CorollaryTitleFormat { (title) } # only if title present
- # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ExampleWord { example } # "Example" word, etc.
- # @ExampleTitleFormat { (title) } # only if title present
- # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ProofWord { proof } # "Proof" word, etc.
-
- # @PageHeaders { Simple } # None Simple Titles NoTitles
- # @PageNumbers { Arabic } # page numbers
- # @FirstPageNumber { 1 } # number of first page
- # @IntroPageNumbers { Roman } # intro page numbers
- # @IntroFirstPageNumber{ 1 } # number of first intro page
- # @StructPageNums { No } # make structured page numbers
- # @PageNumberFormat { number } # format of all page numbers
-
- # @OddTop { @Centre{- @PageNum -} } # Simple page headers
- # @OddFoot { @Null }
- # @EvenTop { @Centre{- @PageNum -} }
- # @EvenFoot { @Null }
- # @StartOddTop { @Null }
- # @StartOddFoot { @Null }
- # @StartEvenTop { @Null }
- # @StartEvenFoot { @Null }
- # @IntroOddTop { @Null }
- # @IntroOddFoot { @Centre @PageNum }
- # @IntroEvenTop { @Null }
- # @IntroEvenFoot { @Centre @PageNum }
- # @IntroStartOddTop { @Null }
- # @IntroStartOddFoot { @Null }
- # @IntroStartEvenTop { @Null }
- # @IntroStartEvenFoot { @Null }
-
- # Titles, NoTitles headers
- # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum }
- # @RunningOddFoot { @Null }
- # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} }
- # @RunningEvenFoot { @Null }
- # @RunningStartOddTop { @Null }
- # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningStartEvenTop { @Null }
- # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }
- # @RunningIntroOddTop { @Null }
- # @RunningIntroOddFoot { @Right @PageNum }
- # @RunningIntroEvenTop { @Null }
- # @RunningIntroEvenFoot { @PageNum }
- # @RunningIntroStartOddTop { @Null }
- # @RunningIntroStartOddFoot { @Null }
- # @RunningIntroStartEvenTop { @Null }
- # @RunningIntroStartEvenFoot { @Null }
-}
-
-
-###############################################################################
-# #
-# The @ReportSetup @Use clause - options specific to technical reports. #
-# #
-###############################################################################
-
-@Use { @ReportSetup
- # @CoverSheet { Yes } # make cover sheet
- # @ContentsSeparate { No } # contents on separate pages
- # @DateLine { No } # Yes, No, or a date
- # @AboveTitleGap { 1i } # space above title
- # @TitleFont { Bold } # title font
- # @TitleBreak { clines 1.4vx } # title break
- # @AuthorFont { Slope } # author font
- # @AuthorBreak { clines } # author break
- # @InstitutionFont { } # institution font
- # @InstitutionBreak { clines } # institution break
- # @DateLineFont { } # dateline font
- # @DateLineBreak { } # dateline break
- # @AbstractDisplay { No } # abstract full width display
- # @AbstractFont { } # font of abstract
- # @AbstractBreak { } # break style of abstract
- # @AbstractFormat { @Centre @Title @DP @Body } # abstract format
- # @AbstractTitle { dft } # abstract title (dft is @AbstractWord)
- # @ReferencesBeforeAppendices { No } # references before appendices
- # @AbstractWord { abstract } # word for "Abstract"
- # @ContentsWord { contents } # word for "Contents"
- # @AppendixWord { appendix } # word for "Appendix"
- # @GlossaryWord { glossary } # word for "Glossary"
- # @IndexWord { index } # word for "Index"
- # @IndexAWord { index } # word for "Index" (A)
- # @IndexBWord { index } # word for "Index" (B)
- # @SectionNumbers { Arabic } # kind of section numbers
- # @FirstSectionNumber { 1 } # first section num (Arabic)
- # @SubSectionNumbers { Arabic } # kind of subsection numbers
- # @FirstSubSectionNumber { 1 } # first subsect num (Arabic)
- # @SubSubSectionNumbers { Arabic } # kind of sub-subsect numbers
- # @FirstSubSubSectionNumber { 1 } # first subsub. num (Arabic)
- # @AppendixNumbers { UCAlpha } # kind of appendix numbers
- # @FirstAppendixNumber { 1 } # first appendix num (Arabic)
- # @SubAppendixNumbers { Arabic } # kind of subappendix numbers
- # @FirstSubAppendixNumber { 1 } # first sub-app. num (Arabic)
- # @SubSubAppendixNumbers { Arabic } # kind of sub-subapp. numbers
- # @FirstSubSubAppendixNumber { 1 } # first sub-sub. num (Arabic)
- # @AbstractHeadingFont { Bold } # abstract head font
- # @AbstractHeadingBreak { ragged 1.2fx nohyphen } # abstract head break
- # @AbstractHeadingFormat { @Centre title } # abstract head fmt
- # @ContentsHeadingFont { Bold } # contents head font
- # @ContentsHeadingBreak { ragged 1.2fx nohyphen } # contents head break
- # @ContentsHeadingFormat { title } # contents head fmt
- # @SectionHeadingFont { Bold } # section head font
- # @SectionHeadingBreak { ragged 1.2fx nohyphen } # section head break
- # @SectionHeadingFormat { number @DotSep title } # section head fmt
- # @SubSectionHeadingFont { Bold } # subsection head font
- # @SubSectionHeadingBreak { ragged 1.2fx nohyphen } # subsection head break
- # @SubSectionHeadingFormat { number @DotSep title } # subsection head fmt
- # @SubSubSectionHeadingFont { Slope } # sub-subs. head font
- # @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } # sub-subs. head break
- # @SubSubSectionHeadingFormat { number @DotSep title } # sub-subs. head fmt
- # @AppendixHeadingFont { Bold } # appendix head font
- # @AppendixHeadingBreak { ragged 1.2fx nohyphen } # appendix head break
- # @AppendixHeadingFormat { number @DotSep title } # appendix head fmt
- # @SubAppendixHeadingFont { Bold } # subapp. head font
- # @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } # subapp. head break
- # @SubAppendixHeadingFormat { number @DotSep title } # subapp. head fmt
- # @SubSubAppendixHeadingFont { Slope } # sub-subapp. head font
- # @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } # sub-subapp head break
- # @SubSubAppendixHeadingFormat{ number @DotSep title } # sub-subapp. head fmt
- # @ReferencesHeadingFont { Bold } # references head font
- # @ReferencesHeadingBreak { ragged 1.2fx nohyphen } # references head break
- # @ReferencesHeadingFormat { title } # references head fmt
- # @GlossaryHeadingFont { Bold } # glossary head font
- # @GlossaryHeadingBreak { ragged 1.2fx nohyphen } # glossary head break
- # @GlossaryHeadingFormat { title } # glossary head fmt
- # @IndexHeadingFont { Bold } # index head font
- # @IndexHeadingBreak { ragged 1.2fx nohyphen } # index head break
- # @IndexHeadingFormat { title } # index head fmt
- # @IndexAHeadingFont { Bold } # index A head font
- # @IndexAHeadingBreak { ragged 1.2fx nohyphen } # index A head break
- # @IndexAHeadingFormat { title } # index A head fmt
- # @IndexBHeadingFont { Bold } # index B head font
- # @IndexBHeadingBreak { ragged 1.2fx nohyphen } # index B head break
- # @IndexBHeadingFormat { title } # index B head fmt
- # @SectionGap { 2.0v @OrIfPlain 3f } # between sections
- # @SubSectionGap { 1.5v @OrIfPlain 2f } # between subsects
- # @SubSubSectionGap { 1.5v @OrIfPlain 2f } # between sub-subs.
- # @AppendixGap { 2.0v @OrIfPlain 3f } # between appendices
- # @SubAppendixGap { 1.5v @OrIfPlain 2f } # between subappendices
- # @SubSubAppendixGap { 1.5v @OrIfPlain 2f } # between sub-subapps
- # @SectionInContents { Yes } # add sections to contents
- # @SubSectionInContents { Yes } # add subsections to contents
- # @SubSubSectionInContents { No } # add sub-subsects to contents
- # @AppendixInContents { Yes } # add appendices to contents
- # @SubAppendixInContents { Yes } # add subappendices to contents
- # @SubSubAppendixInContents { No } # add sub-subapps to contents
- # @ReferencesInContents { Yes } # add references to contents
- # @GlossaryInContents { Yes } # add glossary to contents
- # @IndexInContents { Yes } # add index to contents
- # @IndexAInContents { Yes } # add index A to contents
- # @IndexBInContents { Yes } # add index B to contents
- # @SectionContentsIndent { 0f } # contents indent of sections
- # @SubSectionContentsIndent { 3f } # contents indent of subsections
- # @SubSubSectionContentsIndent{ 6f } # contents indent of sub-subsections
- # @AppendixContentsIndent { 0f } # contents indent of appendices
- # @SubAppendixContentsIndent { 3f } # contents indent of sub-appendices
- # @SubSubAppendixContentsIndent { 6f } # contents indent of sub-sub-appendices
- # @ReferencesContentsIndent { 0f } # contents indent of references
- # @GlossaryContentsIndent { 0f } # contents indent of glossary
- # @IndexContentsIndent { 0f } # contents indent of index
- # @IndexAContentsIndent { 0f } # contents indent of index A
- # @IndexBContentsIndent { 0f } # contents indent of index B
- # @SectionNumInTheorems { No } # theorem num has section num
- # @SubSectionNumInTheorems { No } # theorem num has subsect num
- # @SubSubSectionNumInTheorems { No } # theorem num has sub-ss. num
- # @AppendixNumInTheorems { No } # theorem num has appendix num
- # @SubAppendixNumInTheorems { No } # theorem num has sub-app num
- # @SubSubAppendixNumInTheorems{ No } # theorem num has sub-sa. num
- # @SectionNumInDisplays { Yes } # display num has section num
- # @SubSectionNumInDisplays { No } # display num has subsect num
- # @SubSubSectionNumInDisplays { No } # display num has sub-ss. num
- # @AppendixNumInDisplays { Yes } # display num has appendix num
- # @SubAppendixNumInDisplays { No } # display num has sub-app num
- # @SubSubAppendixNumInDisplays{ No } # display num has sub-sa. num
- # @SectionNumInFigures { No } # figure num has section num
- # @SubSectionNumInFigures { No } # figure num has subsect num
- # @SubSubSectionNumInFigures { No } # figure num has sub-ss. num
- # @AppendixNumInFigures { No } # figure num has appendix num
- # @SubAppendixNumInFigures { No } # figure num has sub-app num
- # @SubSubAppendixNumInFigures { No } # figure num has sub-sa. num
- # @SectionNumInTables { No } # table num has section num
- # @SubSectionNumInTables { No } # table num has subsect num
- # @SubSubSectionNumInTables { No } # table num has sub-ss. num
- # @AppendixNumInTables { No } # table num has appendix num
- # @SubAppendixNumInTables { No } # table num has sub-app num
- # @SubSubAppendixNumInTables { No } # table num has sub-sa. num
- # @SectionNumInFloaters { No } # floater num has section num
- # @SubSectionNumInFloaters { No } # floater num has subsect num
- # @SubSubSectionNumInFloaters { No } # floater num has sub-ss. num
- # @AppendixNumInFloaters { No } # floater num has appendix num
- # @SubAppendixNumInFloaters { No } # floater num has sub-app num
- # @SubSubAppendixNumInFloaters{ No } # floater num has sub-sa. num
- # @SectionNumInRunners { Yes } # runners have section num
- # @SubSectionNumInRunners { No } # runners have subsect num
- # @SubSubSectionNumInRunners { No } # runners have sub-ss. num
- # @AppendixNumInRunners { Yes } # runners have appendix num
- # @SubAppendixNumInRunners { No } # runners have sub-app num
- # @SubSubAppendixNumInRunners { No } # runners have sub-sa. num
- # @FigureContentsPrefix { } # for structured page nums
- # @TableContentsPrefix { } # for structured page nums
- # @FloaterContentsPrefix { } # for structured page nums
- # @SectionPrefix { } # for structured page nums
- # @AppendixPrefix { } # for structured page nums
- # @ReferencesPrefix { } # for structured page nums
- # @GlossaryPrefix { } # for structured page nums
- # @IndexPrefix { } # for structured page nums
- # @IndexAPrefix { } # for structured page nums
- # @IndexBPrefix { } # for structured page nums
-}
-
-
-###############################################################################
-# #
-# @Database (and @SysDatabase) clauses go here. #
-# #
-###############################################################################
-
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/include/include/reportf b/include/include/reportf
deleted file mode 100644
index fceb63a..0000000
--- a/include/include/reportf
+++ /dev/null
@@ -1,1030 +0,0 @@
-
-###########################################################################
-# #
-# @ReportSetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package extends DocumentSetup with definitions for reports. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @Report @Section @Appendix
-def @ReportSetup
- named @CoverSheet { Yes }
- named @ContentsSeparate { No }
- named @DateLine { No }
- named @AboveTitleGap { 1i }
- named @TitleFont { Bold }
- named @TitleBreak { clines 1.4vx }
- named @AuthorFont { Slope }
- named @AuthorBreak { clines }
- named @InstitutionFont { }
- named @InstitutionBreak { clines }
- named @DateLineFont { }
- named @DateLineBreak { }
- named @AbstractDisplay { No }
- named @AbstractFont { }
- named @AbstractBreak { }
- named @AbstractFormat
- left @Title
- right @Body { @Centre @Title @DP @Body }
- named @AbstractTitle { dft }
- named @ReferencesBeforeAppendices { No }
-
- named @AbstractWord { abstract }
- named @ContentsWord { contents }
- named @AppendixWord { appendix }
- named @GlossaryWord { glossary }
- named @IndexWord { index }
- named @IndexAWord { index }
- named @IndexBWord { index }
-
- named @SectionNumbers { Arabic }
- named @FirstSectionNumber { 1 }
- named @SubSectionNumbers { Arabic }
- named @FirstSubSectionNumber { 1 }
- named @SubSubSectionNumbers { Arabic }
- named @FirstSubSubSectionNumber { 1 }
- named @AppendixNumbers { UCAlpha }
- named @FirstAppendixNumber { 1 }
- named @SubAppendixNumbers { Arabic }
- named @FirstSubAppendixNumber { 1 }
- named @SubSubAppendixNumbers { Arabic }
- named @FirstSubSubAppendixNumber { 1 }
-
- named @AbstractHeadingFont { Bold }
- named @AbstractHeadingBreak { ragged 1.2fx nohyphen }
- named @AbstractHeadingFormat
- right title { @Centre title }
-
- named @ContentsHeadingFont { Bold }
- named @ContentsHeadingBreak { ragged 1.2fx nohyphen }
- named @ContentsHeadingFormat
- right title { title }
-
- named @SectionHeadingFont { Bold }
- named @SectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSectionHeadingFont { Bold }
- named @SubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubSectionHeadingFont { Slope }
- named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubSectionHeadingFormat
- left number right title { number @DotSep title }
-
- named @AppendixHeadingFont { Bold }
- named @AppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @AppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubAppendixHeadingFont { Bold }
- named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @SubSubAppendixHeadingFont { Slope }
- named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen }
- named @SubSubAppendixHeadingFormat
- left number right title { number @DotSep title }
-
- named @ReferencesHeadingFont { Bold }
- named @ReferencesHeadingBreak { ragged 1.2fx nohyphen }
- named @ReferencesHeadingFormat
- right title { title }
-
- named @GlossaryHeadingFont { Bold }
- named @GlossaryHeadingBreak { ragged 1.2fx nohyphen }
- named @GlossaryHeadingFormat
- right title { title }
-
- named @IndexHeadingFont { Bold }
- named @IndexHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexHeadingFormat
- right title { title }
-
- named @IndexAHeadingFont { Bold }
- named @IndexAHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexAHeadingFormat
- right title { title }
-
- named @IndexBHeadingFont { Bold }
- named @IndexBHeadingBreak { ragged 1.2fx nohyphen }
- named @IndexBHeadingFormat
- right title { title }
-
- named @SectionGap { 2.0v @OrIfPlain 3f }
- named @SubSectionGap { 1.5v @OrIfPlain 2f }
- named @SubSubSectionGap { 1.5v @OrIfPlain 2f }
- named @AppendixGap { 2.0v @OrIfPlain 3f }
- named @SubAppendixGap { 1.5v @OrIfPlain 2f }
- named @SubSubAppendixGap { 1.5v @OrIfPlain 2f }
-
- named @SectionInContents { Yes }
- named @SubSectionInContents { Yes }
- named @SubSubSectionInContents { No }
- named @AppendixInContents { Yes }
- named @SubAppendixInContents { Yes }
- named @SubSubAppendixInContents { No }
- named @ReferencesInContents { Yes }
- named @GlossaryInContents { Yes }
- named @IndexInContents { Yes }
- named @IndexAInContents { Yes }
- named @IndexBInContents { Yes }
-
- named @SectionContentsIndent { 0f }
- named @SubSectionContentsIndent { 3f }
- named @SubSubSectionContentsIndent { 6f }
- named @AppendixContentsIndent { 0f }
- named @SubAppendixContentsIndent { 3f }
- named @SubSubAppendixContentsIndent { 6f }
- named @ReferencesContentsIndent { 0f }
- named @GlossaryContentsIndent { 0f }
- named @IndexContentsIndent { 0f }
- named @IndexAContentsIndent { 0f }
- named @IndexBContentsIndent { 0f }
-
- named @SectionNumInTheorems { No }
- named @SubSectionNumInTheorems { No }
- named @SubSubSectionNumInTheorems { No }
- named @AppendixNumInTheorems { No }
- named @SubAppendixNumInTheorems { No }
- named @SubSubAppendixNumInTheorems { No }
-
- named @SectionNumInDisplays { Yes }
- named @SubSectionNumInDisplays { No }
- named @SubSubSectionNumInDisplays { No }
- named @AppendixNumInDisplays { Yes }
- named @SubAppendixNumInDisplays { No }
- named @SubSubAppendixNumInDisplays { No }
-
- named @SectionNumInFigures { No }
- named @SubSectionNumInFigures { No }
- named @SubSubSectionNumInFigures { No }
- named @AppendixNumInFigures { No }
- named @SubAppendixNumInFigures { No }
- named @SubSubAppendixNumInFigures { No }
-
- named @SectionNumInTables { No }
- named @SubSectionNumInTables { No }
- named @SubSubSectionNumInTables { No }
- named @AppendixNumInTables { No }
- named @SubAppendixNumInTables { No }
- named @SubSubAppendixNumInTables { No }
-
- named @SectionNumInFloaters { No }
- named @SubSectionNumInFloaters { No }
- named @SubSubSectionNumInFloaters { No }
- named @AppendixNumInFloaters { No }
- named @SubAppendixNumInFloaters { No }
- named @SubSubAppendixNumInFloaters { No }
-
- named @SectionNumInRunners { Yes }
- named @SubSectionNumInRunners { No }
- named @SubSubSectionNumInRunners { No }
- named @AppendixNumInRunners { Yes }
- named @SubAppendixNumInRunners { No }
- named @SubSubAppendixNumInRunners { No }
-
- named @FigureContentsPrefix { }
- named @TableContentsPrefix { }
- named @FloaterContentsPrefix { }
- named @SectionPrefix { }
- named @AppendixPrefix { }
- named @ReferencesPrefix { }
- named @GlossaryPrefix { }
- named @IndexPrefix { }
- named @IndexAPrefix { }
- named @IndexBPrefix { }
-@Begin
-
- #######################################################################
- # #
- # Lists of sections, subsections, etc. #
- # #
- #######################################################################
-
- export num
- def @SectionList named @Tag {} right num
- {
- @Galley
- //@SectionGap @SectionList @Next num
- }
-
- export num
- def @SubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSectionGap @SubSectionList @Next num
- }
-
- export num
- def @SubSubSectionList named @Tag {} right num
- {
- @Galley
- //@SubSubSectionGap @SubSubSectionList @Next num
- }
-
- export num
- def @AppendixList named @Tag {} right num
- {
- @Galley
- //@AppendixGap @AppendixList @Next num
- }
-
- export num
- def @SubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubAppendixGap @SubAppendixList @Next num
- }
-
- export num
- def @SubSubAppendixList named @Tag {} right num
- {
- @Galley
- //@SubSubAppendixGap @SubSubAppendixList @Next num
- }
-
-
- #######################################################################
- # #
- # @Full - this sends text to a full-width place. #
- # #
- #######################################################################
-
- def @Full force into { @FullPlace&&following } right x
- {
- x
- }
-
- def @NoForceFull into { @FullPlace&&following } right x
- {
- x
- }
-
-
- #######################################################################
- # #
- # @Report #
- # #
- #######################################################################
-
- def @Report
- named @Title {}
- named @Author {}
- named @Institution {}
- named @DateLine { @DateLine }
- named @CoverSheet { @CoverSheet }
- named @ContentsSeparate { @ContentsSeparate }
- named @AtEnd { dft }
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @PageOrientation { @PageOrientation }
- named @PageHeaders { @PageHeaders }
- named @ColumnNumber { @ColumnNumber }
- named @FirstPageNumber { @FirstPageNumber }
- named @OptimizePages { @OptimizePages }
- named @AbstractDisplay { @AbstractDisplay }
- named @AbstractTitle { @AbstractTitle }
- named @Abstract {}
- named @GlossaryText { @GlossaryText }
- named @IndexText { @IndexText }
- named @IndexAText { @IndexAText }
- named @IndexBText { @IndexBText }
- {
-
- def @Cntr right x
- {
- x @Case {
- "" @Yield @Null
- else @Yield { |0.5rt x | }
- }
- }
-
- def @DateValue right indent
- {
- @DateLine @Case {
- No @Yield @Null
- Yes @Yield @Date
- else @Yield @DateLine
- }
- }
-
- def @TitleMaterial
- {
- //@AboveTitleGap
- @TitleFont @Font @TitleBreak @Break @Cntr @Title
- //1.00v @AuthorFont @Font @AuthorBreak @Break @Cntr @Author
- //1.00v @InstitutionFont @Font @InstitutionBreak @Break @Cntr @Institution
- //1.00v @DateLineFont @Font @DateLineBreak @Break @Cntr @DateValue
- }
-
- def @AbstractPart
- {
- def @Title
- {
- @AbstractHeadingFont @Font @AbstractHeadingBreak @Break
- @AbstractHeadingFormat {
- @AbstractTitle @Dft { abstract @WordVal @AbstractWord }
- }
- }
-
- @Abstract @Case {
-
- "" @Yield @Null
-
- else @Yield
- {
- @AbstractFont @Font @AbstractBreak @Break
- @AbstractDisplay @Case {
-
- No @Yield { @Title @AbstractFormat @Abstract }
-
- Yes @Yield { |@DisplayIndent
- @Title @AbstractFormat @Abstract |@DisplayIndent }
- }
- }
- }
- }
-
- def @ContentsPart
- {
- // |0.5rt @ContentsHeadingFont @Font @ContentsHeadingBreak @Break
- @ContentsHeadingFormat { contents @WordVal @ContentsWord } |
- //@DisplayGap @ContentsSection
- // NonStart @Runner @MajorTitle {contents @WordVal @ContentsWord}
- }
-
- def @ReferencesPart
- named @Tag {}
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @RefHeading @RefListTitle }
- sendheader { @Body }
- headingfont { @ReferencesHeadingFont }
- headingbreak { @ReferencesHeadingBreak }
- headingformat { @ReferencesHeadingFormat @Body }
- incontents { @ReferencesInContents }
- contentsindent { @ReferencesContentsIndent }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { @RefHeading @RefListTitle }
- prefix { @ReferencesPrefix }
- inrunners { Yes }
- { //@RefListGap @ReferencesSection }
- }
-
- def @GlossaryPart
- named @Tag {}
- {
-
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { glossary @WordVal @GlossaryWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @GlossaryPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { glossary @WordVal @GlossaryWord }
- headingfont { @GlossaryHeadingFont }
- headingbreak { @GlossaryHeadingBreak }
- headingformat { @GlossaryHeadingFormat @Body }
- headingtext { @GlossaryText }
- incontents { @GlossaryInContents }
- contentsindent { @GlossaryContentsIndent }
- prefix { @GlossaryPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { glossary @WordVal @GlossaryWord }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @GlossarySection @Run
-
- }
-
- def @IndexPart
- named @Tag {}
- {
-
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexWord }
- headingfont { @IndexHeadingFont }
- headingbreak { @IndexHeadingBreak }
- headingformat { @IndexHeadingFormat @Body }
- headingtext { @IndexText }
- incontents { @IndexInContents }
- contentsindent { @IndexContentsIndent }
- prefix { @IndexPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexWord }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexSection @Run
-
- }
-
- def @IndexAPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexAWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexAPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexAWord }
- headingfont { @IndexAHeadingFont }
- headingbreak { @IndexAHeadingBreak }
- headingformat { @IndexAHeadingFormat @Body }
- headingtext { @IndexAText }
- incontents { @IndexAInContents }
- contentsindent { @IndexAContentsIndent }
- prefix { @IndexAPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexAWord }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexASection @Run
-
- }
-
- def @IndexBPart
- named @Tag {}
- {
- def @Run
- {
- NonStart @Runner
- @MajorNum {}
- @MajorTitle { index @WordVal @IndexBWord }
- @MinorNum {}
- @MinorTitle {}
- @Owner { @Tag }
- @Prefix { @IndexBPrefix }
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { index @WordVal @IndexBWord }
- headingfont { @IndexBHeadingFont }
- headingbreak { @IndexBHeadingBreak }
- headingformat { @IndexBHeadingFormat @Body }
- headingtext { @IndexBText }
- incontents { @IndexBInContents }
- contentsindent { @IndexBContentsIndent }
- prefix { @IndexBPrefix }
- inrunners { Yes }
- majornum {}
- majortitle {}
- minornum {}
- minortitle { index @WordVal @IndexBWord }
- sendheader { @Full @Body }
- innergap { @SectionGap }
- wantindefinite { Yes }
- @IndexBSection @Run
-
- }
-
- def @ContentsGap
- {
- @ContentsSeparate @Case {
- No @Yield @SectionGap
- Yes @Yield 2b
- }
- }
-
- def @ReportBodyWithoutCoverSheet force into { @ColPlace&&following }
- named @Optimize { @OptimizePages }
- {
-
- Start @Runner
- // @AbstractDisplay @NoDo @AbstractPart
- //@ContentsGap @ContentsPart
- //@ContentsGap @SectionList @FirstSectionNumber
- //@SectionGap @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- //@AppendixGap @AppendixList @FirstAppendixNumber
- //@SectionGap @EndFigureList
- //@SectionGap @EndNoteList 1
- //@SectionGap @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- // @MakeGlossary @Do @GlossaryPart
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndex @Do @IndexPart
- }
-
- def @ReportCoverSheet into { @IntroColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- // Start @Runner
- // @TitleMaterial
- //@DisplayGap @DP @AbstractPart
- }
-
- def @ReportBodyWithCoverSheet force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
-
- Start @Runner
- //@ContentsGap @ContentsPart
- //@ContentsGap @SectionList @FirstSectionNumber
- //@SectionGap @ReferencesBeforeAppendices @Do {
- @MakeReferences @Do @ReferencesPart
- }
- //@AppendixGap @AppendixList @FirstAppendixNumber
- //@SectionGap @ReferencesBeforeAppendices @NoDo {
- @MakeReferences @Do @ReferencesPart
- }
- //@SectionGap @EndFigureList
- //@SectionGap @EndNoteList 1
- // @MakeGlossary @Do @GlossaryPart
- // @MakeIndexA @Do @IndexAPart
- // @MakeIndexB @Do @IndexBPart
- // @MakeIndex @Do @IndexPart
- }
-
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- {
- @CoverSheet @Case {
-
- No @Yield {
- @FootNoteThrough @Do @BeginFootNoteCounter
- // Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginTableCounter {}
- // Yes @BeginFloaterCounter {}
- // @AbstractDisplay @Do { @NoForceFull @AbstractPart }
- // @ReportBodyWithoutCoverSheet
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- # extra { Yes }
- @AtTop { @TitleMaterial }
- @FirstPageNumber
- // NonStart @Runner
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
-
- Yes @Yield {
- @FootNoteThrough @Do @BeginFootNoteCounter
- // Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginTableCounter {}
- // Yes @BeginFloaterCounter {}
- // @SimpleOddOrEvenIntroPageList
- @ColumnNumber { 1 }
- @PageHeaders { Simple }
- @Orient { @PageOrientation }
- 1
- // @ReportCoverSheet
- // @PageList
- @ColumnNumber { @ColumnNumber }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- # extra { Yes }
- @AtTop { @TitleMaterial }
- @FirstPageNumber
- // @ReportBodyWithCoverSheet
- // NonStart @Runner
- // @AtEnd @Case {
- dft @Yield @Null
- else @Yield
- @EvenPage @Orient { @PageOrientation } @AtEnd
- }
- }
- }
- }
- }
-
-
- #######################################################################
- # #
- # Sections. #
- # #
- #######################################################################
-
- export @BeginSubSections @EndSubSections @SubSection
- def @Section force into { @SectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSectionsPlace { @Galley }
-
- def @EndSubSections force into { @EndSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSections
- {
- //@SubSectionGap @SubSectionList @FirstSubSectionNumber
- // @EndSubSectionsPlace //
- }
-
- def @SectionShortNum
- {
- @SectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionNumbers @Num @SectionList&&@Tag @Open { num }
- }
- }
- }
-
- export @BeginSubSubSections @EndSubSubSections @SubSubSection
- def @SubSection force into { @SubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubSectionsPlace { @Galley }
-
- def @EndSubSubSections force into
- { @EndSubSubSectionsPlace&&preceding }
- {}
-
- macro @BeginSubSubSections
- {
- //@SubSubSectionGap @SubSubSectionList @FirstSubSubSectionNumber
- // @EndSubSubSectionsPlace //
- }
-
- def @SubSectionShortNum
- {
- @SubSectionNumbers @Then {
- @BypassNumber @Dft {
- @SectionShortNum @Join @SubSectionNumbers @Num
- { @SubSectionList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubSection force into { @SubSubSectionList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubSectionHeadingFont }
- headingbreak { @SubSubSectionHeadingBreak }
- headingformat { @Num @SubSubSectionHeadingFormat @Body }
- incontents { @SubSubSectionInContents }
- contentsindent { @SubSubSectionContentsIndent }
- numbers { @SubSubSectionNumbers }
- attachnum { @SubSubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubSectionShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSubSectionNumInTheorems }
- indisplays { @SubSubSectionNumInDisplays }
- infigures { @SubSubSectionNumInFigures }
- intables { @SubSubSectionNumInTables }
- infloaters { @SubSubSectionNumInFloaters }
- inrunners { @SubSubSectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSectionHeadingFont }
- headingbreak { @SubSectionHeadingBreak }
- headingformat { @Num @SubSectionHeadingFormat @Body }
- incontents { @SubSectionInContents }
- contentsindent { @SubSectionContentsIndent }
- numbers { @SubSectionNumbers }
- attachnum { @SubSectionList&&preceding @Tagged @Tag }
- retrievenum { @SubSectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SectionShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSectionNumInTheorems }
- indisplays { @SubSectionNumInDisplays }
- infigures { @SubSectionNumInFigures }
- intables { @SubSectionNumInTables }
- infloaters { @SubSectionNumInFloaters }
- inrunners { @SubSectionNumInRunners }
- newpage { @NewPage }
- @Body
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SectionHeadingFont }
- headingbreak { @SectionHeadingBreak }
- headingformat { @Num @SectionHeadingFormat @Body }
- incontents { @SectionInContents }
- contentsindent { @SectionContentsIndent }
- numbers { @SectionNumbers }
- attachnum { @SectionList&&preceding @Tagged @Tag }
- retrievenum { @SectionList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SectionPrefix }
- majornum {}
- majortitle {}
- intheorems { @SectionNumInTheorems }
- indisplays { @SectionNumInDisplays }
- infigures { @SectionNumInFigures }
- intables { @SectionNumInTables }
- infloaters { @SectionNumInFloaters }
- inrunners { @SectionNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
-
- #######################################################################
- # #
- # Appendices. #
- # #
- #######################################################################
-
- export @BeginSubAppendices @EndSubAppendices @SubAppendix
- def @Appendix force into { @AppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
- def @EndSubAppendicesPlace { @Galley }
-
- def @EndSubAppendices force into { @EndSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubAppendices
- {
- //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber
- // @EndSubAppendicesPlace //
- }
-
- def @AppendixShortNum
- {
- @AppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixNumbers @Num @AppendixList&&@Tag @Open { num }
- }
- }
- }
-
- def @AppendixLongNum
- {
- @AppendixNumbers @Then {
- @InitialLanguage @Language {
- appendix @WordVal @AppendixWord @AppendixShortNum
- }
- }
- }
-
- export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix
- def @SubAppendix force into { @SubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- def @EndSubSubAppendicesPlace { @Galley }
-
- def @EndSubSubAppendices force into
- { @EndSubSubAppendicesPlace&&preceding }
- {}
-
- macro @BeginSubSubAppendices
- {
- //@SubSubAppendixGap
- @SubSubAppendixList @FirstSubSubAppendixNumber
- // @EndSubSubAppendicesPlace //
- }
-
- def @SubAppendixShortNum
- {
- @SubAppendixNumbers @Then {
- @BypassNumber @Dft {
- @AppendixShortNum @Join @SubAppendixNumbers @Num
- { @SubAppendixList&&@Tag @Open { num } }
- }
- }
- }
-
- def @SubSubAppendix force into { @SubSubAppendixList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- named @NewPage { No }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubSubAppendixHeadingFont }
- headingbreak { @SubSubAppendixHeadingBreak }
- headingformat { @Num @SubSubAppendixHeadingFormat @Body }
- incontents { @SubSubAppendixInContents }
- contentsindent { @SubSubAppendixContentsIndent }
- numbers { @SubSubAppendixNumbers }
- attachnum { @SubSubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubSubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @SubAppendixShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubSubAppendixNumInTheorems }
- indisplays { @SubSubAppendixNumInDisplays }
- infigures { @SubSubAppendixNumInFigures }
- intables { @SubSubAppendixNumInTables }
- infloaters { @SubSubAppendixNumInFloaters }
- inrunners { @SubSubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @SubAppendixHeadingFont }
- headingbreak { @SubAppendixHeadingBreak }
- headingformat { @Num @SubAppendixHeadingFormat @Body }
- incontents { @SubAppendixInContents }
- contentsindent { @SubAppendixContentsIndent }
- numbers { @SubAppendixNumbers }
- attachnum { @SubAppendixList&&preceding @Tagged @Tag }
- retrievenum { @SubAppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @AppendixShortNum }
- majornum {}
- majortitle {}
- intheorems { @SubAppendixNumInTheorems }
- indisplays { @SubAppendixNumInDisplays }
- infigures { @SubAppendixNumInFigures }
- intables { @SubAppendixNumInTables }
- infloaters { @SubAppendixNumInFloaters }
- inrunners { @SubAppendixNumInRunners }
- newpage { @NewPage }
- @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @AppendixHeadingFont }
- headingbreak { @AppendixHeadingBreak }
- headingformat { @Num @AppendixHeadingFormat @Body }
- incontents { @AppendixInContents }
- contentsindent { @AppendixContentsIndent }
- word { appendix @WordVal @AppendixWord }
- numbers { @AppendixNumbers }
- attachnum { @AppendixList&&preceding @Tagged @Tag }
- retrievenum { @AppendixList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @AppendixPrefix }
- majornum {}
- majortitle {}
- intheorems { @AppendixNumInTheorems }
- indisplays { @AppendixNumInDisplays }
- infigures { @AppendixNumInFigures }
- intables { @AppendixNumInTables }
- infloaters { @AppendixNumInFloaters }
- inrunners { Yes }
- newpage { @NewPage }
- @Body
- }
-
-@End @ReportSetup
diff --git a/include/include/rsl b/include/include/rsl
deleted file mode 100644
index 0bfa138..0000000
--- a/include/include/rsl
+++ /dev/null
@@ -1,119 +0,0 @@
-# Hey Emacs, this is -*- lout -*- !
-###############################################################################
-# #
-# Lout setup file for RSL program printing #
-# #
-# Version 1.0 #
-# Darren Bane #
-# 18 February 2003 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { rslf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @RSLSetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- # style { symbol @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { Courier } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Base } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Base } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/rslf b/include/include/rslf
deleted file mode 100644
index 1d8e937..0000000
--- a/include/include/rslf
+++ /dev/null
@@ -1,504 +0,0 @@
-# Hey Emacs, this is -*- lout -*- !
-###############################################################################
-# #
-# Lout @RSLSetup package for formatting RSL programs #
-# #
-# Version 1.0 #
-# Darren Bane #
-# 18 February 2003 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @RSL
-def @RSLSetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { symbol @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Base } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Base } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @FA @A @PartialFn @Map @PartialMap @IntChoice @ExtChoice @InfList @Interlock "$>"
-
- def @RSL
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lRSL" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lRSL" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- x @Case {
- "is" @Yield @Sym equivalence
- "exists" @Yield @Sym existential
- "all" @Yield @Sym universal
- else @Yield style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- def @PS # for formatting strings
- right x
- {
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @FA # for formatting characters from the Adobe Symbol font
- left sym
- right x
- {
- style @Case {
- symbol @Yield { sym }
- else @Yield { x }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- { { Symbol Base } @Font @Char sym } @FA x
- }
-
-
- # the following are any sizeable symbols for RSL
- # i figure they're easier to maintain here than in prg2lout.c
- def @PartialFn # -~->
- {
- @OneRow { &0.2fo @Sym similar ^/0.07f @Sym arrowright }
- }
-
-
- def @Map # -m->
- {
- @OneRow { @Sym arrowright ^/0.07f &0.2fo 0.7f @Font @I m }
- }
-
-
- def @PartialMap # -~m->
- {
- @OneRow { &0.2fo @Sym similar ^/0.07f @Sym arrowright /0.07f &0.2fo 0.7f @Font @I m }
- }
-
-
- def @IntChoice # |^|
- {
- @Sym bracketlefttp &0.5wo @Sym bracketrighttp
- }
-
-
- def @ExtChoice # |=|
- {
- { @Sym bracketlefttp &0.0fo @Sym bracketleftbt } &0.5wo
- { @Sym bracketrighttp &0.0fo @Sym bracketrightbt }
- }
-
-
- def @InfList # -inflist
- {
- @Sup { @Sym omega }
- }
-
-
- def @Interlock # ++
- {
- { -- } &0.1fo { "||" }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @RSL
-
-@End @RSLSetup
diff --git a/include/include/ruby b/include/include/ruby
deleted file mode 100644
index 76ae107..0000000
--- a/include/include/ruby
+++ /dev/null
@@ -1,118 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for Ruby program printing #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude line #
-# #
-# This line causes Lout to read the definitions for this programming #
-# language, and should not be touched. #
-# #
-###############################################################################
-
-@SysInclude { rubyf }
-
-
-###############################################################################
-# #
-# @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @RubySetup
- # pipe { } # pipe source through this
- # numbered { No } # No, Yes, or a line number
- # numberedblanks { Yes } # No or Yes
- style { fixed @OrIfPlain fixed } # fixed, varying, or symbol
-
- # the following options apply when style is "fixed"
-
- # fixedfont { LetterGothic } # font family
- # fixedsize { -1.0p } # font size
- # fixedline { 1.0vx } # line-space
- # fixedblanklinescale { 1.0 } # blank-line scale
- # fixedspace { lout } # spacing mode
- # fixedtabin { 8 } # tab interval
- # fixedtabout { 8s } # tab width
-
- # fixedidentifiers { Base } # identifier face
- # fixedkeywords { Bold } # keyword face
- # fixedoperators { Base } # operator face
- # fixednumbers { Base } # number face
- # fixedstrings { Base } # string face
- # fixedcomments { Slope } # comment face
- # fixedlinenumbers { Base } # line numbers face
-
- # fixedidentifiersformat { @Body } # identifiers format
- # fixedkeywordsformat { @Body } # keywords format
- # fixedoperatorsformat { @Body } # operators format
- # fixednumbersformat { @Body } # numbers format
- # fixedstringsformat { @Body } # strings format
- # fixedcommentsformat { @Body } # comments format
- # fixedlinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "varying"
-
- # varyingfont { } # font family
- # varyingsize { 1.0f } # font size
- # varyingline { 1.0vx } # line-space
- # varyingblanklinescale { 1.0 } # blank-line scale
- # varyingspace { lout } # spacing mode
- # varyingtabin { 8 } # tab interval
- # varyingtabout { 3f } # tab width
-
- # varyingidentifiers { Slope } # identifier face
- # varyingkeywords { Bold } # keyword face
- # varyingoperators { Base } # operator face
- # varyingnumbers { Base } # number face
- # varyingstrings { Slope } # string face
- # varyingcomments { Base } # comment face
- # varyinglinenumbers { Base } # line numbers face
-
- # varyingidentifiersformat { @Body } # identifiers format
- # varyingkeywordsformat { @Body } # keywords format
- # varyingoperatorsformat { @Body } # operators format
- # varyingnumbersformat { @Body } # numbers format
- # varyingstringsformat { @Body } # strings format
- # varyingcommentsformat { @Body } # comments format
- # varyinglinenumbersformat { @Body } # line numbers format
-
- # the following options apply when style is "symbol"
-
- # symbolfont { } # font family
- # symbolsize { 1.0f } # font size
- # symbolline { 1.0vx } # line-space
- # symbolblanklinescale { 1.0 } # blank-line scale
- # symbolspace { lout } # spacing mode
- # symboltabin { 8 } # tab interval
- # symboltabout { 3f } # tab width
-
- # symbolidentifiers { Slope } # identifier face
- # symbolkeywords { Bold } # keyword face
- # symboloperators { Base } # operator face
- # symbolnumbers { Base } # number face
- # symbolstrings { Slope } # string face
- # symbolcomments { Base } # comment face
- # symbollinenumbers { Base } # line numbers face
-
- # symbolidentifiersformat { @Body } # identifiers format
- # symbolkeywordsformat { @Body } # keywords format
- # symboloperatorsformat { @Body } # operators format
- # symbolnumbersformat { @Body } # numbers format
- # symbolstringsformat { @Body } # strings format
- # symbolcommentsformat { @Body } # comments format
- # symbollinenumbersformat { @Body } # line numbers format
-}
diff --git a/include/include/rubyf b/include/include/rubyf
deleted file mode 100644
index e4636d7..0000000
--- a/include/include/rubyf
+++ /dev/null
@@ -1,449 +0,0 @@
-
-###############################################################################
-# #
-# Lout @RubySetup package for formatting Ruby programs #
-# #
-# Version 3.0 #
-# Jeffrey H. Kingston #
-# 5 April 2000 #
-# #
-# This package uses a filtered body parameter to convert program source #
-# code into Lout source. The filter program is prg2lout, which is #
-# distributed with Lout and should be compiled and installed wherever #
-# Lout itself is. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-export @Ruby
-def @RubySetup
- named pipe { } # pipe through this first
- named numbered { No } # want lines numbered?
- named blanknumbered { Yes } # blank lines numbered?
- named style
- named @OrIfPlain left x right y
- { @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { varying @OrIfPlain fixed } # print style
-
- # the following options apply when style is "fixed"
- named fixedfont { Courier }# font family
- named fixedsize { -1.0p } # font size
- named fixedline { 1.0vx } # line-space
- named fixedblanklinescale { 1.0 } # blank-line scale
- named fixedspace { lout } # spacing mode
- named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
-
- named fixedidentifiers { Base } # identifier face
- named fixedkeywords { Bold } # keyword face
- named fixedoperators { Base } # operator face
- named fixednumbers { Base } # number face
- named fixedstrings { Base } # string face
- named fixedcomments { Slope } # comment face
- named fixedlinenumbers { Base } # line numbers face
-
- named fixedidentifiersformat right @Body { @Body } # identifier format
- named fixedkeywordsformat right @Body { @Body } # keyword format
- named fixedoperatorsformat right @Body { @Body } # operators format
- named fixednumbersformat right @Body { @Body } # number format
- named fixedstringsformat right @Body { @Body } # string format
- named fixedcommentsformat right @Body { @Body } # comment format
- named fixedlinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "varying"
- named varyingfont { } # font family
- named varyingsize { 1.0f } # font size
- named varyingline { 1.0vx } # line-space
- named varyingblanklinescale { 1.0 } # blank-line scale
- named varyingspace { lout } # spacing mode
- named varyingtabin { 8 } # tab interval
- named varyingtabout { 3f } # tab width
-
- named varyingidentifiers { Slope } # identifier face
- named varyingkeywords { Bold } # keyword face
- named varyingoperators { Base } # operator face
- named varyingnumbers { Base } # number face
- named varyingstrings { Slope } # string face
- named varyingcomments { Base } # comment face
- named varyinglinenumbers { Base } # line numbers face
-
- named varyingidentifiersformat right @Body { @Body } # identifier format
- named varyingkeywordsformat right @Body { @Body } # keyword format
- named varyingoperatorsformat right @Body { @Body } # operators format
- named varyingnumbersformat right @Body { @Body } # number format
- named varyingstringsformat right @Body { @Body } # string format
- named varyingcommentsformat right @Body { @Body } # comment format
- named varyinglinenumbersformat right @Body { @Body } # line nums format
-
- # the following options apply when style is "symbol"
- named symbolfont { } # font family
- named symbolsize { 1.0f } # font size
- named symbolline { 1.0vx } # line-space
- named symbolblanklinescale { 1.0 } # blank-line scale
- named symbolspace { lout } # spacing mode
- named symboltabin { 8 } # tab interval
- named symboltabout { 3f } # tab width
-
- named symbolidentifiers { Slope } # identifier face
- named symbolkeywords { Bold } # keyword face
- named symboloperators { Base } # operator face
- named symbolnumbers { Base } # number face
- named symbolstrings { Slope } # string face
- named symbolcomments { Base } # comment face
- named symbollinenumbers { Base } # line numbers face
-
- named symbolidentifiersformat right @Body { @Body } # identifier format
- named symbolkeywordsformat right @Body { @Body } # keyword format
- named symboloperatorsformat right @Body { @Body } # operators format
- named symbolnumbersformat right @Body { @Body } # number format
- named symbolstringsformat right @Body { @Body } # string format
- named symbolcommentsformat right @Body { @Body } # comment format
- named symbollinenumbersformat right @Body { @Body } # line nums format
-
-@Begin
-
- export
-
- @PI @PK @PO @PN @PS @PC @PL @PA @PM @PD
- @A "$>"
-
- def @Ruby
- named style { style } # style
- named numbered { numbered } # want numbered lines?
- named blanknumbered { blanknumbered } # numbered blank lines?
- named pipe { pipe } # pipe through this first
- named font { dft } # font family
- named size { dft } # font size
- named line { dft } # line-space
- named blanklinescale { dft } # blank-line scale
- named space { dft } # spacing mode
- named tabin { dft } # tab interval
- named tabout { dft } # tab width
- named identifiers { dft } # ident. font
- named keywords { dft } # keyword font
- named operators { dft } # operator font
- named numbers { dft } # number font
- named strings { dft } # string font
- named comments { dft } # comment font
- named linenumbers { dft } # line numbers font
- body @Body # filtered, see below
- @Begin
-
- def @Test # returns x unless x is dft
- left x
- named iffixed {}
- named ifvarying {}
- named ifsymbol {}
- {
- x @Case {
- dft @Yield {
- style @Case {
- fixed @Yield { iffixed }
- varying @Yield { ifvarying }
- symbol @Yield { ifsymbol }
- }
- }
- else @Yield x
- }
- }
-
-
- def @Else # returns x, or y if x is dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- def @InitTab
- {
- tabin @Test
- iffixed { fixedtabin }
- ifvarying { varyingtabin }
- ifsymbol { symboltabin }
- }
-
-
- def @InitTabWidth
- {
- tabout @Test
- iffixed { fixedtabout }
- ifvarying { varyingtabout }
- ifsymbol { symboltabout }
- }
-
-
- def @Filter
- {
- def wantnumbered
- {
- numbered @Case {
- { No no } @Yield ""
- { Yes yes } @Yield "-L"
- else @Yield { "-L"numbered }
- }
- }
-
- def wantblanknumbered
- {
- blanknumbered @Case {
- { No no } @Yield "-M"
- { NoPrint noprint } @Yield "-N"
- { Yes yes } @Yield ""
- }
- }
-
- pipe @Case {
- "" @Yield {
- "prg2lout -r -lRuby" wantblanknumbered wantnumbered
- -i{@FilterIn} -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- else @Yield {
- "cat" @FilterIn "|" pipe "|"
- "prg2lout -r -lRuby" wantblanknumbered wantnumbered
- -o{@FilterOut} -e{@FilterErr}
- -t{@InitTab} -T{@InitTabWidth}
- }
- }
- }
-
-
- def @InitFontFamily
- {
- font @Test
- iffixed { fixedfont }
- ifvarying { varyingfont }
- ifsymbol { symbolfont }
- }
-
-
- def @InitSize
- {
- size @Test
- iffixed { fixedsize }
- ifvarying { varyingsize }
- ifsymbol { symbolsize }
- }
-
-
- def @InitLine
- {
- line @Test
- iffixed { fixedline }
- ifvarying { varyingline }
- ifsymbol { symbolline }
- }
-
-
- def @InitBLS
- {
- blanklinescale @Test
- iffixed { fixedblanklinescale }
- ifvarying { varyingblanklinescale }
- ifsymbol { symbolblanklinescale }
- }
-
-
- def @InitSpace
- {
- space @Test
- iffixed { fixedspace }
- ifvarying { varyingspace }
- ifsymbol { symbolspace }
- }
-
-
- def @PI # for formatting identifiers
- right x
- {
- style @Case {
- fixed @Yield fixedidentifiersformat {
- { identifiers @Else fixedidentifiers } @Font x
- }
- varying @Yield varyingidentifiersformat {
- { identifiers @Else varyingidentifiers } @Font x
- }
- symbol @Yield symbolidentifiersformat {
- { identifiers @Else symbolidentifiers } @Font x
- }
- }
- }
-
-
- def @PK # for formatting keywords
- right x
- {
- style @Case {
- fixed @Yield fixedkeywordsformat {
- { keywords @Else fixedkeywords } @Font x
- }
- varying @Yield varyingkeywordsformat {
- { keywords @Else varyingkeywords } @Font x
- }
- symbol @Yield symbolkeywordsformat {
- { keywords @Else symbolkeywords } @Font x
- }
- }
- }
-
-
- def @PO # for formatting operators
- right x
- {
- style @Case {
- fixed @Yield fixedoperatorsformat {
- { operators @Else fixedoperators } @Font x
- }
- varying @Yield varyingoperatorsformat {
- { operators @Else varyingoperators } @Font x
- }
- symbol @Yield symboloperatorsformat {
- { operators @Else symboloperators } @Font x
- }
- }
- }
-
-
- def @PN # for formatting numbers
- right x
- {
- style @Case {
- fixed @Yield fixednumbersformat {
- { numbers @Else fixednumbers } @Font x
- }
- varying @Yield varyingnumbersformat {
- { numbers @Else varyingnumbers } @Font x
- }
- symbol @Yield symbolnumbersformat {
- { numbers @Else symbolnumbers } @Font x
- }
- }
- }
-
-
- export "'''"
- def @PS # for formatting strings
- body x
- {
- def "'''" { "'''" }
-
- style @Case {
- fixed @Yield fixedstringsformat {
- { strings @Else fixedstrings } @Font x
- }
- varying @Yield varyingstringsformat {
- { strings @Else varyingstrings } @Font x
- }
- symbol @Yield symbolstringsformat {
- { strings @Else symbolstrings } @Font x
- }
- }
- }
-
-
- def @PC # for formatting comments
- right x
- {
- style @Case {
- fixed @Yield fixedcommentsformat {
- { comments @Else fixedcomments } @Font x
- }
- varying @Yield varyingcommentsformat {
- { comments @Else varyingcomments } @Font x
- }
- symbol @Yield symbolcommentsformat {
- { comments @Else symbolcomments } @Font x
- }
- }
- }
-
-
- def @PL # for formatting line numbers
- right x
- {
- style @Case {
- fixed @Yield fixedlinenumbersformat {
- { linenumbers @Else fixedlinenumbers } @Font x
- }
- varying @Yield varyinglinenumbersformat {
- { linenumbers @Else varyinglinenumbers } @Font x
- }
- symbol @Yield symbollinenumbersformat {
- { linenumbers @Else symbollinenumbers } @Font x
- }
- }
- }
-
-
- def @PA # for formatting asterisks
- {
- @PO @BackEnd @Case {
- PlainText @Yield "*"
- else @Yield { "0.5w" @VShift "*" }
- }
- }
-
-
- def @PM # for formatting minus signs
- {
- @PO @BackEnd @Case {
- PlainText @Yield "-"
- else @Yield style @Case {
- fixed @Yield "-"
- else @Yield { { Symbol Base } @Font @Char "minus" }
- }
- }
- }
-
-
- def @PD # for formatting dots, if wanted larger
- {
- @PO @BackEnd @Case {
- PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
- }
- }
-
-
- def @A # get characters from the Adobe Symbol font
- named sym {}
- right x
- {
- style @Case {
- symbol @Yield { { Symbol Base } @Font @Char sym }
- else @Yield { x }
- }
- }
-
-
- macro "$>" { {} & }
-
-
- Programming @Language
- { @InitFontFamily Base @InitSize } @Font @InitSpace @Space
- { @InitLine lines "blanklinescale" @InitBLS } @Break @Body
-
- @End @Ruby
-
-@End @RubySetup
diff --git a/include/include/russian b/include/include/russian
deleted file mode 100644
index 0652a61..0000000
--- a/include/include/russian
+++ /dev/null
@@ -1,12 +0,0 @@
-#################################################################
-# #
-# russian #
-# #
-# This file includes everything you need for Russian. #
-# #
-# This file has been placed in the public domain. #
-# #
-#################################################################
-
-# Commented out because these fonts are not distributed with Lout.
-# @SysInclude { russian.fd }
diff --git a/include/include/russian.fd b/include/include/russian.fd
deleted file mode 100644
index 5a790cb..0000000
--- a/include/include/russian.fd
+++ /dev/null
@@ -1,40 +0,0 @@
-##################################################################################################################
-# #
-# Russian font definitions. Use a very wide window to see them clearly. #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-# Lout font Lout font PostScript PostScript font metrics Lout character Recode/ #
-# family name face name font name (formerly .AFM) file name mapping file NoRecode #
-# #
-##################################################################################################################
-
-fontdef Academy Base { Academy Aca koi8r.LCM Recode }
-fontdef Academy Slope { Academy-Italic Aca-It koi8r.LCM Recode }
-fontdef Academy Bold { Academy-Bold Aca-Bd koi8r.LCM Recode }
-fontdef Academy BoldSlope { Academy-Italic Aca-It koi8r.LCM Recode }
-fontdef Academy Italic { Academy-Italic Aca-It koi8r.LCM Recode }
-
-fontdef Antiqua Base { Antiqua Ant koi8r.LCM Recode }
-fontdef Antiqua Slope { Antiqua-Italic Ant-It koi8r.LCM Recode }
-fontdef Antiqua Bold { Antiqua-Bold Ant-Bd koi8r.LCM Recode }
-fontdef Antiqua BoldSlope { Antiqua-Italic Ant-It koi8r.LCM Recode }
-fontdef Antiqua Italic { Antiqua-Italic Ant-It koi8r.LCM Recode }
-
-fontdef College Base { College Col koi8r.LCM Recode }
-fontdef College Slope { College-Italic Col-It koi8r.LCM Recode }
-fontdef College Bold { College-Bold Col-Bd koi8r.LCM Recode }
-fontdef College BoldSlope { College-Italic Col-It koi8r.LCM Recode }
-fontdef College Italic { College-Italic Col-It koi8r.LCM Recode }
-
-fontdef Magazine Base { Magazine Mag koi8r.LCM Recode }
-fontdef Magazine Slope { Magazine-Italic Mag-It koi8r.LCM Recode }
-fontdef Magazine Bold { Magazine-Bold Mag-Bd koi8r.LCM Recode }
-fontdef Magazine BoldSlope { Magazine-Italic Mag-It koi8r.LCM Recode }
-fontdef Magazine Italic { Magazine-Italic Mag-It koi8r.LCM Recode }
-
-fontdef Textbook Base { Textbook Txt koi8r.LCM Recode }
-fontdef Textbook Slope { Textbook-Italic Txt-It koi8r.LCM Recode }
-fontdef Textbook Bold { Textbook-Bold Txt-Bd koi8r.LCM Recode }
-fontdef Textbook BoldSlope { Textbook-Italic Txt-It koi8r.LCM Recode }
-fontdef Textbook Italic { Textbook-Italic Txt-It koi8r.LCM Recode }
diff --git a/include/include/slides b/include/include/slides
deleted file mode 100644
index d1136fb..0000000
--- a/include/include/slides
+++ /dev/null
@@ -1,412 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for overhead transparencies #
-# #
-# Jeffrey H. Kingston #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# @SysInclude commands for standard packages. #
-# #
-###############################################################################
-
- @SysInclude { langdefs } # language definitions
- @SysInclude { bsf } # BasicSetup package
- @SysInclude { dsf } # DocumentSetup package
- @SysInclude { slidesf } # OverheadSetup extension
-
-
-###############################################################################
-# #
-# @Include command for reading personal definitions from current directory. #
-# #
-###############################################################################
-
- @Include { mydefs }
-
-
-###############################################################################
-# #
-# The @BasicSetup @Use clause - basics, lists, paragraphs, displays. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @BasicSetup
- # @InitialFont { Times Base 12p } # initial font
- @InitialFont { Times Base 20p } # initial font
- # @InitialBreak {{adjust 1.2fx hyphen} @OrIfPlain {ragged 1fx nohyphen}}
- @InitialBreak { ragged 1.2fx nohyphen } # initial break
- # @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- # @InitialSpace { lout } # initial space style
- # @InitialLanguage { English } # initial language
- # @InitialColour { black } # initial colour
- # @InitialBackgroundColour { white } # initial background colour
- # @OptimizePages { No } # optimize page breaks?
- # @HeadingFont { Bold } # font for @Heading
- # @FixedWidthFont { Courier Base -1p } # font for @F
- # @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- # @ParaIndent { 2.00f @OrIfPlain 5s } # first-line indent for @PP
- # @DisplayGap { 1.00v @OrIfPlain 1f } # gap above, below displays
- # @DisplayIndent { 2.00f @OrIfPlain 5s } # @IndentedDisplay indent
- # @DefaultIndent { 0.5rt } # @Display indent
- # @DisplayNumStyle { (num) } # style of display numbers
- # @WideIndent { 4.00f @OrIfPlain 10s } # @WideTaggedList indent
- # @VeryWideIndent { 8.00f @OrIfPlain 20s } # @VeryWideTaggedList indent
- # @ListOuterGap { 1.00v @OrIfPlain 1f } # gap before, after lists
- # @ListGap { 1.00v @OrIfPlain 1f } # gap between list items
- # @ListIndent { 0s } # indent of list items
- # @ListRightIndent { 0s } # right indent of list items
- # @ListLabelWidth { 2.00f @OrIfPlain 5s } # width allowed for list tags
- # @ListLabelRight { No } # right-adjust list labels
- # @ListLabelRightGap { 2s } # gap when right-adjusting
- # @ListFont { } # font of list items
- # @ListBreak { } # break style of list items
- # @NumberSeparator { . } # separates nums like 2.3.7
- # @CrossLinkFormat { @Body } # format of cross links
- # @ExternalLinkFormat { @Body } # format of external links
-}
-
-
-###############################################################################
-# #
-# The @DocumentSetup @Use clause - page layout plus figures, tables, etc. #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @DocumentSetup
- # @PageType { A4 @OrIfPlain Other} # page type (width, height)
- # @PageWidth { 80s } # page width if type Other
- # @PageHeight { 66f } # page height if type Other
- # @PageOrientation { Portrait } # Portrait, Landscape, etc.
- # @PageBackground { } # background of each page
- # @TopMargin { 2.5c @OrIfPlain 6f } # top margin of all pages
- # @FootMargin { 2.5c @OrIfPlain 6f } # bottom margin of all pages
- @FootMargin { 5.00c } # bottom margin of all pages
- # @OddLeftMargin { 2.5c @OrIfPlain 10s } # left margin of odd pages
- # @OddRightMargin { 2.5c @OrIfPlain 10s } # right margin of odd pages
- # @EvenLeftMargin { 2.5c @OrIfPlain 10s } # left margin of even pages
- # @EvenRightMargin { 2.5c @OrIfPlain 10s } # right margin of even pages
- # @OddLeftBodyMargin { 0c } # extra margin for page body
- # @OddRightBodyMargin { 0c } # extra margin for page body
- # @EvenLeftBodyMargin { 0c } # extra margin for page body
- # @EvenRightBodyMargin{ 0c } # extra margin for page body
- # @PageBoxType { None } # None Box CurveBox ShadowBox
- # @PageBoxMargin { 1.00c } # page box margin
- # @PageBoxLineWidth { } # page box line thickness
- # @PageBoxPaint { none } # page box paint
- # @PageBoxShadow { 0.60c } # shadow margin if ShadowBox
- # @PageEnclose { @Body } # enclose every page in this
- # @ColumnNumber { 1 } # number of columns (1 to 10)
- # @ColumnGap { 1.00c @OrIfPlain 6s } # column gap
-
- # @FigureLocation { PageTop } # default figure location
- # @FigureFormat { @CC @Body } # default figure format
- # @FigureWord { figure } # "Figure" word else anything
- # @FigureNumbers { Arabic } # method of numbering figures
- # @FigureCaptionPos { Below } # Above or Below
- # @FigureCaptionFont { -2p } # figure caption font
- # @FigureCaptionBreak { adjust hyphen 1.2fx } # figure caption break
- # @FigureCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFigureContents { No } # list of figures at start
-
- # @TableLocation { PageTop } # default table location
- # @TableFormat { @CC @Body } # default table format
- # @TableWord { table } # "Table" word else anything
- # @TableNumbers { Arabic } # method of numbering tables
- # @TableCaptionPos { Below } # Above or Below
- # @TableCaptionFont { -2p } # table caption font
- # @TableCaptionBreak { adjust hyphen 1.2fx } # table caption break
- # @TableCaptionFormat { {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeTableContents { No } # list of tables at start
-
- # @FloaterLocation { PageTop } # default floater location
- # @FloaterFormat { @CC @Body } # default floater format
- # @FloaterWord { floater } # "Floater" word else anything
- # @FloaterNumbers { Arabic } # method of numbering floaters
- # @FloaterCaptionPos { Below } # Above or Below
- # @FloaterCaptionFont { -2p } # floater caption font
- # @FloaterCaptionBreak{ adjust hyphen 1.2fx } # floater caption break
- # @FloaterCaptionFormat{ {@B { word @NumSep number. &2s }} @Insert caption }
- # @MakeFloaterContents{ No } # list of floaters at start
-
- # @MakeContents { No } # make contents? Yes or No
- # @ContentsGap { 0.20v @OrIfPlain 0f } # extra gap above minor entry
- @ContentsGapAbove { 0.00v @OrIfPlain 1f } # extra gap above major entry
- # @ContentsGapBelow { 0.00v @OrIfPlain 0f } # extra gap below major entry
- @ContentsFont { Base } # font for major entry
- # @ContentsPartGapAbove { 1.00v @OrIfPlain 1f } # extra gap above `part' entry
- # @ContentsPartGapBelow { 0.00v @OrIfPlain 0f } # extra gap below `part' entry
- # @ContentsFormat { number @DotSep title } # contents entry format
- # @ContentsLeader { .. } # leader symbol in contents
- # @ContentsLeaderGap { 4s @OrIfPlain 2s } # gap between leaders
- # @ContentsRightWidth { 3f @OrIfPlain 6s } # page numbers column width
-
- # @MakeReferences { Yes } # make references? Yes or No
- # @RefCiteStyle { [cite] } # citation style
- # @RefCiteLabels { @RefNum } # citation items
- # @RefNumbers { Arabic } # reference numbers
- # @RefListFormat { Labels } # NoLabels, Labels, etc.
- # @RefListLabels { [@RefNum] } # ref list label format
- # @RefListTitle { references } # title of reference list
- # @ChapRefListTitle { references } # title of chapter ref list
- # @RefListIndent { 0s } # indent to left of labels
- # @RefListRightIndent { 0s } # indent to right of items
- # @RefListGap { @ListGap } # gap between ref list items
- # @RefListFont { } # font used in reference list
- # @RefListBreak { } # break style of ref list
- # @RefListLabelWidth { @ListLabelWidth } # Labels column width
- # @RefListSortKey { @Tag } # sorting key
-
- # @MakeGlossary { No } # make glossary? Yes or No
- # @GlossaryText { @Null } # glossary initial text
- # @GlossaryFont { } # glossary entries font
- # @GlossaryBreak { } # glossary entries break
- # @GlossaryFormat { +3p @Font @S @Name # glossary entries format
- # @Right @I { @Word&&page @PageNum }
- # @DP @RawIndentedDisplay @Body }
- # @GlossaryGap { @DisplayGap } # gap between glossary entries
- # @GlossaryColumnNumber{ 2 } # glossary columns (1 to 10)
- # @GlossaryColumnGap { 1.00c @OrIfPlain 6s } # glossary column gap
- # @InGlossaryFont { smallcaps } # font for @InGlossary
- # @InGlossaryFormat { @Body } # format for @InGlossary
-
- # @MakeIndex { No } # make index? Yes or No
- # @MakeIndex { No } # make index? Yes or No
- # @IndexText { @Null } # index initial text
- # @IndexFont { } # index entries font
- # @IndexBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexFormat { @Body } # @Index format
- # @SubIndexFormat { {1f @Wide}@Body } # @SubIndex format
- # @SubSubIndexFormat { {2f @Wide}@Body } # @SubSubIndex format
- # @IndexTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexTypeMain { @B @PageNum } # Main pagenum format
- # @IndexTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexRangeFormat { @From--@To } # index page range format
- # @IndexColumnNumber { 2 } # index columns (1 to 10)
- # @IndexColumnGap { 1.00c @OrIfPlain 6s } # index column gap
- # @IndexCtd { Yes } # include (ctd.) lines
- # @IndexCtdWord { continued } # "ctd." in current lang.
- # @IndexCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexSpacerAbove { 2v } # space above index spacer
- # @IndexSpacerBelow { 1v } # space below index spacer
- # @IndexSpacerFont { +3p } # font of index spacer
- # @IndexSpacerFormat { @Body } # format of index spacer
-
- # @MakeIndexA { No } # make index A? Yes or No
- # @IndexAText { @Null } # index A initial text
- # @IndexAFont { } # index A entries font
- # @IndexABreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexAFormat { @Body } # @IndexA format
- # @SubIndexAFormat { {1f @Wide}@Body } # @SubIndexA format
- # @SubSubIndexAFormat { {2f @Wide}@Body } # @SubSubIndexA format
- # @IndexATypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexATypeMain { @B @PageNum } # Main pagenum format
- # @IndexATypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexARangeFormat { @From--@To } # index page range format
- # @IndexAColumnNumber { 2 } # index A columns (1 to 10)
- # @IndexAColumnGap { 1.00c @OrIfPlain 6s } # index A column gap
- # @IndexACtd { Yes } # include (ctd.) lines
- # @IndexACtdWord { continued } # "ctd." in current lang.
- # @IndexACtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexASpacerAbove { 2v } # space above index A spacer
- # @IndexASpacerBelow { 1v } # space below index A spacer
- # @IndexASpacerFont { +3p } # font of index A spacer
- # @IndexASpacerFormat { @Body } # format of index A spacer
-
- # @MakeIndexB { No } # make index B? Yes or No
- # @IndexBText { @Null } # index B initial text
- # @IndexBFont { } # index B entries font
- # @IndexBBreak { {oragged 1.2fx} @OrIfPlain {oragged 1fx} } # and break
- # @IndexBFormat { @Body } # @IndexB format
- # @SubIndexBFormat { {1f @Wide}@Body } # @SubIndexB format
- # @SubSubIndexBFormat { {2f @Wide}@Body } # @SubSubIndexB format
- # @IndexBTypeOrdinary { @PageNum } # Ordinary pagenum format
- # @IndexBTypeMain { @B @PageNum } # Main pagenum format
- # @IndexBTypeSpecial { @I @PageNum } # Special pagenum format
- # @IndexBRangeFormat { @From--@To } # index page range format
- # @IndexBColumnNumber { 2 } # index B columns (1 to 10)
- # @IndexBColumnGap { 1.00c @OrIfPlain 6s } # index B column gap
- # @IndexBCtd { Yes } # include (ctd.) lines
- # @IndexBCtdWord { continued } # "ctd." in current lang.
- # @IndexBCtdFormat { @Body @I (@CtdWord) } # format of ctd.
- # @IndexBSpacerAbove { 2v } # space above index B spacer
- # @IndexBSpacerBelow { 1v } # space below index B spacer
- # @IndexBSpacerFont { +3p } # font of index B spacer
- # @IndexBSpacerFormat { @Body } # format of index B spacer
-
- # @TopGap { 0.75c @OrIfPlain 2f } # gap between figures
- # @MidGap { 0.75c @OrIfPlain 2f } # gap above/below body text
-
- # @FootNoteNumbers { Arabic } # footnote numbers
- # @FootNoteThrough { No } # numbered through chapter?
- # @FootNoteLocation { ColFoot } # where the footnote appears
- # @FootNoteFont { 0.80f } # font for footnotes
- # @FootNoteBreak { 1.2fx @OrIfPlain 1fx } # break for footnotes
- # @FootNoteFormat { { number &0.05f } @Insert body } # footnote format
- # @FootLen { 2.00c @OrIfPlain 10s } # length of footnote line
- # @FootAboveGap { @DisplayGap } # gap above footnote line
- # @FootGap { 0.20c @OrIfPlain 1fx } # gap between footnotes
- # @MarginNoteFont { 0.80f } # font of margin notes
- # @MarginNoteBreak { ragged 1.10fx } # break style of margin notes
- # @MarginNoteHGap { 0.5c } # horizontal gap to notes
- # @MarginNoteVGap { @DisplayGap } # min vertical gap between
- # @MarginNoteWidth { 1.50c } # width of margin notes
- # @EndNoteNumbers { Arabic } # endnote numbers
- # @EndNoteFont { 0.80f } # font of endnotes
- # @EndNoteBreak { 1.2fx @OrIfPlain 1fx } # break for endnotes
- # @EndNoteFormat { { number &0.05f } @Insert body } # endnote format
- # @EndNoteGap { 0.20c @OrIfPlain 1f } # gap between endnotes
-
- # @TheoremWord { theorem } # "Theorem" word, etc.
- # @TheoremTitleFormat { (title) } # only if title present
- # @TheoremFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @DefinitionWord { definition } # "Definition" word, etc.
- # @DefinitionTitleFormat { (title) } # only if title present
- # @DefinitionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ClaimWord { claim } # "Claim" word, etc.
- # @ClaimTitleFormat { (title) } # only if title present
- # @ClaimFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @PropositionWord { proposition } # "Proposition" word, etc.
- # @PropositionTitleFormat { (title) } # only if title present
- # @PropositionFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @LemmaWord { lemma } # "Lemma" word, etc.
- # @LemmaTitleFormat { (title) } # only if title present
- # @LemmaFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @CorollaryWord { corollary } # "Corollary" word, etc.
- # @CorollaryTitleFormat { (title) } # only if title present
- # @CorollaryFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ExampleWord { example } # "Example" word, etc.
- # @ExampleTitleFormat { (title) } # only if title present
- # @ExampleFormat { {@B { word @NumSep number title: } &2s} @Insert body }
- # @ProofWord { proof } # "Proof" word, etc.
-
- # @PageHeaders { Simple } # None Simple Titles NoTitles
- @PageHeaders { Titles } # None Simple Titles NoTitles
- # @PageNumbers { Arabic } # page numbers
- # @FirstPageNumber { 1 } # number of first page
- # @IntroPageNumbers { Roman } # intro page numbers
- # @IntroFirstPageNumber{ 1 } # number of first intro page
- # @StructPageNums { No } # make structured page numbers
- # @PageNumberFormat { number } # format of all page numbers
-
- # @OddTop { @Centre{- @PageNum -} } # Simple page headers
- # @OddFoot { @Null }
- # @EvenTop { @Centre{- @PageNum -} }
- # @EvenFoot { @Null }
- # @StartOddTop { @Null }
- # @StartOddFoot { @Null }
- # @StartEvenTop { @Null }
- # @StartEvenFoot { @Null }
- # @IntroOddTop { @Null }
- # @IntroOddFoot { @Centre @PageNum }
- # @IntroEvenTop { @Null }
- # @IntroEvenFoot { @Centre @PageNum }
- # @IntroStartOddTop { @Null }
- # @IntroStartOddFoot { @Null }
- # @IntroStartEvenTop { @Null }
- # @IntroStartEvenFoot { @Null }
-
- # Titles, NoTitles headers
- # @RunningOddTop { @I {@MinorNum @DotSep @MinorTitle} @Right @B @PageNum }
- @RunningOddTop { 8p @Font {@MajorTitle @MinorNum @Right @PageNum} }
- # @RunningOddFoot { @Null }
- @RunningOddFoot { @Null }
- # @RunningEvenTop { @B @PageNum @Right @I {@MajorNum @DotSep @MajorTitle} }
- @RunningEvenTop { 8p @Font {@MajorTitle @MinorNum @Right @PageNum} }
- # @RunningEvenFoot { @Null }
- @RunningEvenFoot { @Null }
- # @RunningStartOddTop { @Null }
- @RunningStartOddTop { 8p @Font { @MajorTitle @MinorNum @Right @PageNum } }
- # @RunningStartOddFoot { @Centre { Bold 0.8f } @Font @PageNum }
- @RunningStartOddFoot { @Null }
- # @RunningStartEvenTop { @Null }
- @RunningStartEvenTop { 8p @Font { @MajorTitle @MinorNum @Right @PageNum } }
- # @RunningStartEvenFoot { @Centre { Bold 0.8f } @Font @PageNum }
- @RunningStartEvenFoot { @Null }
- # @RunningIntroOddTop { @Null }
- # @RunningIntroOddFoot { @Right @PageNum }
- # @RunningIntroEvenTop { @Null }
- # @RunningIntroEvenFoot { @PageNum }
- # @RunningIntroStartOddTop { @Null }
- # @RunningIntroStartOddFoot { @Null }
- # @RunningIntroStartEvenTop { @Null }
- # @RunningIntroStartEvenFoot { @Null }
-}
-
-
-###############################################################################
-# #
-# The @OverheadSetup @Use clause - options specific to overheads. #
-# #
-###############################################################################
-
-@Use { @OverheadSetup
- # @DateLine { No } # No, Yes, or a date
- # @ContentsWord { contents } # word for "Contents"
- # @LectureWord { lecture } # word for "Lecture"
- # @OverheadWord { } # word for "Overhead"
- # @LectureNumbers { Arabic } # kind of lecture numbers
- # @FirstLectureNumber { 1 } # first lecture num
- # @OverheadNumbers { Arabic } # kind of overhead numbers
- # @FirstOverheadNumber { 1 } # first overhead num
- # @TitlePageFont { Helvetica Base 1.5f } # title page font
- # @TitleFormat { @Center clines @Break title } # title line
- # @AuthorFormat { @Center clines @Break author } # author line
- # @InstitutionFormat { @Center clines @Break @I institution } # inst
- # @DateLineFormat { @Center date } # date line
- # @AboveTitleGap { 0.5i } # gap above title
- # @AboveAuthorGap { 1.0i } # gap above author
- # @AboveInstitutionGap { 0.5i } # gap above inst
- # @AboveDateLineGap { 0.5i } # gap above date
- # @LectureHeadingFont { Bold 1.2f } # lecture head font
- # @LectureHeadingBreak { clines 1.2fx nohyphen } # lecture head break
- # @LectureHeadingFormat { @Centre number @DP @Centre title @DP }
- # @AboveLectureGap { 3.0f } # gap above lec head
- # @OverheadHeadingFont { Bold } # overhead head font
- # @OverheadHeadingBreak { 1.2fx nohyphen } # overhead head break
- # @OverheadHeadingFormat { @Centre title @DP } # overhead head format
- # @OverheadFormat { @Body } # overhead body format
- # @AboveOverheadGap { 1.0f } # gap above over head
- # @LectureInContents { Yes } # add lectures to contents
- # @OverheadInContents { No } # add overheads to contents
- # @ReferencesInContents { Yes } # add references to contents
- # @LectureContentsIndent { 0f } # contents indent of lectures
- # @OverheadInLectureContentsIndent { 2f } # .. of overhead within lec
- # @OverheadContentsIndent { 0f } # .. of stand-alone overhead
- # @ReferencesContentsIndent { 0f } # .. of references
- # @LectureNumInTheorems { Yes } # theorem num has lecture num
- # @OverheadNumInTheorems { No } # theorem num has overhead num
- # @LectureNumInDisplays { Yes } # display num has lecture num
- # @OverheadNumInDisplays { No } # display num has overhead num
- # @LectureNumInFigures { Yes } # figure num has lecture num
- # @OverheadNumInFigures { No } # figure num has overhead num
- # @LectureNumInTables { Yes } # table num has lecture num
- # @OverheadNumInTables { No } # table num has overhead num
- # @LectureNumInFloaters { Yes } # floater num has lecture num
- # @OverheadNumInFloaters { No } # floater num has overhead num
- # @LectureNumInRunners { Yes } # running head has lecture num
- # @OverheadNumInRunners { Yes } # running head has overhd num
- # @LecturePrefix { } # for structured page nums
- # @OverheadPrefix { } # for structured page nums
-}
-
-
-###############################################################################
-# #
-# @Database (and @SysDatabase) clauses go here. #
-# #
-###############################################################################
-
-@SysDatabase @FontDef { fontdefs } # font definitions
-@SysDatabase @RefStyle { refstyle } # reference printing styles
diff --git a/include/include/slidesf b/include/include/slidesf
deleted file mode 100644
index 0759817..0000000
--- a/include/include/slidesf
+++ /dev/null
@@ -1,414 +0,0 @@
-
-###########################################################################
-# #
-# @OverheadSetup extension to @DocumentSetup. #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package extends DocumentSetup with definitions for overheads. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###########################################################################
-
-extend @BasicSetup @DocumentSetup
-export @OverheadTransparencies @Lecture @Overhead
-def @OverheadSetup
- named @DateLine { No }
- named @ContentsWord { contents }
- named @LectureWord { lecture }
- named @OverheadWord { }
- named @LectureNumbers { Arabic }
- named @FirstLectureNumber { 1 }
- named @OverheadNumbers { Arabic }
- named @FirstOverheadNumber { 1 }
- named @TitlePageFont { Helvetica Base }
- named @TitleFormat
- right title { @Center clines @Break title }
- named @AuthorFormat
- right author { @Center clines @Break author }
- named @InstitutionFormat
- right institution { @Center clines @Break @I institution }
- named @DateLineFormat
- right date { @Center date }
- named @AboveTitleGap { 0.5i }
- named @AboveAuthorGap { 1.0i }
- named @AboveInstitutionGap { 0.5i }
- named @AboveDateLineGap { 0.5i }
- named @LectureHeadingFont { Bold 1.2f }
- named @LectureHeadingBreak { 1.2fx nohyphen }
- named @LectureHeadingFormat
- left number right title { @Centre number @DP @Centre title @DP }
- named @AboveLectureGap { 3.0f }
- named @OverheadHeadingFont { Bold }
- named @OverheadHeadingBreak { 1.2fx nohyphen }
- named @OverheadHeadingFormat
- left number right title { @Centre title @DP }
- named @OverheadFormat
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body
- { @Body }
- named @AboveOverheadGap { 1.0f }
- named @LectureInContents { Yes }
- named @OverheadInContents { No }
- named @ReferencesInContents { Yes }
- named @LectureContentsIndent { 0f }
- named @OverheadContentsIndent { 0f }
- named @OverheadInLectureContentsIndent { 2f }
- named @ReferencesContentsIndent { 0f }
- named @LectureNumInTheorems { Yes }
- named @OverheadNumInTheorems { No }
- named @LectureNumInDisplays { Yes }
- named @OverheadNumInDisplays { No }
- named @LectureNumInFigures { Yes }
- named @OverheadNumInFigures { No }
- named @LectureNumInTables { Yes }
- named @OverheadNumInTables { No }
- named @LectureNumInFloaters { Yes }
- named @OverheadNumInFloaters { No }
- named @LectureNumInRunners { Yes }
- named @OverheadNumInRunners { Yes }
- named @LecturePrefix { }
- named @OverheadPrefix { }
-@Begin
-
- #######################################################################
- # #
- # Symbols for passing full title to running headers. #
- # #
- #######################################################################
-
- export @Val
- def @StoreTitle left @Tag named @Val {} { @Null }
-
- def @SaveTitle right x { save @StoreTitle @Val { x } }
-
- def @GetTitle { @StoreTitle&&save @Open { @Val } }
-
-
- #######################################################################
- # #
- # Lists of lectures and overheads. #
- # #
- #######################################################################
-
- export num
- def @LectureList named @Tag {} named num {}
- {
- @Galley
- //1.1b @LectureList num { @Next num }
- }
-
- export num
- def @OverheadsList named @Tag {} named num {}
- {
- @Galley
- //1.1b @OverheadsList num { @Next num }
- }
-
- export num
- def @LecOverheadsList named @Tag {} right num
- {
- @Galley
- //1.1b @LecOverheadsList @Next num
- }
-
-
- #######################################################################
- # #
- # @Full - this sends text to a full-width place. #
- # #
- #######################################################################
-
- def @Full force into { @FullPlace&&following } right x { x }
-
-
- #######################################################################
- # #
- # @OverheadTransparencies. #
- # #
- #######################################################################
-
- def @OverheadTransparencies
- named @Title {}
- named @RunningTitle { dft }
- named @Author {}
- named @Institution {}
- named @DateLine { @DateLine }
- named @InitialFont { @InitialFont }
- named @InitialBreak { @InitialBreak }
- named @InitialOutdent { @InitialOutdent }
- named @InitialSpace { @InitialSpace }
- named @InitialLanguage { @InitialLanguage }
- named @PageOrientation { @PageOrientation }
- named @PageHeaders { @PageHeaders }
- named @FirstPageNumber { @FirstPageNumber }
- named @FirstOverheadNumber { @FirstOverheadNumber }
- named @FirstLectureNumber { @FirstLectureNumber }
- named @OptimizePages { @OptimizePages }
- {
-
- def @DatePart
- {
- @DateLine @Case {
- No @Yield { @Null }
- Yes @Yield { @Date }
- else @Yield { @DateLine }
- }
- }
-
- def @TitlePart
- {
- @TitlePageFont @Font @InitialBreak @Break
- @InitialSpace @Space clines @Break {
- //0.5i
- //@AboveTitleGap 1.5f @Font @InitialBreak @Break
- @InitialSpace @Space @TitleFormat @Title |
- //@AboveAuthorGap @AuthorFormat @Author |
- //@AboveInstitutionGap @InstitutionFormat @Institution |
- //@AboveDateLineGap @DateLineFormat @DatePart |
- }
- }
-
- def @ContentsPart
- {
- @DP |0.5rt @LectureHeadingFont @Font @LectureHeadingBreak @Break
- @LectureHeadingFormat { contents @WordVal @ContentsWord } |
- @DP @ContentsSection
- }
-
- def @ReferencesPart
- named @Tag {}
- {
- @DP |0.5rt @LectureHeadingFont @Font @LectureHeadingBreak @Break
- @LectureHeadingFormat { @RefHeading @RefListTitle } |
- // @PageMark @Tag
- // @ReferencesInContents @ContentsEntry
- indent { @ReferencesContentsIndent }
- title { @RefHeading @RefListTitle }
- pagenum { @PageOf @Tag }
- // Start @Runner @MajorTitle { @GetTitle }
- @DP @ReferencesSection
- // NonStart @Runner @MajorTitle { @GetTitle }
- }
-
- def @OverheadsBody force into { @ColPlace&&preceding }
- named @Optimize { @OptimizePages }
- {
- @Title @Case {
- "" @Yield @Null
- else @Yield @TitlePart
- }
- //1.1b @MakeContents @Case {
- { Yes Bypass } @Yield @ContentsPart
- else @Yield @Null
- }
- // Start @Runner @MajorTitle { @GetTitle }
- //1.1b @OverheadsList num { @FirstOverheadNumber }
- //1.1b @LectureList num { @FirstLectureNumber }
- //1.1b @ReferencesPart
- }
-
- @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break
- @InitialLanguage @Language @InitialSpace @Space
- { @ColourCommand @InitialColour } @SetColour
- {
- @SaveTitle {
- @InitialLanguage @Language { @RunningTitle @Dft @Title }
- }
-
- // Yes @BeginAllCounters {}
- // Yes @BeginDisplayCounter {}
- // Yes @BeginFigureCounter {}
- // Yes @BeginFigureCounter {}
- // @PageList
- @ColumnNumber { 1 }
- @PageHeaders { @PageHeaders }
- @Orient { @PageOrientation }
- extra { Yes }
- @FirstPageNumber
- // @OverheadsBody
- // Start @Runner
- }
- }
-
-
- #######################################################################
- # #
- # Overheads. #
- # #
- #######################################################################
-
- def @Overhead force into { @OverheadsList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @OverheadFormat @Body }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- majortitle { @GetTitle }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveOverheadGap }
- headingfont { @OverheadHeadingFont }
- headingbreak { @OverheadHeadingBreak }
- headingformat { @Num @OverheadHeadingFormat @Body }
- incontents { @OverheadInContents }
- contentsindent { @OverheadContentsIndent }
- numbers { @OverheadNumbers }
- attachnum { @OverheadsList&&preceding @Tagged @Tag }
- retrievenum { @OverheadsList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @OverheadPrefix }
- intheorems { @OverheadNumInTheorems }
- indisplays { @OverheadNumInDisplays }
- infigures { @OverheadNumInFigures }
- intables { @OverheadNumInTables }
- infloaters { @OverheadNumInFloaters }
- sendheader { @Full @Body }
- innergap { @DisplayGap }
- inrunners { @OverheadNumInRunners }
- @Format @Body
- }
-
-
- #######################################################################
- # #
- # Lectures containing overheads. #
- # #
- #######################################################################
-
- export @BeginOverheads @EndOverheads @Overhead
- def @Lecture force into { @LectureList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @InitialLanguage {}
- named @BypassNumber { dft }
- body @Body
- {
- def @SaveTitle { @Title }
-
- def @EndOverheadsPlace { @Galley }
-
- def @EndOverheads force into { @EndOverheadsPlace&&preceding }
- {}
-
- macro @BeginOverheads
- { //1.1b @LecOverheadsList 1
- // @EndOverheadsPlace //
- }
-
- def @LectureNum
- {
- @LectureNumbers @Then {
- @BypassNumber @Dft {
- @LectureNumbers @Num @LectureList&&@Tag @Open { num }
- }
- }
- }
-
- def @Overhead force into { @LecOverheadsList&&preceding }
- named @Tag {}
- named @Title {}
- named @RunningTitle { dft }
- named @Format
- named @II right x { |@DisplayIndent x | }
- named @QQ right x { |@DisplayIndent x |@DisplayIndent }
- named @CC right x { |0.5rt x | }
- named @RR right x { |1.0rt x | }
- right @Body { @OverheadFormat @Body }
- named @InitialLanguage { @InitialLanguage }
- named @BypassNumber { dft }
- body @Body
- {
-
- @LargeScaleStructure
- tag { @Tag }
- type { Minor }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- headingfont { @OverheadHeadingFont }
- headingbreak { @OverheadHeadingBreak }
- headingformat { @Num @OverheadHeadingFormat @Body }
- incontents { @OverheadInContents }
- contentsindent { @OverheadInLectureContentsIndent }
- numbers { @OverheadNumbers }
- attachnum { @LecOverheadsList&&preceding @Tagged @Tag }
- retrievenum { @LecOverheadsList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- prefix { @LectureNum }
- majornum { @LectureNum }
- majortitle { @GetTitle }
- minortitle { @SaveTitle }
- intheorems { @OverheadNumInTheorems }
- indisplays { @OverheadNumInDisplays }
- infigures { @OverheadNumInFigures }
- inrunners { @OverheadNumInRunners }
- @Format @Body
-
- }
-
- @LargeScaleStructure
- tag { @Tag }
- type { Major }
- initiallanguage { @InitialLanguage }
- title { @Title }
- runningtitle { @RunningTitle }
- aboveheadinggap { @AboveLectureGap }
- headingfont { @LectureHeadingFont }
- headingbreak { @LectureHeadingBreak }
- headingformat { @Num @LectureHeadingFormat @Body }
- incontents { @LectureInContents }
- contentsindent { @LectureContentsIndent }
- word { lecture @WordVal @LectureWord }
- numbers { @LectureNumbers }
- attachnum { @LectureList&&preceding @Tagged @Tag }
- retrievenum { @LectureList&&@Tag @Open { num } }
- bypassnumber { @BypassNumber }
- pnprefix { @LecturePrefix }
- majortitle { @GetTitle }
- intheorems { @LectureNumInTheorems }
- indisplays { @LectureNumInDisplays }
- infigures { @LectureNumInFigures }
- intables { @LectureNumInTables }
- infloaters { @LectureNumInFloaters }
- sendheader { @Full @Body }
- innergap { @DisplayGap }
- inrunners { @LectureNumInRunners }
- @Body
-
- }
-
-@End @OverheadSetup
diff --git a/include/include/tab b/include/include/tab
deleted file mode 100644
index 3c30de5..0000000
--- a/include/include/tab
+++ /dev/null
@@ -1,31 +0,0 @@
-###############################################################################
-# #
-# Lout setup file for table printing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-# This package is OBSOLETE; use tbl instead. #
-# #
-###############################################################################
-
-
-###############################################################################
-# #
-# The @SysInclude { tabf } line #
-# #
-# This line causes Lout to read the definitions for tables, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { tabf }
-
-
-###############################################################################
-# #
-# This package does not offer default options that can be changed. #
-# #
-###############################################################################
diff --git a/include/include/tabf b/include/include/tabf
deleted file mode 100644
index 219afd0..0000000
--- a/include/include/tabf
+++ /dev/null
@@ -1,953 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Tab package for formatting tables (Version 2.0) #
-# #
-# Version 1.0 by Jeffrey H. Kingston, September 1991. #
-# Version 2.0 by Jeffrey H. Kingston, 22 December 1992. #
-# Version 3.0 by Jeffrey H. Kingston, 13 September 1993. #
-# #
-# The only change between Versions 2 and 3 is to make the linewidth #
-# option accept a Lout length rather than a Fig length. See the User's #
-# Guide for user information. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysPrependGraphic { "tabf.lpg" }
-
-export @CC @RR @Rule @DoubleRule @Line @DoubleLine @NP
- @Rowa @Rowb @Rowc @Rowd @Rowe @Rowf @Rowg @Rowh @Rowi @Rowj
- @MarkRowa @MarkRowb @MarkRowc @MarkRowd @MarkRowe @MarkRowf
- @MarkRowg @MarkRowh @MarkRowi @MarkRowj
- @FirstRowa @FirstRowb @FirstRowc @FirstRowd @FirstRowe @FirstRowf
- @FirstRowg @FirstRowh @FirstRowi @FirstRowj
-
-def @Tab
-
- named above { no }
- named below { no }
- named between { no }
- named side { no }
- named hmargin { 0.3c }
- named vmargin {
- @BackEnd @Case {
- PostScript @Yield 0.2v
- PDF @Yield 0.2v # VT: PDF case added
- PlainText @Yield 0.5v
- }
- }
-
- named linewidth
- named c left x {
- @BackEnd @Case {
- PostScript @Yield { x" cm" }
- PDF @Yield { "__mul(__cm, "x")" }
- }
- }
- named i left x {
- @BackEnd @Case {
- PostScript @Yield { x" in" }
- PDF @Yield { "__mul(__in, "x")" }
- }
- }
- named e left x {
- @BackEnd @Case {
- PostScript @Yield { x" em" }
- PDF @Yield { "__mul(__em, "x")" }
- }
- }
- named p left x {
- @BackEnd @Case {
- PostScript @Yield { x" pt" }
- PDF @Yield { "__mul(__pt, "x")" }
- }
- }
- named f left x {
- @BackEnd @Case {
- PostScript @Yield { x" ft" }
- PDF @Yield { "__mul(__loutf, "x")" }
- }
- }
- named s left x {
- @BackEnd @Case {
- PostScript @Yield { x" sp" }
- PDF @Yield { "__mul(__louts, "x")" }
- }
- }
- named v left x {
- @BackEnd @Case {
- PostScript @Yield { x" vs" }
- PDF @Yield { "__mul(__loutv, "x")" }
- }
- }
- { 0.5p }
-
- named @Fmta
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtb
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtc
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtd
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmte
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtf
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtg
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmth
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmti
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- named @Fmtj
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named "!" precedence 10 left x named between { dft } right y {}
- named "!!" precedence 10 left x right y {}
- named "!!!" precedence 10 left x right y {}
- named "@Over" precedence 11 left x right y { x // y }
- named "," precedence 12 left x right y {}
- named @Col precedence 12 right x {}
- named @CC right x { clines @Break { & x & } }
- named @RR right x { rlines @Break { & x & } }
- {}
-
- body @Body
-
-@Begin
-
- macro @NP { /1.1b }
-
- def @CC right x { clines @Break { & x & } }
- def @RR right x { rlines @Break { & x & } }
-#
-# VT: these definitions have been modified for PDF support
-#
- def @HSingle {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhs }
- PDF @Yield { "0 0 m __xsize 0 l" linewidth "w 0 J S" }
- }
- }
-
- def @HSingleProject {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhsp }
- PDF @Yield { "0 0 m __xsize 0 l" linewidth "w 2 J S" }
- }
- }
-
- def @HDouble {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhd }
- PDF @Yield { # dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "0 __mul(3, " linewidth ") m __xsize __mul(3, " linewidth ") l" # 0 exch 3 mul moveto xsize exch 3 mul lineto
- linewidth "w 0 J S" # setlinewidth 0 setlinecap stroke
- }
- }
- }
-
- def @HDoubleBelow {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhdb }
- PDF @Yield { # dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "0 __mul(-3, "linewidth") m __xsize __mul(-3, "linewidth") l" # 0 exch -3 mul moveto xsize exch -3 mul lineto
- linewidth "w 0 J S" # setlinewidth 0 setlinecap stroke
- }
- }
- }
-
- def @HDoubleNW {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhdnw }
- PDF @Yield { # dup dup dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "__xsize __mul(3, "linewidth") m" # xsize exch 3 mul moveto
- "__mul(-3, "linewidth") __mul(3, "linewidth") l" # -3 mul exch 3 mul lineto
- "__mul(-3, "linewidth") 0 l" # -3 mul 0 lineto
- linewidth "w 0 j 2 J S" # setlinewidth 0 setlinejoin 2 setlinecap stroke
- }
- }
- }
-
- def @HDoubleNE {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhdne }
- PDF @Yield { # dup dup dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "0 __mul(3, "linewidth") m" # 0 exch 3 mul moveto
- "__add(__xsize, __mul(3, "linewidth")) __mul(3, "linewidth") l" # 3 mul xsize add exch 3 mul lineto
- "__add(__xsize, __mul(3, "linewidth")) 0 l" # 3 mul xsize add 0 lineto
- linewidth "w 0 j 2 J S" # setlinewidth 0 setlinejoin 2 setlinecap stroke
- }
- }
- }
-
- def @HDoubleSW {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhdsw }
- PDF @Yield { # dup dup dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "__xsize __mul(-3, "linewidth") m" # xsize exch -3 mul moveto
- "__mul(-3, "linewidth") __mul(-3, "linewidth") l" # -3 mul exch -3 mul lineto
- "__mul(-3, "linewidth") 0 l" # -3 mul 0 lineto
- linewidth "w 0 j 2 J S" # setlinewidth 0 setlinejoin 2 setlinecap stroke
- }
- }
- }
-
- def @HDoubleSE {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabhdse }
- PDF @Yield { # dup dup dup dup
- "0 0 m __xsize 0 l" # 0 0 moveto xsize 0 lineto
- "0 __mul(-3, "linewidth") m" # 0 exch -3 mul moveto
- "__add(__xsize, __mul(-3, "linewidth")) __mul(-3, "linewidth") l" # 3 mul xsize add exch -3 mul lineto
- "__add(__xsize, __mul( 3, "linewidth")) 0 l" # 3 mul xsize add 0 lineto
- linewidth "w 0 j 2 J S" # setlinewidth 0 setlinejoin 2 setlinecap stroke
- }
- }
- }
-
- def @VSingle {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabvs }
- PDF @Yield {
- "0 0 m 0 __ysize l" # 0 0 moveto 0 ysize lineto
- linewidth "w 0 J S" # setlinewidth 0 setlinecap stroke
- }
- }
- }
-
- def @VDouble {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabvd }
- PDF @Yield { # dup dup
- "0 0 m 0 __ysize l" # 0 0 moveto 0 ysize lineto
- "__mul(-3, "linewidth") 0 m __mul(-3, "linewidth") __ysize l" # -3 mul 0 moveto -3 mul ysize lineto
- linewidth "w 0 J S" # setlinewidth 0 setlinecap stroke
- }
- }
- }
-
- def @VDoubleRight {
- @BackEnd @Case {
- PostScript @Yield { linewidth ltabvdr }
- PDF @Yield { # dup dup
- "0 0 m 0 __ysize l" # 0 0 moveto 0 ysize lineto
- "__mul(3, "linewidth") 0 m __mul(3, "linewidth") __ysize l" # 3 mul 0 moveto 3 mul ysize lineto
- linewidth "w 0 J S" # setlinewidth 0 setlinecap stroke
- }
- }
- }
-
- def @MidHRule
- left rule
- right x
- {
- rule @Case
- {
- no @Yield { @OneCol x }
- { yes single } @Yield { @HSingle @Graphic x }
- { double doubleboxabove } @Yield { @HDouble @Graphic x }
- doubleboxbelow @Yield { @HDoubleBelow @Graphic x }
- }
- }
-
- def @LeftHRule
- left rule
- right x
- {
- rule @Case
- {
- no @Yield { @OneCol x }
- { yes single } @Yield { @HSingleProject @Graphic x }
- double @Yield { @HDouble @Graphic x }
- doubleboxabove @Yield { @HDoubleNW @Graphic x }
- doubleboxbelow @Yield { @HDoubleSW @Graphic x }
- }
- }
-
- def @RightHRule
- left rule
- right x
- {
- rule @Case
- {
- no @Yield { @OneCol x }
- { yes single } @Yield { @HSingleProject @Graphic x }
- double @Yield { @HDouble @Graphic x }
- doubleboxabove @Yield { @HDoubleNE @Graphic x }
- doubleboxbelow @Yield { @HDoubleSE @Graphic x }
- }
- }
-
- def @HSRule
- left rule
- {
- rule @Case
- {
- no @Yield {}
- { yes single } @Yield { @HSingle @Graphic {} }
- double @Yield { @HDouble @Graphic {} }
- doubleboxabove @Yield { @HDouble @Graphic {} }
- doubleboxbelow @Yield { @HDoubleBelow @Graphic {} }
- }
- }
-
- def @ZeroWidth
- right x
- { @OneCol { |0io x |0io }
- }
-
- def @Line
- { single @HSRule
- }
-
- def @DoubleLine
- { double @HSRule
- }
-
- def @Rule
- {
- @OneRow
- {
- @ZeroWidth @HSingle @Graphic { ^|hmargin }
- / @Line /
- &1rt @ZeroWidth @HSingle @Graphic { |hmargin }
- }
- }
-
- def @DoubleRule
- {
- @OneRow
- {
- @ZeroWidth @HDouble @Graphic { ^|hmargin }
- / @DoubleLine /
- &1rt @ZeroWidth @HDouble @Graphic { |hmargin }
- }
- }
-
- def @VRule
- left rule
- right x
- {
- rule @Case
- {
- no @Yield {}
- { yes single } @Yield @OneRow { /0io @VSingle @Graphic x /0io }
- double @Yield @OneRow { /0io @VDouble @Graphic x /0io }
- }
- }
-
- def @VRuleRight
- left rule
- right x
- {
- rule @Case
- {
- no @Yield {}
- {yes single} @Yield @OneRow { /0io @VSingle @Graphic x /0io }
- double @Yield @OneRow { /0io @VDoubleRight @Graphic x /0io }
- }
- }
-
- def @VSRule
- left rule
- {
- rule @Case
- {
- no @Yield {}
- { yes single } @Yield { @VSingle @Graphic {} }
- double @Yield { @VDouble @Graphic {} }
- }
- }
-
- def @VSRuleRight
- left rule
- {
- rule @Case
- {
- no @Yield {}
- {yes single} @Yield { @VSingle @Graphic {} }
- double @Yield { @VDoubleRight @Graphic {} }
- }
- }
-
- def @Wrap
- named ur { no } # Rule up above entry
- named dr { no } # Rule down below entry
- named vm { vmargin } # Vertical margin
- right x # The object to be wrapped
- {
- ur @HSRule
- ^/vm @OneCol @OneRow x
- /vm dr @HSRule
- }
-
- def @Sep
- left x
- named ur { no } # Rule up above entry
- named dr { no } # Rule down below entry
- named sr { no } # Rule separating x from y
- named hm { hmargin } # Horizontal margin
- named vm { vmargin } # Vertical margin
- right y
- {
- def vr
- {
- sr @Case
- { dft @Yield between
- else @Yield sr
- }
- }
-
- x | @OneCol
- { ur @MidHRule {|hm}
- /vm
- /vm dr @MidHRule {|hm}
- }
- | @OneCol
- { vr @VRule { /vm } | ur @MidHRule {|hm}
- /vm vr @VSRule |
- /vm vr @VRule {^/vm } | dr @MidHRule {|hm}
- }
- | y
- }
-
- def @NSep
- left x
- named hm { hmargin }
- right y
- {
- x | @OneCol { |hm } | @OneCol { |hm } | y
- }
-
- def @LeftEdge
- named ur { no } # Rule up above entry
- named dr { no } # Rule down below entry
- named sr { no } # Rule separating x from y
- named hm { hmargin } # Horizontal margin
- named vm { vmargin } # Vertical margin
- right x
- {
- sr @Case
- {
- no @Yield { x }
- else @Yield
- { @OneCol
- {
- sr @VRule { /vm } | ur @LeftHRule { |hm }
- ^/vm sr @VSRule |
- /vm sr @VRule { ^/vm } | dr @LeftHRule { |hm }
- }
- | x
- }
- }
- }
-
- def @RightEdge
- left x
- named ur { no } # Rule up above entry
- named dr { no } # Rule down below entry
- named sr { no } # Rule separating x from y
- named hm { hmargin } # Horizontal margin
- named vm { vmargin } # Vertical margin
- {
- sr @Case
- {
- no @Yield { x }
- else @Yield
- {
- x | @OneCol
- {
- ur @RightHRule { |hm }
- /vm
- /vm dr @RightHRule { |hm }
- }
- | @OneCol
- {
- sr @VRuleRight { /vm }
- /vm sr @VSRuleRight
- /vm sr @VRuleRight { ^/vm }
- }
- }
- }
- }
-
- def @DoRowa
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmta
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowb
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtb
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowc
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtc
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowd
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtd
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowe
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmte
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowf
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtf
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowg
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtg
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowh
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmth
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowi
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmti
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- def @DoRowj
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named above { above }
- named below { below }
- named side { side }
- named vmargin { vmargin }
- {
- @LeftEdge ur { above } dr { below } sr { side } vm { vmargin }
- @Fmtj
- A { A } B { B } C { C } D { D } E { E }
- F { F } G { G } H { H } I { I } J { J }
- K { K } L { L } M { M } N { N } O { O }
- P { P } Q { Q } R { R } S { S } T { T }
- U { U } V { V } W { W } X { X } Y { Y }
- Z { Z }
- @Col { @Wrap ur {above} dr {below} vm {vmargin} x}
- ! { x @Sep ur {above} dr {below} sr { between } vm {vmargin} y}
- !! { x @Sep ur {above} dr {below} sr { single } vm {vmargin} y}
- !!! { x @Sep ur {above} dr {below} sr { double } vm {vmargin} y}
- , { x @NSep y }
- @RightEdge ur { above } dr { below } sr { side } vm { vmargin }
- }
-
- macro @Rowa { / @DoRowa }
- macro @Rowb { / @DoRowb }
- macro @Rowc { / @DoRowc }
- macro @Rowd { / @DoRowd }
- macro @Rowe { / @DoRowe }
- macro @Rowf { / @DoRowf }
- macro @Rowg { / @DoRowg }
- macro @Rowh { / @DoRowh }
- macro @Rowi { / @DoRowi }
- macro @Rowj { / @DoRowj }
-
- macro @FirstRowa { @DoRowa }
- macro @FirstRowb { @DoRowb }
- macro @FirstRowc { @DoRowc }
- macro @FirstRowd { @DoRowd }
- macro @FirstRowe { @DoRowe }
- macro @FirstRowf { @DoRowf }
- macro @FirstRowg { @DoRowg }
- macro @FirstRowh { @DoRowh }
- macro @FirstRowi { @DoRowi }
- macro @FirstRowj { @DoRowj }
-
- macro @MarkRowa { ^/ @DoRowa }
- macro @MarkRowb { ^/ @DoRowb }
- macro @MarkRowc { ^/ @DoRowc }
- macro @MarkRowd { ^/ @DoRowd }
- macro @MarkRowe { ^/ @DoRowe }
- macro @MarkRowf { ^/ @DoRowf }
- macro @MarkRowg { ^/ @DoRowg }
- macro @MarkRowh { ^/ @DoRowh }
- macro @MarkRowi { ^/ @DoRowi }
- macro @MarkRowj { ^/ @DoRowj }
-
-
- @Body
-
-@End @Tab
diff --git a/include/include/tabf.lpg b/include/include/tabf.lpg
deleted file mode 100644
index 0094114..0000000
--- a/include/include/tabf.lpg
+++ /dev/null
@@ -1,118 +0,0 @@
-%%BeginResource: procset LoutTabPrependGraphic
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% %
-% PostScript @SysPrependGraphic file for @Tab %
-% %
-% This file has been placed in the public domain %
-% by its author, Jeffrey H. Kingston %
-% %
-% To assist in avoiding name clashes, the names %
-% of all these symbols begin with "ltab". %
-% %
-% Jeffrey H. Kingston %
-% 24 September 1991 %
-% 22 December 1992 %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% linewidth ltabhs -
-% horizontal single line
-/ltabhs
-{ 0 0 moveto xsize 0 lineto
- setlinewidth 0 setlinecap stroke
-} def
-
-% linewidth ltabhsp -
-% horizontal single line with projecting ends
-/ltabhsp
-{ 0 0 moveto xsize 0 lineto
- setlinewidth 2 setlinecap stroke
-} def
-
-% linewidth ltabhd -
-% horizontal double line
-/ltabhd
-{ dup dup
- 0 0 moveto xsize 0 lineto
- 0 exch 3 mul moveto xsize exch 3 mul lineto
- setlinewidth 0 setlinecap stroke
-} def
-
-% linewidth ltabhdb -
-% horizontal double line below mark
-/ltabhdb
-{ dup dup
- 0 0 moveto xsize 0 lineto
- 0 exch -3 mul moveto xsize exch -3 mul lineto
- setlinewidth 0 setlinecap stroke
-} def
-
-% linewidth ltabhdnw -
-% horizontal double line with northwest corner
-/ltabhdnw
-{ dup dup dup dup
- 0 0 moveto xsize 0 lineto
- xsize exch 3 mul moveto
- -3 mul exch 3 mul lineto
- -3 mul 0 lineto
- setlinewidth 0 setlinejoin 2 setlinecap stroke
-} def
-
-% linewidth ltabhdne -
-% horizontal double line with northeast corner
-/ltabhdne
-{ dup dup dup dup
- 0 0 moveto xsize 0 lineto
- 0 exch 3 mul moveto
- 3 mul xsize add exch 3 mul lineto
- 3 mul xsize add 0 lineto
- setlinewidth 0 setlinejoin 2 setlinecap stroke
-} def
-
-% linewidth ltabhdsw -
-% horizontal double line with southwest corner
-/ltabhdsw
-{ dup dup dup dup
- 0 0 moveto xsize 0 lineto
- xsize exch -3 mul moveto
- -3 mul exch -3 mul lineto
- -3 mul 0 lineto
- setlinewidth 0 setlinejoin 2 setlinecap stroke
-} def
-
-% linewidth ltabhdse -
-% horizontal double line with southeast corner
-/ltabhdse
-{ dup dup dup dup
- 0 0 moveto xsize 0 lineto
- 0 exch -3 mul moveto
- 3 mul xsize add exch -3 mul lineto
- 3 mul xsize add 0 lineto
- setlinewidth 0 setlinejoin 2 setlinecap stroke
-} def
-
-% linewidth ltabvs -
-% vertical single line
-/ltabvs
-{ 0 0 moveto 0 ysize lineto
- setlinewidth 0 setlinecap stroke
-} def
-
-% linewidth ltabvd -
-% vertical double line
-/ltabvd
-{ dup dup
- 0 0 moveto 0 ysize lineto
- -3 mul 0 moveto -3 mul ysize lineto
- setlinewidth 0 setlinecap stroke
-} def
-
-% linewidth ltabvdr -
-% vertical double line to right of mark
-/ltabvdr
-{ dup dup
- 0 0 moveto 0 ysize lineto
- 3 mul 0 moveto 3 mul ysize lineto
- setlinewidth 0 setlinecap stroke
-} def
-%%EndResource
diff --git a/include/include/tbl b/include/include/tbl
deleted file mode 100644
index 4e73092..0000000
--- a/include/include/tbl
+++ /dev/null
@@ -1,82 +0,0 @@
-
-###############################################################################
-# #
-# Lout setup file for table printing #
-# #
-# Jeffrey H. Kingston #
-# 5 February 1999 #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-###############################################################################
-
-###############################################################################
-# #
-# The @SysInclude { tblf } line #
-# #
-# This line causes Lout to read the definitions for tables, and should #
-# not be touched. #
-# #
-###############################################################################
-
-@SysInclude { tblf }
-
-
-###############################################################################
-# #
-# The @TbleSetup @Use clause #
-# #
-# To change the default value of any option, delete the # at the start of #
-# its line and change the value between braces. #
-# #
-###############################################################################
-
-@Use { @TblSetup
- # paint { none } # colour of background
- # texture { solid } # texture of paint background
- # background { } # object in background
- # font { } # font
- # break { } # paragraph breaking style
- # width { } # fixed width or "expand"
- # height { } # fixed height
- # indent { } # horizontal indent
- # indentvertical { } # vertical indent
- # strut { yes } # vertical strut
- # struthorizontal { no } # horizontal strut
- # margin { } # margin all round
- # marginhorizontal { 0.6f @OrIfPlain 2s } # margin left, right of entry
- # marginleft { } # margin left of entry
- # marginright { } # margin right of entry
- # marginvertical { 0.3f @OrIfPlain 2f } # margin above, below entry
- # marginabove { } # margin above entry
- # marginbelow { } # margin below entry
- # rule { no } # rule all round cell
- # rulehorizontal { } # rule above and below cell
- # ruleabove { } # rule above cell
- # rulebelow { } # rule below cell
- # rulevertical { } # rule left and right of cell
- # ruleleft { } # rule left of cell
- # ruleright { } # rule right of cell
- # rulewidth { 0.05f } # width (thickness) of rule
- # rulehorizontalwidth { {} @OrIfPlain 1f } # width of above, below rules
- # ruleabovewidth { } # width of above rule
- # rulebelowwidth { } # width of below rule
- # ruleverticalwidth { {} @OrIfPlain 1s } # width of left, right rules
- # ruleleftwidth { } # width of left rule
- # rulerightwidth { } # width of right rule
- # rulegap { 0.15f } # gap between double rules
- # rulehorizontalgap { {} @OrIfPlain 0f } # gap between dbl a&b rules
- # ruleabovegap { } # gap between dbl above rules
- # rulebelowgap { } # gap between dbl below rules
- # ruleverticalgap { {} @OrIfPlain 0s } # gap between dbl l&r rules
- # ruleleftgap { } # gap between dbl left rules
- # rulerightgap { } # gap between dbl right rules
- # rulecolour { black } # color of rules
- # rulehorizontalcolour { } # color of above, below rules
- # ruleabovecolour { } # color of above rules
- # rulebelowcolour { } # color of below rules
- # ruleverticalcolour { } # color of left, right rules
- # ruleleftcolour { } # color of left rules
- # rulerightcolour { } # color of right rules
- # ruleplainchar { . } # plain text rule characters
-}
diff --git a/include/include/tblf b/include/include/tblf
deleted file mode 100644
index e01fd16..0000000
--- a/include/include/tblf
+++ /dev/null
@@ -1,3218 +0,0 @@
-
-###############################################################################
-# #
-# Lout @Tbl package for tables #
-# #
-# Version 1.0 (22 November 1998) #
-# Version 1.1 (21 October 2001: improvements to handling of colour) #
-# Jeffrey H. Kingston #
-# #
-# Based on the @Tab package (Jeffrey H. Kingston, September 1991). #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-@SysInclude { coltex }
-
-export @OrIfPlain
-def @TOIP {
-
- def @OrIfPlain
- left ps
- right plain
- {
- @BackEnd @Case {
- PlainText @Yield plain
- else @Yield ps
- }
- }
-}
-
-export @Tbl
-def @TblSetup
- import @TOIP named paint p { none }
- import @TextureImport named texture t { solid }
- import @TOIP named background bg {}
- import @TOIP named font f {}
- import @TOIP named break b {}
- import @TOIP named width w {}
- import @TOIP named height h {}
- import @TOIP named indent i {}
- import @TOIP named indentvertical iv {}
- import @TOIP named strut s { yes }
- import @TOIP named struthorizontal sh { no }
- import @TOIP named margin m {}
- import @TOIP named marginhorizontal mh { 0.6f @OrIfPlain 2s }
- import @TOIP named marginleft ml {}
- import @TOIP named marginright mr {}
- import @TOIP named marginvertical mv { 0.3f @OrIfPlain 2f }
- import @TOIP named marginabove ma {}
- import @TOIP named marginbelow mb {}
- import @TOIP named rule r { no }
- import @TOIP named rulehorizontal rh {}
- import @TOIP named ruleabove ra {}
- import @TOIP named rulebelow rb {}
- import @TOIP named rulevertical rv {}
- import @TOIP named ruleleft rl {}
- import @TOIP named ruleright rr {}
- import @TOIP named rulewidth rw { 0.05f }
- import @TOIP named rulehorizontalwidth rhw { {} @OrIfPlain 1f }
- import @TOIP named ruleabovewidth raw {}
- import @TOIP named rulebelowwidth rbw {}
- import @TOIP named ruleverticalwidth rvw { {} @OrIfPlain 1s }
- import @TOIP named ruleleftwidth rlw {}
- import @TOIP named rulerightwidth rrw {}
- import @TOIP named rulegap rg { 0.15f }
- import @TOIP named rulehorizontalgap rhg { {} @OrIfPlain 0f }
- import @TOIP named ruleabovegap rag {}
- import @TOIP named rulebelowgap rbg {}
- import @TOIP named ruleverticalgap rvg { {} @OrIfPlain 0s }
- import @TOIP named ruleleftgap rlg {}
- import @TOIP named rulerightgap rrg {}
- import @TOIP named rulecolour rulecolor rc { black }
- import @TOIP named rulehorizontalcolour rulehorizontalcolor rhc {}
- import @TOIP named ruleabovecolour ruleabovecolor rac {}
- import @TOIP named rulebelowcolour rulebelowcolor rbc {}
- import @TOIP named ruleverticalcolour ruleverticalcolor rvc {}
- import @TOIP named ruleleftcolour ruleleftcolor rlc {}
- import @TOIP named rulerightcolour rulerightcolor rrc {}
- import @TOIP named ruleplainchar rpc { . }
-
-@Begin
-
- def @Else
- precedence 20
- associativity right
- left x
- right y
- {
- x @Case {
- "" @Yield y
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # Specific option values as the setup file knows them (i.e. Level 1) #
- # #
- ###########################################################################
-
- def setupp { p }
- def setupt { t }
- def setupbg { bg }
- def setupf { f }
- def setupb { b }
- def setupw { w }
- def setuph { h }
- def setupi { i }
- def setupiv { iv }
- def setups { s }
- def setupsh { sh }
- def setupml { ml @Else mh @Else m }
- def setupmr { mr @Else mh @Else m }
- def setupma { ma @Else mv @Else m }
- def setupmb { mb @Else mv @Else m }
- def setupra { ra @Else rh @Else r }
- def setuprb { rb @Else rh @Else r }
- def setuprl { rl @Else rv @Else r }
- def setuprr { rr @Else rv @Else r }
- def setupraw { raw @Else rhw @Else rw }
- def setuprbw { rbw @Else rhw @Else rw }
- def setuprlw { rlw @Else rvw @Else rw }
- def setuprrw { rrw @Else rvw @Else rw }
- def setuprag { rag @Else rhg @Else rg }
- def setuprbg { rbg @Else rhg @Else rg }
- def setuprlg { rlg @Else rvg @Else rg }
- def setuprrg { rrg @Else rvg @Else rg }
- def setuprac { rac @Else rhc @Else rc }
- def setuprbc { rbc @Else rhc @Else rc }
- def setuprlc { rlc @Else rvc @Else rc }
- def setuprrc { rrc @Else rvc @Else rc }
- def setuprpc { rpc }
-
-
- ###########################################################################
- # #
- # @Tbl symbol #
- # #
- ###########################################################################
-
- export
-
- @Row
- @Rowa
- @Rowb
- @Rowc
- @Rowd
- @Rowe
- @Rowf
- @Rowg
- @Rowh
-
- @FirstRow
- @FirstRowa
- @FirstRowb
- @FirstRowc
- @FirstRowd
- @FirstRowe
- @FirstRowf
- @FirstRowg
- @FirstRowh
-
- @MarkRow
- @MarkRowa
- @MarkRowb
- @MarkRowc
- @MarkRowd
- @MarkRowe
- @MarkRowf
- @MarkRowg
- @MarkRowh
-
- @NoBreakRow
- @NoBreakRowa
- @NoBreakRowb
- @NoBreakRowc
- @NoBreakRowd
- @NoBreakRowe
- @NoBreakRowf
- @NoBreakRowg
- @NoBreakRowh
-
- @HeaderRow
- @HeaderRowa
- @HeaderRowb
- @HeaderRowc
- @HeaderRowd
- @HeaderRowe
- @HeaderRowf
- @HeaderRowg
- @HeaderRowh
-
- @HeaderFirstRow
- @HeaderFirstRowa
- @HeaderFirstRowb
- @HeaderFirstRowc
- @HeaderFirstRowd
- @HeaderFirstRowe
- @HeaderFirstRowf
- @HeaderFirstRowg
- @HeaderFirstRowh
-
- @EndHeaderRow
-
- @NP
-
- def @Tbl
-
- # parameters for formatting the entire table
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
-
- # parameters for formatting @Rowa rows
- named apaint ap {}
- import @TextureImport named atexture at {}
- named abackground abg {}
- named afont af {}
- named abreak ab {}
- named awidth aw {}
- named aheight ah {}
- named aindent ai {}
- named aindentvertical aiv {}
- named astrut as {}
- named astruthorizontal ash {}
- named amargin am {}
- named amarginhorizontal amh {}
- named amarginleft aml {}
- named amarginright amr {}
- named amarginvertical amv {}
- named amarginabove ama {}
- named amarginbelow amb {}
- named arule ar {}
- named arulehorizontal arh {}
- named aruleabove ara {}
- named arulebelow arb {}
- named arulevertical arv {}
- named aruleleft arl {}
- named aruleright arr {}
- named arulewidth arw {}
- named arulehorizontalwidth arhw {}
- named aruleabovewidth araw {}
- named arulebelowwidth arbw {}
- named aruleverticalwidth arvw {}
- named aruleleftwidth arlw {}
- named arulerightwidth arrw {}
- named arulegap arg {}
- named arulehorizontalgap arhg {}
- named aruleabovegap arag {}
- named arulebelowgap arbg {}
- named aruleverticalgap arvg {}
- named aruleleftgap arlg {}
- named arulerightgap arrg {}
- named arulecolour arulecolor arc {}
- named arulehorizontalcolour arulehorizontalcolor arhc {}
- named aruleabovecolour aruleabovecolor arac {}
- named arulebelowcolour arulebelowcolor arbc {}
- named aruleverticalcolour aruleverticalcolor arvc {}
- named aruleleftcolour aruleleftcolor arlc {}
- named arulerightcolour arulerightcolor arrc {}
- named aruleplainchar arpc {}
- named aformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowb rows
- named bpaint bp {}
- import @TextureImport named btexture bt {}
- named bbackground bbg {}
- named bfont bf {}
- named bbreak bb {}
- named bwidth bw {}
- named bheight bh {}
- named bindent bi {}
- named bindentvertical biv {}
- named bstrut bs {}
- named bstruthorizontal bsh {}
- named bmargin bm {}
- named bmarginhorizontal bmh {}
- named bmarginleft bml {}
- named bmarginright bmr {}
- named bmarginvertical bmv {}
- named bmarginabove bma {}
- named bmarginbelow bmb {}
- named brule br {}
- named brulehorizontal brh {}
- named bruleabove bra {}
- named brulebelow brb {}
- named brulevertical brv {}
- named bruleleft brl {}
- named bruleright brr {}
- named brulewidth brw {}
- named brulehorizontalwidth brhw {}
- named bruleabovewidth braw {}
- named brulebelowwidth brbw {}
- named bruleverticalwidth brvw {}
- named bruleleftwidth brlw {}
- named brulerightwidth brrw {}
- named brulegap brg {}
- named brulehorizontalgap brhg {}
- named bruleabovegap brag {}
- named brulebelowgap brbg {}
- named bruleverticalgap brvg {}
- named bruleleftgap brlg {}
- named brulerightgap brrg {}
- named brulecolour brulecolor brc {}
- named brulehorizontalcolour brulehorizontalcolor brhc {}
- named bruleabovecolour bruleabovecolor brac {}
- named brulebelowcolour brulebelowcolor brbc {}
- named bruleverticalcolour bruleverticalcolor brvc {}
- named bruleleftcolour bruleleftcolor brlc {}
- named brulerightcolour brulerightcolor brrc {}
- named bruleplainchar brpc {}
- named bformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowc rows
- named cpaint cp {}
- import @TextureImport named ctexture ct {}
- named cbackground cbg {}
- named cfont cf {}
- named cbreak cb {}
- named cwidth cw {}
- named cheight ch {}
- named cindent ci {}
- named cindentvertical civ {}
- named cstrut cs {}
- named cstruthorizontal csh {}
- named cmargin cm {}
- named cmarginhorizontal cmh {}
- named cmarginleft cml {}
- named cmarginright cmr {}
- named cmarginvertical cmv {}
- named cmarginabove cma {}
- named cmarginbelow cmb {}
- named crule cr {}
- named crulehorizontal crh {}
- named cruleabove cra {}
- named crulebelow crb {}
- named crulevertical crv {}
- named cruleleft crl {}
- named cruleright crr {}
- named crulewidth crw {}
- named crulehorizontalwidth crhw {}
- named cruleabovewidth craw {}
- named crulebelowwidth crbw {}
- named cruleverticalwidth crvw {}
- named cruleleftwidth crlw {}
- named crulerightwidth crrw {}
- named crulegap crg {}
- named crulehorizontalgap crhg {}
- named cruleabovegap crag {}
- named crulebelowgap crbg {}
- named cruleverticalgap crvg {}
- named cruleleftgap crlg {}
- named crulerightgap crrg {}
- named crulecolour crulecolor crc {}
- named crulehorizontalcolour crulehorizontalcolor crhc {}
- named cruleabovecolour cruleabovecolor crac {}
- named crulebelowcolour crulebelowcolor crbc {}
- named cruleverticalcolour cruleverticalcolor crvc {}
- named cruleleftcolour cruleleftcolor crlc {}
- named crulerightcolour crulerightcolor crrc {}
- named cruleplainchar crpc {}
- named cformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowd rows
- named dpaint dp {}
- import @TextureImport named dtexture dt {}
- named dbackground dbg {}
- named dfont df {}
- named dbreak db {}
- named dwidth dw {}
- named dheight dh {}
- named dindent di {}
- named dindentvertical div {}
- named dstrut ds {}
- named dstruthorizontal dsh {}
- named dmargin dm {}
- named dmarginhorizontal dmh {}
- named dmarginleft dml {}
- named dmarginright dmr {}
- named dmarginvertical dmv {}
- named dmarginabove dma {}
- named dmarginbelow dmb {}
- named drule dr {}
- named drulehorizontal drh {}
- named druleabove dra {}
- named drulebelow drb {}
- named drulevertical drv {}
- named druleleft drl {}
- named druleright drr {}
- named drulewidth drw {}
- named drulehorizontalwidth drhw {}
- named druleabovewidth draw {}
- named drulebelowwidth drbw {}
- named druleverticalwidth drvw {}
- named druleleftwidth drlw {}
- named drulerightwidth drrw {}
- named drulegap drg {}
- named drulehorizontalgap drhg {}
- named druleabovegap drag {}
- named drulebelowgap drbg {}
- named druleverticalgap drvg {}
- named druleleftgap drlg {}
- named drulerightgap drrg {}
- named drulecolour drulecolor drc {}
- named drulehorizontalcolour drulehorizontalcolor drhc {}
- named druleabovecolour druleabovecolor drac {}
- named drulebelowcolour drulebelowcolor drbc {}
- named druleverticalcolour druleverticalcolor drvc {}
- named druleleftcolour druleleftcolor drlc {}
- named drulerightcolour drulerightcolor drrc {}
- named druleplainchar drpc {}
- named dformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowe rows
- named epaint ep {}
- import @TextureImport named etexture et {}
- named ebackground ebg {}
- named efont ef {}
- named ebreak eb {}
- named ewidth ew {}
- named eheight eh {}
- named eindent ei {}
- named eindentvertical eiv {}
- named estrut es {}
- named estruthorizontal esh {}
- named emargin em {}
- named emarginhorizontal emh {}
- named emarginleft eml {}
- named emarginright emr {}
- named emarginvertical emv {}
- named emarginabove ema {}
- named emarginbelow emb {}
- named erule er {}
- named erulehorizontal erh {}
- named eruleabove era {}
- named erulebelow erb {}
- named erulevertical erv {}
- named eruleleft erl {}
- named eruleright err {}
- named erulewidth erw {}
- named erulehorizontalwidth erhw {}
- named eruleabovewidth eraw {}
- named erulebelowwidth erbw {}
- named eruleverticalwidth ervw {}
- named eruleleftwidth erlw {}
- named erulerightwidth errw {}
- named erulegap erg {}
- named erulehorizontalgap erhg {}
- named eruleabovegap erag {}
- named erulebelowgap erbg {}
- named eruleverticalgap ervg {}
- named eruleleftgap erlg {}
- named erulerightgap errg {}
- named erulecolour erulecolor erc {}
- named erulehorizontalcolour erulehorizontalcolor erhc {}
- named eruleabovecolour eruleabovecolor erac {}
- named erulebelowcolour erulebelowcolor erbc {}
- named eruleverticalcolour eruleverticalcolor ervc {}
- named eruleleftcolour eruleleftcolor erlc {}
- named erulerightcolour erulerightcolor errc {}
- named eruleplainchar erpc {}
- named eformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowf rows
- named fpaint fp {}
- import @TextureImport named ftexture ft {}
- named fbackground fbg {}
- named ffont ff {}
- named fbreak fb {}
- named fwidth fw {}
- named fheight fh {}
- named findent fi {}
- named findentvertical fiv {}
- named fstrut fs {}
- named fstruthorizontal fsh {}
- named fmargin fm {}
- named fmarginhorizontal fmh {}
- named fmarginleft fml {}
- named fmarginright fmr {}
- named fmarginvertical fmv {}
- named fmarginabove fma {}
- named fmarginbelow fmb {}
- named frule fr {}
- named frulehorizontal frh {}
- named fruleabove fra {}
- named frulebelow frb {}
- named frulevertical frv {}
- named fruleleft frl {}
- named fruleright frr {}
- named frulewidth frw {}
- named frulehorizontalwidth frhw {}
- named fruleabovewidth fraw {}
- named frulebelowwidth frbw {}
- named fruleverticalwidth frvw {}
- named fruleleftwidth frlw {}
- named frulerightwidth frrw {}
- named frulegap frg {}
- named frulehorizontalgap frhg {}
- named fruleabovegap frag {}
- named frulebelowgap frbg {}
- named fruleverticalgap frvg {}
- named fruleleftgap frlg {}
- named frulerightgap frrg {}
- named frulecolour frulecolor frc {}
- named frulehorizontalcolour frulehorizontalcolor frhc {}
- named fruleabovecolour fruleabovecolor frac {}
- named frulebelowcolour frulebelowcolor frbc {}
- named fruleverticalcolour fruleverticalcolor frvc {}
- named fruleleftcolour fruleleftcolor frlc {}
- named frulerightcolour frulerightcolor frrc {}
- named fruleplainchar frpc {}
- named fformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowg rows
- named gpaint gp {}
- import @TextureImport named gtexture gt {}
- named gbackground gbg {}
- named gfont gf {}
- named gbreak gb {}
- named gwidth gw {}
- named gheight gh {}
- named gindent gi {}
- named gindentvertical giv {}
- named gstrut gs {}
- named gstruthorizontal gsh {}
- named gmargin gm {}
- named gmarginhorizontal gmh {}
- named gmarginleft gml {}
- named gmarginright gmr {}
- named gmarginvertical gmv {}
- named gmarginabove gma {}
- named gmarginbelow gmb {}
- named grule gr {}
- named grulehorizontal grh {}
- named gruleabove gra {}
- named grulebelow grb {}
- named grulevertical grv {}
- named gruleleft grl {}
- named gruleright grr {}
- named grulewidth grw {}
- named grulehorizontalwidth grhw {}
- named gruleabovewidth graw {}
- named grulebelowwidth grbw {}
- named gruleverticalwidth grvw {}
- named gruleleftwidth grlw {}
- named grulerightwidth grrw {}
- named grulegap grg {}
- named grulehorizontalgap grhg {}
- named gruleabovegap grag {}
- named grulebelowgap grbg {}
- named gruleverticalgap grvg {}
- named gruleleftgap grlg {}
- named grulerightgap grrg {}
- named grulecolour grulecolor grc {}
- named grulehorizontalcolour grulehorizontalcolor grhc {}
- named gruleabovecolour gruleabovecolor grac {}
- named grulebelowcolour grulebelowcolor grbc {}
- named gruleverticalcolour gruleverticalcolor grvc {}
- named gruleleftcolour gruleleftcolor grlc {}
- named grulerightcolour grulerightcolor grrc {}
- named gruleplainchar grpc {}
- named gformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- # parameters for formatting @Rowh rows
- named hpaint hp {}
- import @TextureImport named htexture ht {}
- named hbackground hbg {}
- named hfont hf {}
- named hbreak hb {}
- named hwidth hw {}
- named hheight hh {}
- named hindent hi {}
- named hindentvertical hiv {}
- named hstrut hs {}
- named hstruthorizontal hsh {}
- named hmargin hm {}
- named hmarginhorizontal hmh {}
- named hmarginleft hml {}
- named hmarginright hmr {}
- named hmarginvertical hmv {}
- named hmarginabove hma {}
- named hmarginbelow hmb {}
- named hrule hr {}
- named hrulehorizontal hrh {}
- named hruleabove hra {}
- named hrulebelow hrb {}
- named hrulevertical hrv {}
- named hruleleft hrl {}
- named hruleright hrr {}
- named hrulewidth hrw {}
- named hrulehorizontalwidth hrhw {}
- named hruleabovewidth hraw {}
- named hrulebelowwidth hrbw {}
- named hruleverticalwidth hrvw {}
- named hruleleftwidth hrlw {}
- named hrulerightwidth hrrw {}
- named hrulegap hrg {}
- named hrulehorizontalgap hrhg {}
- named hruleabovegap hrag {}
- named hrulebelowgap hrbg {}
- named hruleverticalgap hrvg {}
- named hruleleftgap hrlg {}
- named hrulerightgap hrrg {}
- named hrulecolour hrulecolor hrc {}
- named hrulehorizontalcolour hrulehorizontalcolor hrhc {}
- named hruleabovecolour hruleabovecolor hrac {}
- named hrulebelowcolour hrulebelowcolor hrbc {}
- named hruleverticalcolour hruleverticalcolor hrvc {}
- named hruleleftcolour hruleleftcolor hrlc {}
- named hrulerightcolour hrulerightcolor hrrc {}
- named hruleplainchar hrpc {}
- named hformat
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
-
- body @Body # this is the right parameter of @Tbl
-
- {
-
- #######################################################################
- # #
- # Specific option values as @Tbl knows them (i.e. Level 2) #
- # #
- #######################################################################
-
- def tblp { p @Else setupp }
- def tblt { t @Else setupt }
- def tblbg { bg @Else setupbg }
- def tblf { f @Else setupf }
- def tblb { b @Else setupb }
- def tblw { w @Else setupw }
- def tblh { h @Else setuph }
- def tbli { i @Else setupi }
- def tbliv { iv @Else setupiv }
- def tbls { s @Else setups }
- def tblsh { sh @Else setupsh }
- def tblml { ml @Else mh @Else m @Else setupml }
- def tblmr { mr @Else mh @Else m @Else setupmr }
- def tblma { ma @Else mv @Else m @Else setupma }
- def tblmb { mb @Else mv @Else m @Else setupmb }
- def tblra { ra @Else rh @Else r @Else setupra }
- def tblrb { rb @Else rh @Else r @Else setuprb }
- def tblrl { rl @Else rv @Else r @Else setuprl }
- def tblrr { rr @Else rv @Else r @Else setuprr }
- def tblraw { raw @Else rhw @Else rw @Else setupraw }
- def tblrbw { rbw @Else rhw @Else rw @Else setuprbw }
- def tblrlw { rlw @Else rvw @Else rw @Else setuprlw }
- def tblrrw { rrw @Else rvw @Else rw @Else setuprrw }
- def tblrag { rag @Else rhg @Else rg @Else setuprag }
- def tblrbg { rbg @Else rhg @Else rg @Else setuprbg }
- def tblrlg { rlg @Else rvg @Else rg @Else setuprlg }
- def tblrrg { rrg @Else rvg @Else rg @Else setuprrg }
- def tblrac { rac @Else rhc @Else rc @Else setuprac }
- def tblrbc { rbc @Else rhc @Else rc @Else setuprbc }
- def tblrlc { rlc @Else rvc @Else rc @Else setuprlc }
- def tblrrc { rrc @Else rvc @Else rc @Else setuprrc }
- def tblrpc { rpc @Else setuprpc }
-
-
- def @DoCell
- named compulsory p {}
- named compulsory t {}
- named compulsory bg {}
- named compulsory f {}
- named compulsory b {}
- named compulsory w {}
- named compulsory h {}
- named compulsory i {}
- named compulsory iv {}
- named compulsory s {}
- named compulsory sh {}
- named compulsory ml {}
- named compulsory mr {}
- named compulsory ma {}
- named compulsory mb {}
- named compulsory ra {}
- named compulsory rb {}
- named compulsory rl {}
- named compulsory rr {}
- named compulsory raw {}
- named compulsory rbw {}
- named compulsory rlw {}
- named compulsory rrw {}
- named compulsory rag {}
- named compulsory rbg {}
- named compulsory rlg {}
- named compulsory rrg {}
- named compulsory rac {}
- named compulsory rbc {}
- named compulsory rlc {}
- named compulsory rrc {}
- named compulsory rpc {}
- right @Body
- {
-
- def @ZeroWidth right x
- {
- @OneCol { |0io x |0io }
- }
-
- def @ZeroHeight right x
- {
- @OneRow { /0io x /0io }
- }
-
- def @PDFBox
- {
- "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h"
- }
-
- def @PDFAddPaint right col
- {
- col @Case {
- none @Yield ""
- else @Yield { "q" @ColourCommand col "f Q" }
- }
- }
-
- def @PSAddPaint right col
- {
- col @Case {
- none @Yield ""
- else @Yield { @ColourCommand col "fill" }
- }
- }
-
- def @FillBox left col right x
- {
- @BackEnd @Case {
- PostScript @Yield { {"LoutBox" @PSAddPaint col } @Graphic x }
- PDF @Yield { { @PDFBox @PDFAddPaint col "S" } @Graphic x }
- PlainText @Yield { rpc @PlainGraphic x }
- }
- }
-
- def @HRule left col right thick
- {
- @ZeroHeight thick @High col @FillBox {}
- # thick @High col @FillBox {}
- }
-
- def @VRule left col right thick
- {
- @ZeroWidth thick @Wide col @FillBox {}
- # thick @Wide col @FillBox {}
- }
-
- def @DoubleHRule
- left col
- named gap {}
- right thick
- {
- @OneCol { col @HRule thick /gap col @HRule thick }
- }
-
- def @DoubleVRule
- left col
- named gap {}
- right thick
- {
- @OneRow { col @VRule thick |gap col @VRule thick }
- }
-
- def @MakeHRule
- left col
- named thick {}
- named gap {}
- right type
- {
- type @Case {
- { none "" no } @Yield {}
- { yes single } @Yield col @HRule thick
- { double } @Yield col @DoubleHRule gap { gap } thick
- }
- }
-
- def @MakeVRule
- left col
- named thick {}
- named gap {}
- right type
- {
- type @Case {
- { none "" no } @Yield {}
- { yes single } @Yield col @VRule thick
- { double } @Yield col @DoubleVRule gap { gap } thick
- }
- }
-
- def @RuleBox
- left col
- named hthick {}
- named vthick {}
- named htype {}
- named vtype {}
- {
- htype @Case {
- { none "" no } @Yield {}
- else @Yield vtype @Case {
- { none "" no } @Yield {}
- else @Yield {
- @ZeroWidth @ZeroHeight hthick @Wide vthick @High
- col @FillBox {}
- }
- }
- }
- }
-
- def @AddRules
- right x
- {
- {
- rlc @MakeVRule thick { rlw } gap { rlg } rl
- |0rt |1rt
- rrc @MakeVRule thick { rrw } gap { rrg } rr
- } @Background
- { rac @MakeHRule thick { raw } gap { rag } ra
- /0rt
- /1rt
- rbc @MakeHRule thick { rbw } gap { rbg } rb
- } @Background
- {
- |1rt rac @RuleBox hthick { rrw } vthick { raw } htype { rr } vtype { ra }
- /0rt
- /1rt |1rt
- rbc @RuleBox hthick { rrw } vthick { rbw } htype { rr } vtype { rb }
- } @Background x
-
- }
-
- def @AddMargins
- right x
- {
- @OneCol @OneRow {
- ^|ml |mr
- ^/ma | x |
- /mb | |
- }
- }
-
- def @PaintBox right x
- {
- @BackEnd @Case {
- PostScript @Yield { {"LoutBox" @ColourCommand p t "fill"} @Graphic x }
- PDF @Yield { { @PDFBox @PDFAddPaint col "S" } @Graphic x }
- PlainText @Yield { x }
- }
- }
-
- def @AddPaint
- right x
- {
- p @Case {
- { none nopaint no } @Yield x
- else @Yield { @PaintBox x }
- }
- }
-
- def @Strut right x
- {
- def strutval right x
- {
- x @Case {
- { no No "" } @Yield "0.0f"
- { yes Yes } @Yield "1.0f"
- else @Yield x
- }
- }
-
- def vs { "0.5w" @VShift { { strutval s } @High } }
- def hs { { strutval sh } @Wide }
-
- @OneCol @OneRow { ^| hs ^/ vs | x }
- }
-
- def @VSize right x
- {
- h @Case {
- "" @Yield x
- else @Yield { h @High x }
- }
- }
-
- def @HSize right x
- {
- w @Case {
- "" @Yield x
- "expand" @Yield { "40c" @Wide x }
- else @Yield { w @Wide x }
- }
- }
-
- def @HIndent right x
- {
- i @Case {
- left @Yield @OneCol { | x }
- ctr @Yield @OneCol { |"0.5rt" x }
- right @Yield @OneCol { |"1.0rt" x }
- mctr @Yield @OneCol { |"0.5bx" x }
- align @Yield @OneCol x
- else @Yield @OneCol { |i x }
- }
- }
-
- def @VIndent right x
- {
- # note: the default value "" gives top alignment,
- # but that is not a problem because we are by
- # default putting in a vertical strut
-
- iv @Case {
- top @Yield @OneRow { / x }
- ctr @Yield @OneRow { /"0.5rt" x }
- foot @Yield @OneRow { /"1.0rt" x }
- mctr @Yield @OneRow { /"0.5bx" x }
- align @Yield @OneRow x
- else @Yield @OneRow { /iv x }
- }
- }
-
- @HSize @VSize @AddPaint bg @Background @AddRules
- @HIndent @VIndent @AddMargins f @Font b @Break @Strut @Body
- }
-
- # symbol for producing @Row rows
- def @DoRow
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named compulsory format
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- named @Cell
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- right x
- {}
- {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values as @Row knows them (i.e. Level 6) #
- # #
- ###################################################################
-
- def rowp { p @Else tblp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tblbg }
- def rowf { f @Else tblf }
- def rowb { b @Else tblb }
- def roww { w @Else tblw }
- def rowh { h @Else tblh }
- def rowi { i @Else tbli }
- def rowiv { iv @Else tbliv }
- def rows { s @Else tbls }
- def rowsh { sh @Else tblsh }
- def rowml { ml @Else mh @Else m @Else tblml }
- def rowmr { mr @Else mh @Else m @Else tblmr }
- def rowma { ma @Else mv @Else m @Else tblma }
- def rowmb { mb @Else mv @Else m @Else tblmb }
- def rowra { ra @Else rh @Else r @Else tblra }
- def rowrb { rb @Else rh @Else r @Else tblrb }
- def rowrl { rl @Else rv @Else r @Else tblrl }
- def rowrr { rr @Else rv @Else r @Else tblrr }
- def rowraw { raw @Else rhw @Else rw @Else tblraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tblrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tblrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tblrrw }
- def rowrag { rag @Else rhg @Else rg @Else tblrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tblrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tblrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tblrrg }
- def rowrac { rac @Else rhc @Else rc @Else tblrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tblrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tblrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tblrrc }
- def rowrpc { rpc @Else tblrpc }
-
- format
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 7) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowa rows
- def @DoRowa
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "aoption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { ap @Else tblp }
- def tbxt { at @Else tblt }
- def tbxbg { abg @Else tblbg }
- def tbxf { af @Else tblf }
- def tbxb { ab @Else tblb }
- def tbxw { aw @Else tblw }
- def tbxh { ah @Else tblh }
- def tbxi { ai @Else tbli }
- def tbxiv { aiv @Else tbliv }
- def tbxs { as @Else tbls }
- def tbxsh { ash @Else tblsh }
- def tbxml { aml @Else amh @Else am @Else tblml }
- def tbxmr { amr @Else amh @Else am @Else tblmr }
- def tbxma { ama @Else amv @Else am @Else tblma }
- def tbxmb { amb @Else amv @Else am @Else tblmb }
- def tbxra { ara @Else arh @Else ar @Else tblra }
- def tbxrb { arb @Else arh @Else ar @Else tblrb }
- def tbxrl { arl @Else arv @Else ar @Else tblrl }
- def tbxrr { arr @Else arv @Else ar @Else tblrr }
- def tbxraw { araw @Else arhw @Else arw @Else tblraw }
- def tbxrbw { arbw @Else arhw @Else arw @Else tblrbw }
- def tbxrlw { arlw @Else arvw @Else arw @Else tblrlw }
- def tbxrrw { arrw @Else arvw @Else arw @Else tblrrw }
- def tbxrag { arag @Else arhg @Else arg @Else tblrag }
- def tbxrbg { arbg @Else arhg @Else arg @Else tblrbg }
- def tbxrlg { arlg @Else arvg @Else arg @Else tblrlg }
- def tbxrrg { arrg @Else arvg @Else arg @Else tblrrg }
- def tbxrac { arac @Else arhc @Else arc @Else tblrac }
- def tbxrbc { arbc @Else arhc @Else arc @Else tblrbc }
- def tbxrlc { arlc @Else arvc @Else arc @Else tblrlc }
- def tbxrrc { arrc @Else arvc @Else arc @Else tblrrc }
- def tbxrpc { arpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowa level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- aformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowb rows
- def @DoRowb
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "boption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { bp @Else tblp }
- def tbxt { bt @Else tblt }
- def tbxbg { bbg @Else tblbg }
- def tbxf { bf @Else tblf }
- def tbxb { bb @Else tblb }
- def tbxw { bw @Else tblw }
- def tbxh { bh @Else tblh }
- def tbxi { bi @Else tbli }
- def tbxiv { biv @Else tbliv }
- def tbxs { bs @Else tbls }
- def tbxsh { bsh @Else tblsh }
- def tbxml { bml @Else bmh @Else bm @Else tblml }
- def tbxmr { bmr @Else bmh @Else bm @Else tblmr }
- def tbxma { bma @Else bmv @Else bm @Else tblma }
- def tbxmb { bmb @Else bmv @Else bm @Else tblmb }
- def tbxra { bra @Else brh @Else br @Else tblra }
- def tbxrb { brb @Else brh @Else br @Else tblrb }
- def tbxrl { brl @Else brv @Else br @Else tblrl }
- def tbxrr { brr @Else brv @Else br @Else tblrr }
- def tbxraw { braw @Else brhw @Else brw @Else tblraw }
- def tbxrbw { brbw @Else brhw @Else brw @Else tblrbw }
- def tbxrlw { brlw @Else brvw @Else brw @Else tblrlw }
- def tbxrrw { brrw @Else brvw @Else brw @Else tblrrw }
- def tbxrag { brag @Else brhg @Else brg @Else tblrag }
- def tbxrbg { brbg @Else brhg @Else brg @Else tblrbg }
- def tbxrlg { brlg @Else brvg @Else brg @Else tblrlg }
- def tbxrrg { brrg @Else brvg @Else brg @Else tblrrg }
- def tbxrac { brac @Else brhc @Else brc @Else tblrac }
- def tbxrbc { brbc @Else brhc @Else brc @Else tblrbc }
- def tbxrlc { brlc @Else brvc @Else brc @Else tblrlc }
- def tbxrrc { brrc @Else brvc @Else brc @Else tblrrc }
- def tbxrpc { brpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowb level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- bformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowc rows
- def @DoRowc
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "coption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { cp @Else tblp }
- def tbxt { ct @Else tblt }
- def tbxbg { cbg @Else tblbg }
- def tbxf { cf @Else tblf }
- def tbxb { cb @Else tblb }
- def tbxw { cw @Else tblw }
- def tbxh { ch @Else tblh }
- def tbxi { ci @Else tbli }
- def tbxiv { civ @Else tbliv }
- def tbxs { cs @Else tbls }
- def tbxsh { csh @Else tblsh }
- def tbxml { cml @Else cmh @Else cm @Else tblml }
- def tbxmr { cmr @Else cmh @Else cm @Else tblmr }
- def tbxma { cma @Else cmv @Else cm @Else tblma }
- def tbxmb { cmb @Else cmv @Else cm @Else tblmb }
- def tbxra { cra @Else crh @Else cr @Else tblra }
- def tbxrb { crb @Else crh @Else cr @Else tblrb }
- def tbxrl { crl @Else crv @Else cr @Else tblrl }
- def tbxrr { crr @Else crv @Else cr @Else tblrr }
- def tbxraw { craw @Else crhw @Else crw @Else tblraw }
- def tbxrbw { crbw @Else crhw @Else crw @Else tblrbw }
- def tbxrlw { crlw @Else crvw @Else crw @Else tblrlw }
- def tbxrrw { crrw @Else crvw @Else crw @Else tblrrw }
- def tbxrag { crag @Else crhg @Else crg @Else tblrag }
- def tbxrbg { crbg @Else crhg @Else crg @Else tblrbg }
- def tbxrlg { crlg @Else crvg @Else crg @Else tblrlg }
- def tbxrrg { crrg @Else crvg @Else crg @Else tblrrg }
- def tbxrac { crac @Else crhc @Else crc @Else tblrac }
- def tbxrbc { crbc @Else crhc @Else crc @Else tblrbc }
- def tbxrlc { crlc @Else crvc @Else crc @Else tblrlc }
- def tbxrrc { crrc @Else crvc @Else crc @Else tblrrc }
- def tbxrpc { crpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowc level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- cformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowd rows
- def @DoRowd
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "doption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { dp @Else tblp }
- def tbxt { dt @Else tblt }
- def tbxbg { dbg @Else tblbg }
- def tbxf { df @Else tblf }
- def tbxb { db @Else tblb }
- def tbxw { dw @Else tblw }
- def tbxh { dh @Else tblh }
- def tbxi { di @Else tbli }
- def tbxiv { div @Else tbliv }
- def tbxs { ds @Else tbls }
- def tbxsh { dsh @Else tblsh }
- def tbxml { dml @Else dmh @Else dm @Else tblml }
- def tbxmr { dmr @Else dmh @Else dm @Else tblmr }
- def tbxma { dma @Else dmv @Else dm @Else tblma }
- def tbxmb { dmb @Else dmv @Else dm @Else tblmb }
- def tbxra { dra @Else drh @Else dr @Else tblra }
- def tbxrb { drb @Else drh @Else dr @Else tblrb }
- def tbxrl { drl @Else drv @Else dr @Else tblrl }
- def tbxrr { drr @Else drv @Else dr @Else tblrr }
- def tbxraw { draw @Else drhw @Else drw @Else tblraw }
- def tbxrbw { drbw @Else drhw @Else drw @Else tblrbw }
- def tbxrlw { drlw @Else drvw @Else drw @Else tblrlw }
- def tbxrrw { drrw @Else drvw @Else drw @Else tblrrw }
- def tbxrag { drag @Else drhg @Else drg @Else tblrag }
- def tbxrbg { drbg @Else drhg @Else drg @Else tblrbg }
- def tbxrlg { drlg @Else drvg @Else drg @Else tblrlg }
- def tbxrrg { drrg @Else drvg @Else drg @Else tblrrg }
- def tbxrac { drac @Else drhc @Else drc @Else tblrac }
- def tbxrbc { drbc @Else drhc @Else drc @Else tblrbc }
- def tbxrlc { drlc @Else drvc @Else drc @Else tblrlc }
- def tbxrrc { drrc @Else drvc @Else drc @Else tblrrc }
- def tbxrpc { drpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowd level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- dformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowe rows
- def @DoRowe
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "eoption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { ep @Else tblp }
- def tbxt { et @Else tblt }
- def tbxbg { ebg @Else tblbg }
- def tbxf { ef @Else tblf }
- def tbxb { eb @Else tblb }
- def tbxw { ew @Else tblw }
- def tbxh { eh @Else tblh }
- def tbxi { ei @Else tbli }
- def tbxiv { eiv @Else tbliv }
- def tbxs { es @Else tbls }
- def tbxsh { esh @Else tblsh }
- def tbxml { eml @Else emh @Else em @Else tblml }
- def tbxmr { emr @Else emh @Else em @Else tblmr }
- def tbxma { ema @Else emv @Else em @Else tblma }
- def tbxmb { emb @Else emv @Else em @Else tblmb }
- def tbxra { era @Else erh @Else er @Else tblra }
- def tbxrb { erb @Else erh @Else er @Else tblrb }
- def tbxrl { erl @Else erv @Else er @Else tblrl }
- def tbxrr { err @Else erv @Else er @Else tblrr }
- def tbxraw { eraw @Else erhw @Else erw @Else tblraw }
- def tbxrbw { erbw @Else erhw @Else erw @Else tblrbw }
- def tbxrlw { erlw @Else ervw @Else erw @Else tblrlw }
- def tbxrrw { errw @Else ervw @Else erw @Else tblrrw }
- def tbxrag { erag @Else erhg @Else erg @Else tblrag }
- def tbxrbg { erbg @Else erhg @Else erg @Else tblrbg }
- def tbxrlg { erlg @Else ervg @Else erg @Else tblrlg }
- def tbxrrg { errg @Else ervg @Else erg @Else tblrrg }
- def tbxrac { erac @Else erhc @Else erc @Else tblrac }
- def tbxrbc { erbc @Else erhc @Else erc @Else tblrbc }
- def tbxrlc { erlc @Else ervc @Else erc @Else tblrlc }
- def tbxrrc { errc @Else ervc @Else erc @Else tblrrc }
- def tbxrpc { erpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowe level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- eformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowf rows
- def @DoRowf
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "foption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { fp @Else tblp }
- def tbxt { ft @Else tblt }
- def tbxbg { fbg @Else tblbg }
- def tbxf { ff @Else tblf }
- def tbxb { fb @Else tblb }
- def tbxw { fw @Else tblw }
- def tbxh { fh @Else tblh }
- def tbxi { fi @Else tbli }
- def tbxiv { fiv @Else tbliv }
- def tbxs { fs @Else tbls }
- def tbxsh { fsh @Else tblsh }
- def tbxml { fml @Else fmh @Else fm @Else tblml }
- def tbxmr { fmr @Else fmh @Else fm @Else tblmr }
- def tbxma { fma @Else fmv @Else fm @Else tblma }
- def tbxmb { fmb @Else fmv @Else fm @Else tblmb }
- def tbxra { fra @Else frh @Else fr @Else tblra }
- def tbxrb { frb @Else frh @Else fr @Else tblrb }
- def tbxrl { frl @Else frv @Else fr @Else tblrl }
- def tbxrr { frr @Else frv @Else fr @Else tblrr }
- def tbxraw { fraw @Else frhw @Else frw @Else tblraw }
- def tbxrbw { frbw @Else frhw @Else frw @Else tblrbw }
- def tbxrlw { frlw @Else frvw @Else frw @Else tblrlw }
- def tbxrrw { frrw @Else frvw @Else frw @Else tblrrw }
- def tbxrag { frag @Else frhg @Else frg @Else tblrag }
- def tbxrbg { frbg @Else frhg @Else frg @Else tblrbg }
- def tbxrlg { frlg @Else frvg @Else frg @Else tblrlg }
- def tbxrrg { frrg @Else frvg @Else frg @Else tblrrg }
- def tbxrac { frac @Else frhc @Else frc @Else tblrac }
- def tbxrbc { frbc @Else frhc @Else frc @Else tblrbc }
- def tbxrlc { frlc @Else frvc @Else frc @Else tblrlc }
- def tbxrrc { frrc @Else frvc @Else frc @Else tblrrc }
- def tbxrpc { frpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowf level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- fformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowg rows
- def @DoRowg
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "doption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { gp @Else tblp }
- def tbxt { gt @Else tblt }
- def tbxbg { gbg @Else tblbg }
- def tbxf { gf @Else tblf }
- def tbxb { gb @Else tblb }
- def tbxw { gw @Else tblw }
- def tbxh { gh @Else tblh }
- def tbxi { gi @Else tbli }
- def tbxiv { giv @Else tbliv }
- def tbxs { gs @Else tbls }
- def tbxsh { gsh @Else tblsh }
- def tbxml { gml @Else gmh @Else gm @Else tblml }
- def tbxmr { gmr @Else gmh @Else gm @Else tblmr }
- def tbxma { gma @Else gmv @Else gm @Else tblma }
- def tbxmb { gmb @Else gmv @Else gm @Else tblmb }
- def tbxra { gra @Else grh @Else gr @Else tblra }
- def tbxrb { grb @Else grh @Else gr @Else tblrb }
- def tbxrl { grl @Else grv @Else gr @Else tblrl }
- def tbxrr { grr @Else grv @Else gr @Else tblrr }
- def tbxraw { graw @Else grhw @Else grw @Else tblraw }
- def tbxrbw { grbw @Else grhw @Else grw @Else tblrbw }
- def tbxrlw { grlw @Else grvw @Else grw @Else tblrlw }
- def tbxrrw { grrw @Else grvw @Else grw @Else tblrrw }
- def tbxrag { grag @Else grhg @Else grg @Else tblrag }
- def tbxrbg { grbg @Else grhg @Else grg @Else tblrbg }
- def tbxrlg { grlg @Else grvg @Else grg @Else tblrlg }
- def tbxrrg { grrg @Else grvg @Else grg @Else tblrrg }
- def tbxrac { grac @Else grhc @Else grc @Else tblrac }
- def tbxrbc { grbc @Else grhc @Else grc @Else tblrbc }
- def tbxrlc { grlc @Else grvc @Else grc @Else tblrlc }
- def tbxrrc { grrc @Else grvc @Else grc @Else tblrrc }
- def tbxrpc { grpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowg level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- gformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- # symbol for producing @Rowh rows
- def @DoRowh
- named paint p {}
- import @TextureImport named texture t {}
- named background bg {}
- named font f {}
- named break b {}
- named width w {}
- named height h {}
- named indent i {}
- named indentvertical iv {}
- named strut s {}
- named struthorizontal sh {}
- named margin m {}
- named marginhorizontal mh {}
- named marginleft ml {}
- named marginright mr {}
- named marginvertical mv {}
- named marginabove ma {}
- named marginbelow mb {}
- named rule r {}
- named rulehorizontal rh {}
- named ruleabove ra {}
- named rulebelow rb {}
- named rulevertical rv {}
- named ruleleft rl {}
- named ruleright rr {}
- named rulewidth rw {}
- named rulehorizontalwidth rhw {}
- named ruleabovewidth raw {}
- named rulebelowwidth rbw {}
- named ruleverticalwidth rvw {}
- named ruleleftwidth rlw {}
- named rulerightwidth rrw {}
- named rulegap rg {}
- named rulehorizontalgap rhg {}
- named ruleabovegap rag {}
- named rulebelowgap rbg {}
- named ruleverticalgap rvg {}
- named ruleleftgap rlg {}
- named rulerightgap rrg {}
- named rulecolour rulecolor rc {}
- named rulehorizontalcolour rulehorizontalcolor rhc {}
- named ruleabovecolour ruleabovecolor rac {}
- named rulebelowcolour rulebelowcolor rbc {}
- named ruleverticalcolour ruleverticalcolor rvc {}
- named ruleleftcolour ruleleftcolor rlc {}
- named rulerightcolour rulerightcolor rrc {}
- named ruleplainchar rpc {}
- named A {} named B {} named C {} named D {} named E {}
- named F {} named G {} named H {} named I {} named J {}
- named K {} named L {} named M {} named N {} named O {}
- named P {} named Q {} named R {} named S {} named T {}
- named U {} named V {} named W {} named X {} named Y {}
- named Z {}
- {
-
- ###################################################################
- # #
- # Specific option values at "hoption" level (i.e. Level 3) #
- # #
- ###################################################################
-
- def tbxp { hp @Else tblp }
- def tbxt { ht @Else tblt }
- def tbxbg { hbg @Else tblbg }
- def tbxf { hf @Else tblf }
- def tbxb { hb @Else tblb }
- def tbxw { hw @Else tblw }
- def tbxh { hh @Else tblh }
- def tbxi { hi @Else tbli }
- def tbxiv { hiv @Else tbliv }
- def tbxs { hs @Else tbls }
- def tbxsh { hsh @Else tblsh }
- def tbxml { hml @Else hmh @Else hm @Else tblml }
- def tbxmr { hmr @Else hmh @Else hm @Else tblmr }
- def tbxma { hma @Else hmv @Else hm @Else tblma }
- def tbxmb { hmb @Else hmv @Else hm @Else tblmb }
- def tbxra { hra @Else hrh @Else hr @Else tblra }
- def tbxrb { hrb @Else hrh @Else hr @Else tblrb }
- def tbxrl { hrl @Else hrv @Else hr @Else tblrl }
- def tbxrr { hrr @Else hrv @Else hr @Else tblrr }
- def tbxraw { hraw @Else hrhw @Else hrw @Else tblraw }
- def tbxrbw { hrbw @Else hrhw @Else hrw @Else tblrbw }
- def tbxrlw { hrlw @Else hrvw @Else hrw @Else tblrlw }
- def tbxrrw { hrrw @Else hrvw @Else hrw @Else tblrrw }
- def tbxrag { hrag @Else hrhg @Else hrg @Else tblrag }
- def tbxrbg { hrbg @Else hrhg @Else hrg @Else tblrbg }
- def tbxrlg { hrlg @Else hrvg @Else hrg @Else tblrlg }
- def tbxrrg { hrrg @Else hrvg @Else hrg @Else tblrrg }
- def tbxrac { hrac @Else hrhc @Else hrc @Else tblrac }
- def tbxrbc { hrbc @Else hrhc @Else hrc @Else tblrbc }
- def tbxrlc { hrlc @Else hrvc @Else hrc @Else tblrlc }
- def tbxrrc { hrrc @Else hrvc @Else hrc @Else tblrrc }
- def tbxrpc { hrpc @Else tblrpc }
-
- ###################################################################
- # #
- # Specific option values at @Rowh level (i.e. Level 4) #
- # #
- ###################################################################
-
- def rowp { p @Else tbxp }
- def rowt { t @Else tblt }
- def rowbg { bg @Else tbxbg }
- def rowf { f @Else tbxf }
- def rowb { b @Else tbxb }
- def roww { w @Else tbxw }
- def rowh { h @Else tbxh }
- def rowi { i @Else tbxi }
- def rowiv { iv @Else tbxiv }
- def rows { s @Else tbxs }
- def rowsh { sh @Else tbxsh }
- def rowml { ml @Else mh @Else m @Else tbxml }
- def rowmr { mr @Else mh @Else m @Else tbxmr }
- def rowma { ma @Else mv @Else m @Else tbxma }
- def rowmb { mb @Else mv @Else m @Else tbxmb }
- def rowra { ra @Else rh @Else r @Else tbxra }
- def rowrb { rb @Else rh @Else r @Else tbxrb }
- def rowrl { rl @Else rv @Else r @Else tbxrl }
- def rowrr { rr @Else rv @Else r @Else tbxrr }
- def rowraw { raw @Else rhw @Else rw @Else tbxraw }
- def rowrbw { rbw @Else rhw @Else rw @Else tbxrbw }
- def rowrlw { rlw @Else rvw @Else rw @Else tbxrlw }
- def rowrrw { rrw @Else rvw @Else rw @Else tbxrrw }
- def rowrag { rag @Else rhg @Else rg @Else tbxrag }
- def rowrbg { rbg @Else rhg @Else rg @Else tbxrbg }
- def rowrlg { rlg @Else rvg @Else rg @Else tbxrlg }
- def rowrrg { rrg @Else rvg @Else rg @Else tbxrrg }
- def rowrac { rac @Else rhc @Else rc @Else tbxrac }
- def rowrbc { rbc @Else rhc @Else rc @Else tbxrbc }
- def rowrlc { rlc @Else rvc @Else rc @Else tbxrlc }
- def rowrrc { rrc @Else rvc @Else rc @Else tbxrrc }
- def rowrpc { rpc @Else tbxrpc }
-
- hformat
- A { A } B { B } C { C } D { D } E { E } F { F }
- G { G } H { H } I { I } J { J } K { K } L { L }
- M { M } N { N } O { O } P { P } Q { Q } R { R }
- S { S } T { T } U { U } V { V } W { W } X { X }
- Y { Y } Z { Z }
- @Cell {
-
- @DoCell
-
- #######################################################
- # #
- # Specific option values to @Cell (i.e. Level 5) #
- # #
- #######################################################
-
- p { p @Else rowp }
- t { t @Else rowt }
- bg { bg @Else rowbg }
- f { f @Else rowf }
- b { b @Else rowb }
- w { w @Else roww }
- h { h @Else rowh }
- i { i @Else rowi }
- iv { iv @Else rowiv }
- s { s @Else rows }
- sh { sh @Else rowsh }
- ml { ml @Else mh @Else m @Else rowml }
- mr { mr @Else mh @Else m @Else rowmr }
- ma { ma @Else mv @Else m @Else rowma }
- mb { mb @Else mv @Else m @Else rowmb }
- ra { ra @Else rh @Else r @Else rowra }
- rb { rb @Else rh @Else r @Else rowrb }
- rl { rl @Else rv @Else r @Else rowrl }
- rr { rr @Else rv @Else r @Else rowrr }
- raw { raw @Else rhw @Else rw @Else rowraw }
- rbw { rbw @Else rhw @Else rw @Else rowrbw }
- rlw { rlw @Else rvw @Else rw @Else rowrlw }
- rrw { rrw @Else rvw @Else rw @Else rowrrw }
- rag { rag @Else rhg @Else rg @Else rowrag }
- rbg { rbg @Else rhg @Else rg @Else rowrbg }
- rlg { rlg @Else rvg @Else rg @Else rowrlg }
- rrg { rrg @Else rvg @Else rg @Else rowrrg }
- rac { rac @Else rhc @Else rc @Else rowrac }
- rbc { rbc @Else rhc @Else rc @Else rowrbc }
- rlc { rlc @Else rvc @Else rc @Else rowrlc }
- rrc { rrc @Else rvc @Else rc @Else rowrrc }
- rpc { rpc @Else rowrpc }
-
- x
- }
- }
-
- macro @Row { / @DoRow }
- macro @Rowa { / @DoRowa }
- macro @Rowb { / @DoRowb }
- macro @Rowc { / @DoRowc }
- macro @Rowd { / @DoRowd }
- macro @Rowe { / @DoRowe }
- macro @Rowf { / @DoRowf }
- macro @Rowg { / @DoRowg }
- macro @Rowh { / @DoRowh }
-
- macro @FirstRow { @DoRow }
- macro @FirstRowa { @DoRowa }
- macro @FirstRowb { @DoRowb }
- macro @FirstRowc { @DoRowc }
- macro @FirstRowd { @DoRowd }
- macro @FirstRowe { @DoRowe }
- macro @FirstRowf { @DoRowf }
- macro @FirstRowg { @DoRowg }
- macro @FirstRowh { @DoRowh }
-
- macro @MarkRow { ^/ @DoRow }
- macro @MarkRowa { ^/ @DoRowa }
- macro @MarkRowb { ^/ @DoRowb }
- macro @MarkRowc { ^/ @DoRowc }
- macro @MarkRowd { ^/ @DoRowd }
- macro @MarkRowe { ^/ @DoRowe }
- macro @MarkRowf { ^/ @DoRowf }
- macro @MarkRowg { ^/ @DoRowg }
- macro @MarkRowh { ^/ @DoRowh }
-
- macro @NoBreakRow { /0iu @DoRow }
- macro @NoBreakRowa { /0iu @DoRowa }
- macro @NoBreakRowb { /0iu @DoRowb }
- macro @NoBreakRowc { /0iu @DoRowc }
- macro @NoBreakRowd { /0iu @DoRowd }
- macro @NoBreakRowe { /0iu @DoRowe }
- macro @NoBreakRowf { /0iu @DoRowf }
- macro @NoBreakRowg { /0iu @DoRowg }
- macro @NoBreakRowh { /0iu @DoRowh }
-
- macro @HeaderRow { / @BeginHeaderComponent @DoRow }
- macro @HeaderRowa { / @BeginHeaderComponent @DoRowa }
- macro @HeaderRowb { / @BeginHeaderComponent @DoRowb }
- macro @HeaderRowc { / @BeginHeaderComponent @DoRowc }
- macro @HeaderRowd { / @BeginHeaderComponent @DoRowd }
- macro @HeaderRowe { / @BeginHeaderComponent @DoRowe }
- macro @HeaderRowf { / @BeginHeaderComponent @DoRowf }
- macro @HeaderRowg { / @BeginHeaderComponent @DoRowg }
- macro @HeaderRowh { / @BeginHeaderComponent @DoRowh }
-
- macro @HeaderFirstRow { @BeginHeaderComponent @DoRow }
- macro @HeaderFirstRowa { @BeginHeaderComponent @DoRowa }
- macro @HeaderFirstRowb { @BeginHeaderComponent @DoRowb }
- macro @HeaderFirstRowc { @BeginHeaderComponent @DoRowc }
- macro @HeaderFirstRowd { @BeginHeaderComponent @DoRowd }
- macro @HeaderFirstRowe { @BeginHeaderComponent @DoRowe }
- macro @HeaderFirstRowf { @BeginHeaderComponent @DoRowf }
- macro @HeaderFirstRowg { @BeginHeaderComponent @DoRowg }
- macro @HeaderFirstRowh { @BeginHeaderComponent @DoRowh }
-
- macro @EndHeaderRow { / @EndHeaderComponent }
-
- macro @NP { /"1.1b" }
-
- @Body
- }
-
-@End @TblSetup
diff --git a/include/include/ts b/include/include/ts
deleted file mode 100644
index 2711633..0000000
--- a/include/include/ts
+++ /dev/null
@@ -1,108 +0,0 @@
-
-###############################################################################
-# #
-# Lout @ToySetup package (Jeff Kingston, July 1993, updated October 1994) #
-# #
-# This file has been placed in the public domain by its author. #
-# #
-# In response to a user request I have put together this tiny package for #
-# people to play with who want to start learning how to do page layout and #
-# galleys with Lout. It produces a very simple sequence of pages. To #
-# invoke the package, run "lout myfile > op" where myfile looks like this: #
-# #
-# @SysInclude { ts } #
-# @Use { @ToySetup } #
-# @Document #
-# // #
-# @Text { #
-# Any text you like here, using @I, @B, @Heading, @PP, @LP, @DP, #
-# @LeftDisplay, @IndentedDisplay, and @CenteredDisplay just as in #
-# DocumentSetup. #
-# } #
-# #
-###############################################################################
-
-@SysInclude { langdefs }
-
-export @I @B @Heading @PP @LP @DP @NP
- @LeftDisplay @IndentedDisplay @CenteredDisplay
- @Text @Document
-
-def @ToySetup
- named @PageWidth { 21.0c }
- named @PageHeight { 29.7c }
-@Begin
-
- ###########################################################################
- # #
- # Font changes, headings, and paragraphs. #
- # #
- ###########################################################################
-
- def @I right x { Slope @Font x }
- def @B right x { Bold @Font x }
- def @Heading right x { ragged @Break @B x }
-
- macro @PP { //1.3vx 1.0f @Wide &0i }
- macro @LP { //1.3vx }
- macro @DP { //0.5v }
- macro @NP { //1.1b }
-
-
- ###########################################################################
- # #
- # Displays. #
- # #
- ###########################################################################
-
- def @DispPlace { @Galley }
-
- def @Disp into { @DispPlace&&preceding }
- right x
- {
- @OneRow x
- }
-
- macro @LeftDisplay { @DP | @DispPlace | @DP // @Disp }
- macro @IndentedDisplay { @DP |2f @DispPlace | @DP // @Disp }
- macro @CenteredDisplay { @DP |0.5rt @DispPlace | @DP // @Disp }
-
-
- ###########################################################################
- # #
- # Page layout. #
- # #
- ###########################################################################
-
- def @TextPlace { @Galley }
-
- def @Text force into { @TextPlace&&preceding }
- right x
- {
- x
- }
-
- def @Page right x
- {
- @PageWidth @Wide @PageHeight @High
- { Times Base 12p } @Font
- { adjust nohyphen 14px } @Break
- English @Language { 0 0 0 } @SetColour
- { //1i ||1i
- @HExpand @VExpand x
- ||1i //1i
- }
- }
-
- def @PageList right num
- {
- @Page { |0.5rt - num - //0.4i @TextPlace }
- //
- @PageList @Next num
- }
-
- def @Document { @PageList 1 }
-
-@End @ToySetup
-
-@SysDatabase @FontDef { fontdefs } # font definitions
diff --git a/include/include/xrgb b/include/include/xrgb
deleted file mode 100644
index 478f626..0000000
--- a/include/include/xrgb
+++ /dev/null
@@ -1,697 +0,0 @@
-###############################################################################
-# #
-# @Xrgb symbol #
-# #
-# Contributed by Mark Summerfield #
-# Tested and installed by Jeff Kingston, 18 November 2002 #
-# November 2002 #
-# #
-# Said to be the list of named colours known to the X-windows #
-# system. There are 752 colours here, but many are listed twice #
-# under different spellings of their names. #
-# #
-# I've deleted the else clause and moved "black" to the top. #
-# This will ensure that if the user mis-types the colour, an #
-# error message will be printed and "black" substituted. #
-# #
-# This program is free software; you can redistribute it and/or modify #
-# it under the terms of the GNU General Public License as published by #
-# the Free Software Foundation; either Version 3, or (at your option) #
-# any later version. #
-# #
-# This program is distributed in the hope that it will be useful, #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
-# GNU General Public License for more details. #
-# #
-# You should have received a copy of the GNU General Public License #
-# along with this program; if not, write to the Free Software #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA #
-# #
-# As a special exception, when this file is read by Lout when processing #
-# a Lout source document, you may use the result without restriction. #
-# #
-###############################################################################
-
-def @Xrgb right x {
- x @Case {
- { black } @Yield { rgb "0.000 0.000 0.000" }
- { snow } @Yield { rgb "1.000 0.980 0.980" }
- { ghostwhite } @Yield { rgb "0.973 0.973 1.000" }
- { whitesmoke } @Yield { rgb "0.961 0.961 0.961" }
- { gainsboro } @Yield { rgb "0.863 0.863 0.863" }
- { floralwhite } @Yield { rgb "1.000 0.980 0.941" }
- { oldlace } @Yield { rgb "0.992 0.961 0.902" }
- { linen } @Yield { rgb "0.980 0.941 0.902" }
- { antiquewhite } @Yield { rgb "0.980 0.922 0.843" }
- { papayawhip } @Yield { rgb "1.000 0.937 0.835" }
- { blanchedalmond } @Yield { rgb "1.000 0.922 0.804" }
- { bisque } @Yield { rgb "1.000 0.894 0.769" }
- { peachpuff } @Yield { rgb "1.000 0.855 0.725" }
- { navajowhite } @Yield { rgb "1.000 0.871 0.678" }
- { moccasin } @Yield { rgb "1.000 0.894 0.710" }
- { cornsilk } @Yield { rgb "1.000 0.973 0.863" }
- { ivory } @Yield { rgb "1.000 1.000 0.941" }
- { lemonchiffon } @Yield { rgb "1.000 0.980 0.804" }
- { seashell } @Yield { rgb "1.000 0.961 0.933" }
- { honeydew } @Yield { rgb "0.941 1.000 0.941" }
- { mintcream } @Yield { rgb "0.961 1.000 0.980" }
- { azure } @Yield { rgb "0.941 1.000 1.000" }
- { aliceblue } @Yield { rgb "0.941 0.973 1.000" }
- { lavender } @Yield { rgb "0.902 0.902 0.980" }
- { lavenderblush } @Yield { rgb "1.000 0.941 0.961" }
- { mistyrose } @Yield { rgb "1.000 0.894 0.882" }
- { white } @Yield { rgb "1.000 1.000 1.000" }
- { darkslategray } @Yield { rgb "0.184 0.310 0.310" }
- { darkslategrey } @Yield { rgb "0.184 0.310 0.310" }
- { dimgray } @Yield { rgb "0.412 0.412 0.412" }
- { dimgrey } @Yield { rgb "0.412 0.412 0.412" }
- { slategray } @Yield { rgb "0.439 0.502 0.565" }
- { slategrey } @Yield { rgb "0.439 0.502 0.565" }
- { lightslategray } @Yield { rgb "0.467 0.533 0.600" }
- { lightslategrey } @Yield { rgb "0.467 0.533 0.600" }
- { gray } @Yield { rgb "0.745 0.745 0.745" }
- { grey } @Yield { rgb "0.745 0.745 0.745" }
- { lightgrey } @Yield { rgb "0.827 0.827 0.827" }
- { lightgray } @Yield { rgb "0.827 0.827 0.827" }
- { midnightblue } @Yield { rgb "0.098 0.098 0.439" }
- { navy } @Yield { rgb "0.000 0.000 0.502" }
- { navyblue } @Yield { rgb "0.000 0.000 0.502" }
- { cornflowerblue } @Yield { rgb "0.392 0.584 0.929" }
- { darkslateblue } @Yield { rgb "0.282 0.239 0.545" }
- { slateblue } @Yield { rgb "0.416 0.353 0.804" }
- { mediumslateblue } @Yield { rgb "0.482 0.408 0.933" }
- { lightslateblue } @Yield { rgb "0.518 0.439 1.000" }
- { mediumblue } @Yield { rgb "0.000 0.000 0.804" }
- { royalblue } @Yield { rgb "0.255 0.412 0.882" }
- { blue } @Yield { rgb "0.000 0.000 1.000" }
- { dodgerblue } @Yield { rgb "0.118 0.565 1.000" }
- { deepskyblue } @Yield { rgb "0.000 0.749 1.000" }
- { skyblue } @Yield { rgb "0.529 0.808 0.922" }
- { lightskyblue } @Yield { rgb "0.529 0.808 0.980" }
- { steelblue } @Yield { rgb "0.275 0.510 0.706" }
- { lightsteelblue } @Yield { rgb "0.690 0.769 0.871" }
- { lightblue } @Yield { rgb "0.678 0.847 0.902" }
- { powderblue } @Yield { rgb "0.690 0.878 0.902" }
- { paleturquoise } @Yield { rgb "0.686 0.933 0.933" }
- { darkturquoise } @Yield { rgb "0.000 0.808 0.820" }
- { mediumturquoise } @Yield { rgb "0.282 0.820 0.800" }
- { turquoise } @Yield { rgb "0.251 0.878 0.816" }
- { cyan } @Yield { rgb "0.000 1.000 1.000" }
- { lightcyan } @Yield { rgb "0.878 1.000 1.000" }
- { cadetblue } @Yield { rgb "0.373 0.620 0.627" }
- { mediumaquamarine } @Yield { rgb "0.400 0.804 0.667" }
- { aquamarine } @Yield { rgb "0.498 1.000 0.831" }
- { darkgreen } @Yield { rgb "0.000 0.392 0.000" }
- { darkolivegreen } @Yield { rgb "0.333 0.420 0.184" }
- { darkseagreen } @Yield { rgb "0.561 0.737 0.561" }
- { seagreen } @Yield { rgb "0.180 0.545 0.341" }
- { mediumseagreen } @Yield { rgb "0.235 0.702 0.443" }
- { lightseagreen } @Yield { rgb "0.125 0.698 0.667" }
- { palegreen } @Yield { rgb "0.596 0.984 0.596" }
- { springgreen } @Yield { rgb "0.000 1.000 0.498" }
- { lawngreen } @Yield { rgb "0.486 0.988 0.000" }
- { green } @Yield { rgb "0.000 1.000 0.000" }
- { chartreuse } @Yield { rgb "0.498 1.000 0.000" }
- { mediumspringgreen } @Yield { rgb "0.000 0.980 0.604" }
- { greenyellow } @Yield { rgb "0.678 1.000 0.184" }
- { limegreen } @Yield { rgb "0.196 0.804 0.196" }
- { yellowgreen } @Yield { rgb "0.604 0.804 0.196" }
- { forestgreen } @Yield { rgb "0.133 0.545 0.133" }
- { olivedrab } @Yield { rgb "0.420 0.557 0.137" }
- { darkkhaki } @Yield { rgb "0.741 0.718 0.420" }
- { khaki } @Yield { rgb "0.941 0.902 0.549" }
- { palegoldenrod } @Yield { rgb "0.933 0.910 0.667" }
- { lightgoldenrodyellow }@Yield{ rgb "0.980 0.980 0.824" }
- { lightyellow } @Yield { rgb "1.000 1.000 0.878" }
- { yellow } @Yield { rgb "1.000 1.000 0.000" }
- { gold } @Yield { rgb "1.000 0.843 0.000" }
- { lightgoldenrod } @Yield { rgb "0.933 0.867 0.510" }
- { goldenrod } @Yield { rgb "0.855 0.647 0.125" }
- { darkgoldenrod } @Yield { rgb "0.722 0.525 0.043" }
- { rosybrown } @Yield { rgb "0.737 0.561 0.561" }
- { indianred } @Yield { rgb "0.804 0.361 0.361" }
- { saddlebrown } @Yield { rgb "0.545 0.271 0.075" }
- { sienna } @Yield { rgb "0.627 0.322 0.176" }
- { peru } @Yield { rgb "0.804 0.522 0.247" }
- { burlywood } @Yield { rgb "0.871 0.722 0.529" }
- { beige } @Yield { rgb "0.961 0.961 0.863" }
- { wheat } @Yield { rgb "0.961 0.871 0.702" }
- { sandybrown } @Yield { rgb "0.957 0.643 0.376" }
- { tan } @Yield { rgb "0.824 0.706 0.549" }
- { chocolate } @Yield { rgb "0.824 0.412 0.118" }
- { firebrick } @Yield { rgb "0.698 0.133 0.133" }
- { brown } @Yield { rgb "0.647 0.165 0.165" }
- { darksalmon } @Yield { rgb "0.914 0.588 0.478" }
- { salmon } @Yield { rgb "0.980 0.502 0.447" }
- { lightsalmon } @Yield { rgb "1.000 0.627 0.478" }
- { orange } @Yield { rgb "1.000 0.647 0.000" }
- { darkorange } @Yield { rgb "1.000 0.549 0.000" }
- { coral } @Yield { rgb "1.000 0.498 0.314" }
- { lightcoral } @Yield { rgb "0.941 0.502 0.502" }
- { tomato } @Yield { rgb "1.000 0.388 0.278" }
- { orangered } @Yield { rgb "1.000 0.271 0.000" }
- { red } @Yield { rgb "1.000 0.000 0.000" }
- { hotpink } @Yield { rgb "1.000 0.412 0.706" }
- { deeppink } @Yield { rgb "1.000 0.078 0.576" }
- { pink } @Yield { rgb "1.000 0.753 0.796" }
- { lightpink } @Yield { rgb "1.000 0.714 0.757" }
- { palevioletred } @Yield { rgb "0.859 0.439 0.576" }
- { maroon } @Yield { rgb "0.690 0.188 0.376" }
- { mediumvioletred } @Yield { rgb "0.780 0.082 0.522" }
- { violetred } @Yield { rgb "0.816 0.125 0.565" }
- { magenta } @Yield { rgb "1.000 0.000 1.000" }
- { violet } @Yield { rgb "0.933 0.510 0.933" }
- { plum } @Yield { rgb "0.867 0.627 0.867" }
- { orchid } @Yield { rgb "0.855 0.439 0.839" }
- { mediumorchid } @Yield { rgb "0.729 0.333 0.827" }
- { darkorchid } @Yield { rgb "0.600 0.196 0.800" }
- { darkviolet } @Yield { rgb "0.580 0.000 0.827" }
- { blueviolet } @Yield { rgb "0.541 0.169 0.886" }
- { purple } @Yield { rgb "0.627 0.125 0.941" }
- { mediumpurple } @Yield { rgb "0.576 0.439 0.859" }
- { thistle } @Yield { rgb "0.847 0.749 0.847" }
- { snow1 } @Yield { rgb "1.000 0.980 0.980" }
- { snow2 } @Yield { rgb "0.933 0.914 0.914" }
- { snow3 } @Yield { rgb "0.804 0.788 0.788" }
- { snow4 } @Yield { rgb "0.545 0.537 0.537" }
- { seashell1 } @Yield { rgb "1.000 0.961 0.933" }
- { seashell2 } @Yield { rgb "0.933 0.898 0.871" }
- { seashell3 } @Yield { rgb "0.804 0.773 0.749" }
- { seashell4 } @Yield { rgb "0.545 0.525 0.510" }
- { antiquewhite1 } @Yield { rgb "1.000 0.937 0.859" }
- { antiquewhite2 } @Yield { rgb "0.933 0.875 0.800" }
- { antiquewhite3 } @Yield { rgb "0.804 0.753 0.690" }
- { antiquewhite4 } @Yield { rgb "0.545 0.514 0.471" }
- { bisque1 } @Yield { rgb "1.000 0.894 0.769" }
- { bisque2 } @Yield { rgb "0.933 0.835 0.718" }
- { bisque3 } @Yield { rgb "0.804 0.718 0.620" }
- { bisque4 } @Yield { rgb "0.545 0.490 0.420" }
- { peachpuff1 } @Yield { rgb "1.000 0.855 0.725" }
- { peachpuff2 } @Yield { rgb "0.933 0.796 0.678" }
- { peachpuff3 } @Yield { rgb "0.804 0.686 0.584" }
- { peachpuff4 } @Yield { rgb "0.545 0.467 0.396" }
- { navajowhite1 } @Yield { rgb "1.000 0.871 0.678" }
- { navajowhite2 } @Yield { rgb "0.933 0.812 0.631" }
- { navajowhite3 } @Yield { rgb "0.804 0.702 0.545" }
- { navajowhite4 } @Yield { rgb "0.545 0.475 0.369" }
- { lemonchiffon1 } @Yield { rgb "1.000 0.980 0.804" }
- { lemonchiffon2 } @Yield { rgb "0.933 0.914 0.749" }
- { lemonchiffon3 } @Yield { rgb "0.804 0.788 0.647" }
- { lemonchiffon4 } @Yield { rgb "0.545 0.537 0.439" }
- { cornsilk1 } @Yield { rgb "1.000 0.973 0.863" }
- { cornsilk2 } @Yield { rgb "0.933 0.910 0.804" }
- { cornsilk3 } @Yield { rgb "0.804 0.784 0.694" }
- { cornsilk4 } @Yield { rgb "0.545 0.533 0.471" }
- { ivory1 } @Yield { rgb "1.000 1.000 0.941" }
- { ivory2 } @Yield { rgb "0.933 0.933 0.878" }
- { ivory3 } @Yield { rgb "0.804 0.804 0.757" }
- { ivory4 } @Yield { rgb "0.545 0.545 0.514" }
- { honeydew1 } @Yield { rgb "0.941 1.000 0.941" }
- { honeydew2 } @Yield { rgb "0.878 0.933 0.878" }
- { honeydew3 } @Yield { rgb "0.757 0.804 0.757" }
- { honeydew4 } @Yield { rgb "0.514 0.545 0.514" }
- { lavenderblush1 } @Yield { rgb "1.000 0.941 0.961" }
- { lavenderblush2 } @Yield { rgb "0.933 0.878 0.898" }
- { lavenderblush3 } @Yield { rgb "0.804 0.757 0.773" }
- { lavenderblush4 } @Yield { rgb "0.545 0.514 0.525" }
- { mistyrose1 } @Yield { rgb "1.000 0.894 0.882" }
- { mistyrose2 } @Yield { rgb "0.933 0.835 0.824" }
- { mistyrose3 } @Yield { rgb "0.804 0.718 0.710" }
- { mistyrose4 } @Yield { rgb "0.545 0.490 0.482" }
- { azure1 } @Yield { rgb "0.941 1.000 1.000" }
- { azure2 } @Yield { rgb "0.878 0.933 0.933" }
- { azure3 } @Yield { rgb "0.757 0.804 0.804" }
- { azure4 } @Yield { rgb "0.514 0.545 0.545" }
- { slateblue1 } @Yield { rgb "0.514 0.435 1.000" }
- { slateblue2 } @Yield { rgb "0.478 0.404 0.933" }
- { slateblue3 } @Yield { rgb "0.412 0.349 0.804" }
- { slateblue4 } @Yield { rgb "0.278 0.235 0.545" }
- { royalblue1 } @Yield { rgb "0.282 0.463 1.000" }
- { royalblue2 } @Yield { rgb "0.263 0.431 0.933" }
- { royalblue3 } @Yield { rgb "0.227 0.373 0.804" }
- { royalblue4 } @Yield { rgb "0.153 0.251 0.545" }
- { blue1 } @Yield { rgb "0.000 0.000 1.000" }
- { blue2 } @Yield { rgb "0.000 0.000 0.933" }
- { blue3 } @Yield { rgb "0.000 0.000 0.804" }
- { blue4 } @Yield { rgb "0.000 0.000 0.545" }
- { dodgerblue1 } @Yield { rgb "0.118 0.565 1.000" }
- { dodgerblue2 } @Yield { rgb "0.110 0.525 0.933" }
- { dodgerblue3 } @Yield { rgb "0.094 0.455 0.804" }
- { dodgerblue4 } @Yield { rgb "0.063 0.306 0.545" }
- { steelblue1 } @Yield { rgb "0.388 0.722 1.000" }
- { steelblue2 } @Yield { rgb "0.361 0.675 0.933" }
- { steelblue3 } @Yield { rgb "0.310 0.580 0.804" }
- { steelblue4 } @Yield { rgb "0.212 0.392 0.545" }
- { deepskyblue1 } @Yield { rgb "0.000 0.749 1.000" }
- { deepskyblue2 } @Yield { rgb "0.000 0.698 0.933" }
- { deepskyblue3 } @Yield { rgb "0.000 0.604 0.804" }
- { deepskyblue4 } @Yield { rgb "0.000 0.408 0.545" }
- { skyblue1 } @Yield { rgb "0.529 0.808 1.000" }
- { skyblue2 } @Yield { rgb "0.494 0.753 0.933" }
- { skyblue3 } @Yield { rgb "0.424 0.651 0.804" }
- { skyblue4 } @Yield { rgb "0.290 0.439 0.545" }
- { lightskyblue1 } @Yield { rgb "0.690 0.886 1.000" }
- { lightskyblue2 } @Yield { rgb "0.643 0.827 0.933" }
- { lightskyblue3 } @Yield { rgb "0.553 0.714 0.804" }
- { lightskyblue4 } @Yield { rgb "0.376 0.482 0.545" }
- { slategray1 } @Yield { rgb "0.776 0.886 1.000" }
- { slategray2 } @Yield { rgb "0.725 0.827 0.933" }
- { slategray3 } @Yield { rgb "0.624 0.714 0.804" }
- { slategray4 } @Yield { rgb "0.424 0.482 0.545" }
- { lightsteelblue1 } @Yield { rgb "0.792 0.882 1.000" }
- { lightsteelblue2 } @Yield { rgb "0.737 0.824 0.933" }
- { lightsteelblue3 } @Yield { rgb "0.635 0.710 0.804" }
- { lightsteelblue4 } @Yield { rgb "0.431 0.482 0.545" }
- { lightblue1 } @Yield { rgb "0.749 0.937 1.000" }
- { lightblue2 } @Yield { rgb "0.698 0.875 0.933" }
- { lightblue3 } @Yield { rgb "0.604 0.753 0.804" }
- { lightblue4 } @Yield { rgb "0.408 0.514 0.545" }
- { lightcyan1 } @Yield { rgb "0.878 1.000 1.000" }
- { lightcyan2 } @Yield { rgb "0.820 0.933 0.933" }
- { lightcyan3 } @Yield { rgb "0.706 0.804 0.804" }
- { lightcyan4 } @Yield { rgb "0.478 0.545 0.545" }
- { paleturquoise1 } @Yield { rgb "0.733 1.000 1.000" }
- { paleturquoise2 } @Yield { rgb "0.682 0.933 0.933" }
- { paleturquoise3 } @Yield { rgb "0.588 0.804 0.804" }
- { paleturquoise4 } @Yield { rgb "0.400 0.545 0.545" }
- { cadetblue1 } @Yield { rgb "0.596 0.961 1.000" }
- { cadetblue2 } @Yield { rgb "0.557 0.898 0.933" }
- { cadetblue3 } @Yield { rgb "0.478 0.773 0.804" }
- { cadetblue4 } @Yield { rgb "0.325 0.525 0.545" }
- { turquoise1 } @Yield { rgb "0.000 0.961 1.000" }
- { turquoise2 } @Yield { rgb "0.000 0.898 0.933" }
- { turquoise3 } @Yield { rgb "0.000 0.773 0.804" }
- { turquoise4 } @Yield { rgb "0.000 0.525 0.545" }
- { cyan1 } @Yield { rgb "0.000 1.000 1.000" }
- { cyan2 } @Yield { rgb "0.000 0.933 0.933" }
- { cyan3 } @Yield { rgb "0.000 0.804 0.804" }
- { cyan4 } @Yield { rgb "0.000 0.545 0.545" }
- { darkslategray1 } @Yield { rgb "0.592 1.000 1.000" }
- { darkslategray2 } @Yield { rgb "0.553 0.933 0.933" }
- { darkslategray3 } @Yield { rgb "0.475 0.804 0.804" }
- { darkslategray4 } @Yield { rgb "0.322 0.545 0.545" }
- { aquamarine1 } @Yield { rgb "0.498 1.000 0.831" }
- { aquamarine2 } @Yield { rgb "0.463 0.933 0.776" }
- { aquamarine3 } @Yield { rgb "0.400 0.804 0.667" }
- { aquamarine4 } @Yield { rgb "0.271 0.545 0.455" }
- { darkseagreen1 } @Yield { rgb "0.757 1.000 0.757" }
- { darkseagreen2 } @Yield { rgb "0.706 0.933 0.706" }
- { darkseagreen3 } @Yield { rgb "0.608 0.804 0.608" }
- { darkseagreen4 } @Yield { rgb "0.412 0.545 0.412" }
- { seagreen1 } @Yield { rgb "0.329 1.000 0.624" }
- { seagreen2 } @Yield { rgb "0.306 0.933 0.580" }
- { seagreen3 } @Yield { rgb "0.263 0.804 0.502" }
- { seagreen4 } @Yield { rgb "0.180 0.545 0.341" }
- { palegreen1 } @Yield { rgb "0.604 1.000 0.604" }
- { palegreen2 } @Yield { rgb "0.565 0.933 0.565" }
- { palegreen3 } @Yield { rgb "0.486 0.804 0.486" }
- { palegreen4 } @Yield { rgb "0.329 0.545 0.329" }
- { springgreen1 } @Yield { rgb "0.000 1.000 0.498" }
- { springgreen2 } @Yield { rgb "0.000 0.933 0.463" }
- { springgreen3 } @Yield { rgb "0.000 0.804 0.400" }
- { springgreen4 } @Yield { rgb "0.000 0.545 0.271" }
- { green1 } @Yield { rgb "0.000 1.000 0.000" }
- { green2 } @Yield { rgb "0.000 0.933 0.000" }
- { green3 } @Yield { rgb "0.000 0.804 0.000" }
- { green4 } @Yield { rgb "0.000 0.545 0.000" }
- { chartreuse1 } @Yield { rgb "0.498 1.000 0.000" }
- { chartreuse2 } @Yield { rgb "0.463 0.933 0.000" }
- { chartreuse3 } @Yield { rgb "0.400 0.804 0.000" }
- { chartreuse4 } @Yield { rgb "0.271 0.545 0.000" }
- { olivedrab1 } @Yield { rgb "0.753 1.000 0.243" }
- { olivedrab2 } @Yield { rgb "0.702 0.933 0.227" }
- { olivedrab3 } @Yield { rgb "0.604 0.804 0.196" }
- { olivedrab4 } @Yield { rgb "0.412 0.545 0.133" }
- { darkolivegreen1 } @Yield { rgb "0.792 1.000 0.439" }
- { darkolivegreen2 } @Yield { rgb "0.737 0.933 0.408" }
- { darkolivegreen3 } @Yield { rgb "0.635 0.804 0.353" }
- { darkolivegreen4 } @Yield { rgb "0.431 0.545 0.239" }
- { khaki1 } @Yield { rgb "1.000 0.965 0.561" }
- { khaki2 } @Yield { rgb "0.933 0.902 0.522" }
- { khaki3 } @Yield { rgb "0.804 0.776 0.451" }
- { khaki4 } @Yield { rgb "0.545 0.525 0.306" }
- { lightgoldenrod1 } @Yield { rgb "1.000 0.925 0.545" }
- { lightgoldenrod2 } @Yield { rgb "0.933 0.863 0.510" }
- { lightgoldenrod3 } @Yield { rgb "0.804 0.745 0.439" }
- { lightgoldenrod4 } @Yield { rgb "0.545 0.506 0.298" }
- { lightyellow1 } @Yield { rgb "1.000 1.000 0.878" }
- { lightyellow2 } @Yield { rgb "0.933 0.933 0.820" }
- { lightyellow3 } @Yield { rgb "0.804 0.804 0.706" }
- { lightyellow4 } @Yield { rgb "0.545 0.545 0.478" }
- { yellow1 } @Yield { rgb "1.000 1.000 0.000" }
- { yellow2 } @Yield { rgb "0.933 0.933 0.000" }
- { yellow3 } @Yield { rgb "0.804 0.804 0.000" }
- { yellow4 } @Yield { rgb "0.545 0.545 0.000" }
- { gold1 } @Yield { rgb "1.000 0.843 0.000" }
- { gold2 } @Yield { rgb "0.933 0.788 0.000" }
- { gold3 } @Yield { rgb "0.804 0.678 0.000" }
- { gold4 } @Yield { rgb "0.545 0.459 0.000" }
- { goldenrod1 } @Yield { rgb "1.000 0.757 0.145" }
- { goldenrod2 } @Yield { rgb "0.933 0.706 0.133" }
- { goldenrod3 } @Yield { rgb "0.804 0.608 0.114" }
- { goldenrod4 } @Yield { rgb "0.545 0.412 0.078" }
- { darkgoldenrod1 } @Yield { rgb "1.000 0.725 0.059" }
- { darkgoldenrod2 } @Yield { rgb "0.933 0.678 0.055" }
- { darkgoldenrod3 } @Yield { rgb "0.804 0.584 0.047" }
- { darkgoldenrod4 } @Yield { rgb "0.545 0.396 0.031" }
- { rosybrown1 } @Yield { rgb "1.000 0.757 0.757" }
- { rosybrown2 } @Yield { rgb "0.933 0.706 0.706" }
- { rosybrown3 } @Yield { rgb "0.804 0.608 0.608" }
- { rosybrown4 } @Yield { rgb "0.545 0.412 0.412" }
- { indianred1 } @Yield { rgb "1.000 0.416 0.416" }
- { indianred2 } @Yield { rgb "0.933 0.388 0.388" }
- { indianred3 } @Yield { rgb "0.804 0.333 0.333" }
- { indianred4 } @Yield { rgb "0.545 0.227 0.227" }
- { sienna1 } @Yield { rgb "1.000 0.510 0.278" }
- { sienna2 } @Yield { rgb "0.933 0.475 0.259" }
- { sienna3 } @Yield { rgb "0.804 0.408 0.224" }
- { sienna4 } @Yield { rgb "0.545 0.278 0.149" }
- { burlywood1 } @Yield { rgb "1.000 0.827 0.608" }
- { burlywood2 } @Yield { rgb "0.933 0.773 0.569" }
- { burlywood3 } @Yield { rgb "0.804 0.667 0.490" }
- { burlywood4 } @Yield { rgb "0.545 0.451 0.333" }
- { wheat1 } @Yield { rgb "1.000 0.906 0.729" }
- { wheat2 } @Yield { rgb "0.933 0.847 0.682" }
- { wheat3 } @Yield { rgb "0.804 0.729 0.588" }
- { wheat4 } @Yield { rgb "0.545 0.494 0.400" }
- { tan1 } @Yield { rgb "1.000 0.647 0.310" }
- { tan2 } @Yield { rgb "0.933 0.604 0.286" }
- { tan3 } @Yield { rgb "0.804 0.522 0.247" }
- { tan4 } @Yield { rgb "0.545 0.353 0.169" }
- { chocolate1 } @Yield { rgb "1.000 0.498 0.141" }
- { chocolate2 } @Yield { rgb "0.933 0.463 0.129" }
- { chocolate3 } @Yield { rgb "0.804 0.400 0.114" }
- { chocolate4 } @Yield { rgb "0.545 0.271 0.075" }
- { firebrick1 } @Yield { rgb "1.000 0.188 0.188" }
- { firebrick2 } @Yield { rgb "0.933 0.173 0.173" }
- { firebrick3 } @Yield { rgb "0.804 0.149 0.149" }
- { firebrick4 } @Yield { rgb "0.545 0.102 0.102" }
- { brown1 } @Yield { rgb "1.000 0.251 0.251" }
- { brown2 } @Yield { rgb "0.933 0.231 0.231" }
- { brown3 } @Yield { rgb "0.804 0.200 0.200" }
- { brown4 } @Yield { rgb "0.545 0.137 0.137" }
- { salmon1 } @Yield { rgb "1.000 0.549 0.412" }
- { salmon2 } @Yield { rgb "0.933 0.510 0.384" }
- { salmon3 } @Yield { rgb "0.804 0.439 0.329" }
- { salmon4 } @Yield { rgb "0.545 0.298 0.224" }
- { lightsalmon1 } @Yield { rgb "1.000 0.627 0.478" }
- { lightsalmon2 } @Yield { rgb "0.933 0.584 0.447" }
- { lightsalmon3 } @Yield { rgb "0.804 0.506 0.384" }
- { lightsalmon4 } @Yield { rgb "0.545 0.341 0.259" }
- { orange1 } @Yield { rgb "1.000 0.647 0.000" }
- { orange2 } @Yield { rgb "0.933 0.604 0.000" }
- { orange3 } @Yield { rgb "0.804 0.522 0.000" }
- { orange4 } @Yield { rgb "0.545 0.353 0.000" }
- { darkorange1 } @Yield { rgb "1.000 0.498 0.000" }
- { darkorange2 } @Yield { rgb "0.933 0.463 0.000" }
- { darkorange3 } @Yield { rgb "0.804 0.400 0.000" }
- { darkorange4 } @Yield { rgb "0.545 0.271 0.000" }
- { coral1 } @Yield { rgb "1.000 0.447 0.337" }
- { coral2 } @Yield { rgb "0.933 0.416 0.314" }
- { coral3 } @Yield { rgb "0.804 0.357 0.271" }
- { coral4 } @Yield { rgb "0.545 0.243 0.184" }
- { tomato1 } @Yield { rgb "1.000 0.388 0.278" }
- { tomato2 } @Yield { rgb "0.933 0.361 0.259" }
- { tomato3 } @Yield { rgb "0.804 0.310 0.224" }
- { tomato4 } @Yield { rgb "0.545 0.212 0.149" }
- { orangered1 } @Yield { rgb "1.000 0.271 0.000" }
- { orangered2 } @Yield { rgb "0.933 0.251 0.000" }
- { orangered3 } @Yield { rgb "0.804 0.216 0.000" }
- { orangered4 } @Yield { rgb "0.545 0.145 0.000" }
- { red1 } @Yield { rgb "1.000 0.000 0.000" }
- { red2 } @Yield { rgb "0.933 0.000 0.000" }
- { red3 } @Yield { rgb "0.804 0.000 0.000" }
- { red4 } @Yield { rgb "0.545 0.000 0.000" }
- { deeppink1 } @Yield { rgb "1.000 0.078 0.576" }
- { deeppink2 } @Yield { rgb "0.933 0.071 0.537" }
- { deeppink3 } @Yield { rgb "0.804 0.063 0.463" }
- { deeppink4 } @Yield { rgb "0.545 0.039 0.314" }
- { hotpink1 } @Yield { rgb "1.000 0.431 0.706" }
- { hotpink2 } @Yield { rgb "0.933 0.416 0.655" }
- { hotpink3 } @Yield { rgb "0.804 0.376 0.565" }
- { hotpink4 } @Yield { rgb "0.545 0.227 0.384" }
- { pink1 } @Yield { rgb "1.000 0.710 0.773" }
- { pink2 } @Yield { rgb "0.933 0.663 0.722" }
- { pink3 } @Yield { rgb "0.804 0.569 0.620" }
- { pink4 } @Yield { rgb "0.545 0.388 0.424" }
- { lightpink1 } @Yield { rgb "1.000 0.682 0.725" }
- { lightpink2 } @Yield { rgb "0.933 0.635 0.678" }
- { lightpink3 } @Yield { rgb "0.804 0.549 0.584" }
- { lightpink4 } @Yield { rgb "0.545 0.373 0.396" }
- { palevioletred1 } @Yield { rgb "1.000 0.510 0.671" }
- { palevioletred2 } @Yield { rgb "0.933 0.475 0.624" }
- { palevioletred3 } @Yield { rgb "0.804 0.408 0.537" }
- { palevioletred4 } @Yield { rgb "0.545 0.278 0.365" }
- { maroon1 } @Yield { rgb "1.000 0.204 0.702" }
- { maroon2 } @Yield { rgb "0.933 0.188 0.655" }
- { maroon3 } @Yield { rgb "0.804 0.161 0.565" }
- { maroon4 } @Yield { rgb "0.545 0.110 0.384" }
- { violetred1 } @Yield { rgb "1.000 0.243 0.588" }
- { violetred2 } @Yield { rgb "0.933 0.227 0.549" }
- { violetred3 } @Yield { rgb "0.804 0.196 0.471" }
- { violetred4 } @Yield { rgb "0.545 0.133 0.322" }
- { magenta1 } @Yield { rgb "1.000 0.000 1.000" }
- { magenta2 } @Yield { rgb "0.933 0.000 0.933" }
- { magenta3 } @Yield { rgb "0.804 0.000 0.804" }
- { magenta4 } @Yield { rgb "0.545 0.000 0.545" }
- { orchid1 } @Yield { rgb "1.000 0.514 0.980" }
- { orchid2 } @Yield { rgb "0.933 0.478 0.914" }
- { orchid3 } @Yield { rgb "0.804 0.412 0.788" }
- { orchid4 } @Yield { rgb "0.545 0.278 0.537" }
- { plum1 } @Yield { rgb "1.000 0.733 1.000" }
- { plum2 } @Yield { rgb "0.933 0.682 0.933" }
- { plum3 } @Yield { rgb "0.804 0.588 0.804" }
- { plum4 } @Yield { rgb "0.545 0.400 0.545" }
- { mediumorchid1 } @Yield { rgb "0.878 0.400 1.000" }
- { mediumorchid2 } @Yield { rgb "0.820 0.373 0.933" }
- { mediumorchid3 } @Yield { rgb "0.706 0.322 0.804" }
- { mediumorchid4 } @Yield { rgb "0.478 0.216 0.545" }
- { darkorchid1 } @Yield { rgb "0.749 0.243 1.000" }
- { darkorchid2 } @Yield { rgb "0.698 0.227 0.933" }
- { darkorchid3 } @Yield { rgb "0.604 0.196 0.804" }
- { darkorchid4 } @Yield { rgb "0.408 0.133 0.545" }
- { purple1 } @Yield { rgb "0.608 0.188 1.000" }
- { purple2 } @Yield { rgb "0.569 0.173 0.933" }
- { purple3 } @Yield { rgb "0.490 0.149 0.804" }
- { purple4 } @Yield { rgb "0.333 0.102 0.545" }
- { mediumpurple1 } @Yield { rgb "0.671 0.510 1.000" }
- { mediumpurple2 } @Yield { rgb "0.624 0.475 0.933" }
- { mediumpurple3 } @Yield { rgb "0.537 0.408 0.804" }
- { mediumpurple4 } @Yield { rgb "0.365 0.278 0.545" }
- { thistle1 } @Yield { rgb "1.000 0.882 1.000" }
- { thistle2 } @Yield { rgb "0.933 0.824 0.933" }
- { thistle3 } @Yield { rgb "0.804 0.710 0.804" }
- { thistle4 } @Yield { rgb "0.545 0.482 0.545" }
- { gray0 } @Yield { rgb "0.000 0.000 0.000" }
- { grey0 } @Yield { rgb "0.000 0.000 0.000" }
- { gray1 } @Yield { rgb "0.012 0.012 0.012" }
- { grey1 } @Yield { rgb "0.012 0.012 0.012" }
- { gray2 } @Yield { rgb "0.020 0.020 0.020" }
- { grey2 } @Yield { rgb "0.020 0.020 0.020" }
- { gray3 } @Yield { rgb "0.031 0.031 0.031" }
- { grey3 } @Yield { rgb "0.031 0.031 0.031" }
- { gray4 } @Yield { rgb "0.039 0.039 0.039" }
- { grey4 } @Yield { rgb "0.039 0.039 0.039" }
- { gray5 } @Yield { rgb "0.051 0.051 0.051" }
- { grey5 } @Yield { rgb "0.051 0.051 0.051" }
- { gray6 } @Yield { rgb "0.059 0.059 0.059" }
- { grey6 } @Yield { rgb "0.059 0.059 0.059" }
- { gray7 } @Yield { rgb "0.071 0.071 0.071" }
- { grey7 } @Yield { rgb "0.071 0.071 0.071" }
- { gray8 } @Yield { rgb "0.078 0.078 0.078" }
- { grey8 } @Yield { rgb "0.078 0.078 0.078" }
- { gray9 } @Yield { rgb "0.090 0.090 0.090" }
- { grey9 } @Yield { rgb "0.090 0.090 0.090" }
- { gray10 } @Yield { rgb "0.102 0.102 0.102" }
- { grey10 } @Yield { rgb "0.102 0.102 0.102" }
- { gray11 } @Yield { rgb "0.110 0.110 0.110" }
- { grey11 } @Yield { rgb "0.110 0.110 0.110" }
- { gray12 } @Yield { rgb "0.122 0.122 0.122" }
- { grey12 } @Yield { rgb "0.122 0.122 0.122" }
- { gray13 } @Yield { rgb "0.129 0.129 0.129" }
- { grey13 } @Yield { rgb "0.129 0.129 0.129" }
- { gray14 } @Yield { rgb "0.141 0.141 0.141" }
- { grey14 } @Yield { rgb "0.141 0.141 0.141" }
- { gray15 } @Yield { rgb "0.149 0.149 0.149" }
- { grey15 } @Yield { rgb "0.149 0.149 0.149" }
- { gray16 } @Yield { rgb "0.161 0.161 0.161" }
- { grey16 } @Yield { rgb "0.161 0.161 0.161" }
- { gray17 } @Yield { rgb "0.169 0.169 0.169" }
- { grey17 } @Yield { rgb "0.169 0.169 0.169" }
- { gray18 } @Yield { rgb "0.180 0.180 0.180" }
- { grey18 } @Yield { rgb "0.180 0.180 0.180" }
- { gray19 } @Yield { rgb "0.188 0.188 0.188" }
- { grey19 } @Yield { rgb "0.188 0.188 0.188" }
- { gray20 } @Yield { rgb "0.200 0.200 0.200" }
- { grey20 } @Yield { rgb "0.200 0.200 0.200" }
- { gray21 } @Yield { rgb "0.212 0.212 0.212" }
- { grey21 } @Yield { rgb "0.212 0.212 0.212" }
- { gray22 } @Yield { rgb "0.220 0.220 0.220" }
- { grey22 } @Yield { rgb "0.220 0.220 0.220" }
- { gray23 } @Yield { rgb "0.231 0.231 0.231" }
- { grey23 } @Yield { rgb "0.231 0.231 0.231" }
- { gray24 } @Yield { rgb "0.239 0.239 0.239" }
- { grey24 } @Yield { rgb "0.239 0.239 0.239" }
- { gray25 } @Yield { rgb "0.251 0.251 0.251" }
- { grey25 } @Yield { rgb "0.251 0.251 0.251" }
- { gray26 } @Yield { rgb "0.259 0.259 0.259" }
- { grey26 } @Yield { rgb "0.259 0.259 0.259" }
- { gray27 } @Yield { rgb "0.271 0.271 0.271" }
- { grey27 } @Yield { rgb "0.271 0.271 0.271" }
- { gray28 } @Yield { rgb "0.278 0.278 0.278" }
- { grey28 } @Yield { rgb "0.278 0.278 0.278" }
- { gray29 } @Yield { rgb "0.290 0.290 0.290" }
- { grey29 } @Yield { rgb "0.290 0.290 0.290" }
- { gray30 } @Yield { rgb "0.302 0.302 0.302" }
- { grey30 } @Yield { rgb "0.302 0.302 0.302" }
- { gray31 } @Yield { rgb "0.310 0.310 0.310" }
- { grey31 } @Yield { rgb "0.310 0.310 0.310" }
- { gray32 } @Yield { rgb "0.322 0.322 0.322" }
- { grey32 } @Yield { rgb "0.322 0.322 0.322" }
- { gray33 } @Yield { rgb "0.329 0.329 0.329" }
- { grey33 } @Yield { rgb "0.329 0.329 0.329" }
- { gray34 } @Yield { rgb "0.341 0.341 0.341" }
- { grey34 } @Yield { rgb "0.341 0.341 0.341" }
- { gray35 } @Yield { rgb "0.349 0.349 0.349" }
- { grey35 } @Yield { rgb "0.349 0.349 0.349" }
- { gray36 } @Yield { rgb "0.361 0.361 0.361" }
- { grey36 } @Yield { rgb "0.361 0.361 0.361" }
- { gray37 } @Yield { rgb "0.369 0.369 0.369" }
- { grey37 } @Yield { rgb "0.369 0.369 0.369" }
- { gray38 } @Yield { rgb "0.380 0.380 0.380" }
- { grey38 } @Yield { rgb "0.380 0.380 0.380" }
- { gray39 } @Yield { rgb "0.388 0.388 0.388" }
- { grey39 } @Yield { rgb "0.388 0.388 0.388" }
- { gray40 } @Yield { rgb "0.400 0.400 0.400" }
- { grey40 } @Yield { rgb "0.400 0.400 0.400" }
- { gray41 } @Yield { rgb "0.412 0.412 0.412" }
- { grey41 } @Yield { rgb "0.412 0.412 0.412" }
- { gray42 } @Yield { rgb "0.420 0.420 0.420" }
- { grey42 } @Yield { rgb "0.420 0.420 0.420" }
- { gray43 } @Yield { rgb "0.431 0.431 0.431" }
- { grey43 } @Yield { rgb "0.431 0.431 0.431" }
- { gray44 } @Yield { rgb "0.439 0.439 0.439" }
- { grey44 } @Yield { rgb "0.439 0.439 0.439" }
- { gray45 } @Yield { rgb "0.451 0.451 0.451" }
- { grey45 } @Yield { rgb "0.451 0.451 0.451" }
- { gray46 } @Yield { rgb "0.459 0.459 0.459" }
- { grey46 } @Yield { rgb "0.459 0.459 0.459" }
- { gray47 } @Yield { rgb "0.471 0.471 0.471" }
- { grey47 } @Yield { rgb "0.471 0.471 0.471" }
- { gray48 } @Yield { rgb "0.478 0.478 0.478" }
- { grey48 } @Yield { rgb "0.478 0.478 0.478" }
- { gray49 } @Yield { rgb "0.490 0.490 0.490" }
- { grey49 } @Yield { rgb "0.490 0.490 0.490" }
- { gray50 } @Yield { rgb "0.498 0.498 0.498" }
- { grey50 } @Yield { rgb "0.498 0.498 0.498" }
- { gray51 } @Yield { rgb "0.510 0.510 0.510" }
- { grey51 } @Yield { rgb "0.510 0.510 0.510" }
- { gray52 } @Yield { rgb "0.522 0.522 0.522" }
- { grey52 } @Yield { rgb "0.522 0.522 0.522" }
- { gray53 } @Yield { rgb "0.529 0.529 0.529" }
- { grey53 } @Yield { rgb "0.529 0.529 0.529" }
- { gray54 } @Yield { rgb "0.541 0.541 0.541" }
- { grey54 } @Yield { rgb "0.541 0.541 0.541" }
- { gray55 } @Yield { rgb "0.549 0.549 0.549" }
- { grey55 } @Yield { rgb "0.549 0.549 0.549" }
- { gray56 } @Yield { rgb "0.561 0.561 0.561" }
- { grey56 } @Yield { rgb "0.561 0.561 0.561" }
- { gray57 } @Yield { rgb "0.569 0.569 0.569" }
- { grey57 } @Yield { rgb "0.569 0.569 0.569" }
- { gray58 } @Yield { rgb "0.580 0.580 0.580" }
- { grey58 } @Yield { rgb "0.580 0.580 0.580" }
- { gray59 } @Yield { rgb "0.588 0.588 0.588" }
- { grey59 } @Yield { rgb "0.588 0.588 0.588" }
- { gray60 } @Yield { rgb "0.600 0.600 0.600" }
- { grey60 } @Yield { rgb "0.600 0.600 0.600" }
- { gray61 } @Yield { rgb "0.612 0.612 0.612" }
- { grey61 } @Yield { rgb "0.612 0.612 0.612" }
- { gray62 } @Yield { rgb "0.620 0.620 0.620" }
- { grey62 } @Yield { rgb "0.620 0.620 0.620" }
- { gray63 } @Yield { rgb "0.631 0.631 0.631" }
- { grey63 } @Yield { rgb "0.631 0.631 0.631" }
- { gray64 } @Yield { rgb "0.639 0.639 0.639" }
- { grey64 } @Yield { rgb "0.639 0.639 0.639" }
- { gray65 } @Yield { rgb "0.651 0.651 0.651" }
- { grey65 } @Yield { rgb "0.651 0.651 0.651" }
- { gray66 } @Yield { rgb "0.659 0.659 0.659" }
- { grey66 } @Yield { rgb "0.659 0.659 0.659" }
- { gray67 } @Yield { rgb "0.671 0.671 0.671" }
- { grey67 } @Yield { rgb "0.671 0.671 0.671" }
- { gray68 } @Yield { rgb "0.678 0.678 0.678" }
- { grey68 } @Yield { rgb "0.678 0.678 0.678" }
- { gray69 } @Yield { rgb "0.690 0.690 0.690" }
- { grey69 } @Yield { rgb "0.690 0.690 0.690" }
- { gray70 } @Yield { rgb "0.702 0.702 0.702" }
- { grey70 } @Yield { rgb "0.702 0.702 0.702" }
- { gray71 } @Yield { rgb "0.710 0.710 0.710" }
- { grey71 } @Yield { rgb "0.710 0.710 0.710" }
- { gray72 } @Yield { rgb "0.722 0.722 0.722" }
- { grey72 } @Yield { rgb "0.722 0.722 0.722" }
- { gray73 } @Yield { rgb "0.729 0.729 0.729" }
- { grey73 } @Yield { rgb "0.729 0.729 0.729" }
- { gray74 } @Yield { rgb "0.741 0.741 0.741" }
- { grey74 } @Yield { rgb "0.741 0.741 0.741" }
- { gray75 } @Yield { rgb "0.749 0.749 0.749" }
- { grey75 } @Yield { rgb "0.749 0.749 0.749" }
- { gray76 } @Yield { rgb "0.761 0.761 0.761" }
- { grey76 } @Yield { rgb "0.761 0.761 0.761" }
- { gray77 } @Yield { rgb "0.769 0.769 0.769" }
- { grey77 } @Yield { rgb "0.769 0.769 0.769" }
- { gray78 } @Yield { rgb "0.780 0.780 0.780" }
- { grey78 } @Yield { rgb "0.780 0.780 0.780" }
- { gray79 } @Yield { rgb "0.788 0.788 0.788" }
- { grey79 } @Yield { rgb "0.788 0.788 0.788" }
- { gray80 } @Yield { rgb "0.800 0.800 0.800" }
- { grey80 } @Yield { rgb "0.800 0.800 0.800" }
- { gray81 } @Yield { rgb "0.812 0.812 0.812" }
- { grey81 } @Yield { rgb "0.812 0.812 0.812" }
- { gray82 } @Yield { rgb "0.820 0.820 0.820" }
- { grey82 } @Yield { rgb "0.820 0.820 0.820" }
- { gray83 } @Yield { rgb "0.831 0.831 0.831" }
- { grey83 } @Yield { rgb "0.831 0.831 0.831" }
- { gray84 } @Yield { rgb "0.839 0.839 0.839" }
- { grey84 } @Yield { rgb "0.839 0.839 0.839" }
- { gray85 } @Yield { rgb "0.851 0.851 0.851" }
- { grey85 } @Yield { rgb "0.851 0.851 0.851" }
- { gray86 } @Yield { rgb "0.859 0.859 0.859" }
- { grey86 } @Yield { rgb "0.859 0.859 0.859" }
- { gray87 } @Yield { rgb "0.871 0.871 0.871" }
- { grey87 } @Yield { rgb "0.871 0.871 0.871" }
- { gray88 } @Yield { rgb "0.878 0.878 0.878" }
- { grey88 } @Yield { rgb "0.878 0.878 0.878" }
- { gray89 } @Yield { rgb "0.890 0.890 0.890" }
- { grey89 } @Yield { rgb "0.890 0.890 0.890" }
- { gray90 } @Yield { rgb "0.898 0.898 0.898" }
- { grey90 } @Yield { rgb "0.898 0.898 0.898" }
- { gray91 } @Yield { rgb "0.910 0.910 0.910" }
- { grey91 } @Yield { rgb "0.910 0.910 0.910" }
- { gray92 } @Yield { rgb "0.922 0.922 0.922" }
- { grey92 } @Yield { rgb "0.922 0.922 0.922" }
- { gray93 } @Yield { rgb "0.929 0.929 0.929" }
- { grey93 } @Yield { rgb "0.929 0.929 0.929" }
- { gray94 } @Yield { rgb "0.941 0.941 0.941" }
- { grey94 } @Yield { rgb "0.941 0.941 0.941" }
- { gray95 } @Yield { rgb "0.949 0.949 0.949" }
- { grey95 } @Yield { rgb "0.949 0.949 0.949" }
- { gray96 } @Yield { rgb "0.961 0.961 0.961" }
- { grey96 } @Yield { rgb "0.961 0.961 0.961" }
- { gray97 } @Yield { rgb "0.969 0.969 0.969" }
- { grey97 } @Yield { rgb "0.969 0.969 0.969" }
- { gray98 } @Yield { rgb "0.980 0.980 0.980" }
- { grey98 } @Yield { rgb "0.980 0.980 0.980" }
- { gray99 } @Yield { rgb "0.988 0.988 0.988" }
- { grey99 } @Yield { rgb "0.988 0.988 0.988" }
- { gray100 } @Yield { rgb "1.000 1.000 1.000" }
- { grey100 } @Yield { rgb "1.000 1.000 1.000" }
- { darkgrey } @Yield { rgb "0.663 0.663 0.663" }
- { darkgray } @Yield { rgb "0.663 0.663 0.663" }
- { darkblue } @Yield { rgb "0.000 0.000 0.545" }
- { darkcyan } @Yield { rgb "0.000 0.545 0.545" }
- { darkmagenta } @Yield { rgb "0.545 0.000 0.545" }
- { darkred } @Yield { rgb "0.545 0.000 0.000" }
- { lightgreen } @Yield { rgb "0.565 0.933 0.565" }
- # else @Yield { rgb "0.000 0.000 0.000" }
- }
-}
diff --git a/include/include/javascript b/include/javascript
index 30ef871..30ef871 100644
--- a/include/include/javascript
+++ b/include/javascript
diff --git a/include/include/javascriptf b/include/javascriptf
index a0bde1e..a0bde1e 100644
--- a/include/include/javascriptf
+++ b/include/javascriptf
diff --git a/include/npf b/include/npf
index 1ba3de6..f7512ad 100644
--- a/include/npf
+++ b/include/npf
@@ -38,7 +38,7 @@ def @NonpareilSetup
named style
named @OrIfPlain left x right y
{ @BackEnd @Case { PlainText @Yield y else @Yield x } }
- { symbol @OrIfPlain fixed } # print style
+ { fixed } # print style
# the following options apply when style is "fixed"
named fixedfont { Courier }# font family
@@ -47,7 +47,7 @@ def @NonpareilSetup
named fixedblanklinescale { 1.0 } # blank-line scale
named fixedspace { lout } # spacing mode
named fixedtabin { 8 } # tab interval
- named fixedtabout { 8s } # tab width
+ named fixedtabout { 4s } # tab width
named fixedidentifiers { Base } # identifier face
named fixedkeywords { Base } # keyword face
@@ -417,7 +417,10 @@ def @NonpareilSetup
{
@PO @BackEnd @Case {
PlainText @Yield "."
- else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
+ else @Yield style @Case {
+ fixed @Yield "."
+ else @Yield { "1.4f" @Font "+0.04f" @VShift "." &"0.05f" }
+ }
}
}
@@ -426,7 +429,10 @@ def @NonpareilSetup
{
@PO @BackEnd @Case {
PlainText @Yield ".."
- else @Yield { "1.4f" @Font "+0.04f" @VShift ".." &"0.05f" }
+ else @Yield style @Case {
+ fixed @Yield ".."
+ else @Yield { "1.4f" @Font "+0.04f" @VShift ".." &"0.05f" }
+ }
}
}
diff --git a/include/include/old_graph b/include/old_graph
index 87ebae3..87ebae3 100644
--- a/include/include/old_graph
+++ b/include/old_graph
diff --git a/include/include/old_graphf b/include/old_graphf
index 4106555..4106555 100644
--- a/include/include/old_graphf
+++ b/include/old_graphf
diff --git a/include/pief b/include/pief
index 15e60ac..2bb0001 100644
--- a/include/pief
+++ b/include/pief
@@ -114,7 +114,7 @@ def @PieSetup
export @Slice
def @Pie
named save { save }
- named totalweight { 100 }
+ named totalweight { totalweight }
named radius { radius }
import @PSLengths named initialangle { initialangle }
named leftextra { leftextra }
diff --git a/include/slidesf b/include/slidesf
index 0c3d28d..0759817 100644
--- a/include/slidesf
+++ b/include/slidesf
@@ -373,7 +373,7 @@ def @OverheadSetup
majortitle { @GetTitle }
minortitle { @SaveTitle }
intheorems { @OverheadNumInTheorems }
- indisplays { OverheadNumInDisplays }
+ indisplays { @OverheadNumInDisplays }
infigures { @OverheadNumInFigures }
inrunners { @OverheadNumInRunners }
@Format @Body
diff --git a/include/include/tcl b/include/tcl
index d54defe..d54defe 100644
--- a/include/include/tcl
+++ b/include/tcl
diff --git a/include/include/tclf b/include/tclf
index fd83271..fd83271 100644
--- a/include/include/tclf
+++ b/include/tclf