| |
| ############################################################################### |
| # # |
| # 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. # |
| # # |
| ############################################################################### |
| |
| @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 |