diff options
Diffstat (limited to 'doc/expert/mydefs')
-rw-r--r-- | doc/expert/mydefs | 442 |
1 files changed, 442 insertions, 0 deletions
diff --git a/doc/expert/mydefs b/doc/expert/mydefs new file mode 100644 index 0000000..e7f0d15 --- /dev/null +++ b/doc/expert/mydefs @@ -0,0 +1,442 @@ + + def "->" { {Symbol Base} @Font "\256" } #174 decimal + def "=>" { {Symbol Base} @Font "\336" } #222 decimal + macro @JP { /0.5v } + + def @Code right x + { { Helvetica Base -1p } @Font lines @Break x } + + macro @JL { //1vx } + + ################################################### + # # + # Lout keywords. # + # # + ################################################### + + def @@BackEnd { @Code "@BackEnd" } + def @@Background { @Code "@Background" } + def @@Begin { @Code "@Begin" } + def @@Break { @Code "@Break" } + def @@Case { @Code "@Case" } + def @@Char { @Code "@Char" } + def @@Common { @Code "@Common" } + def @@CurrLang { @Code "@CurrLang" } + def @@CurrFamily { @Code "@CurrFamily" } + def @@CurrFace { @Code "@CurrFace" } + def @@Database { @Code "@Database" } + def @@End { @Code "@End" } + def @@Enclose { @Code "@Enclose" } + def @@Font { @Code "@Font" } + def @@ForceGalley { @Code "@ForceGalley" } + def @@Galley { @Code "@Galley" } + def @@Graphic { @Code "@Graphic" } + def @@HAdjust { @Code "@HAdjust" } + def @@HCover { @Code "@HCover" } + def @@HContract { @Code "@HContract" } + def @@HExpand { @Code "@HExpand" } + def @@HLimited { @Code "@HLimited" } + def @@High { @Code "@High" } + def @@HScale { @Code "@HScale" } + def @@HShift { @Code "@HShift" } + def @@HSpan { @Code "@HSpan" } + def @@Include { @Code "@Include" } + def @@IncludeGraphic { @Code "@IncludeGraphic" } + def @@KernShrink { @Code "@KernShrink" } + def @@Key { @Code "@Key" } + def @@Language { @Code "@Language" } + def @@LClos { @Code "@LClos" } + def @@LEnv { @Code "@LEnv" } + def @@LInput { @Code "@LInput" } + def @@LUse { @Code "@LUse" } + def @@LVis { @Code "@LVis" } + def @@Meld { @Code "@Meld" } + def @@Merge { @Code "@Merge" } + def @@Moment { @Code "@Moment" } + def @@Next { @Code "@Next" } + def @@NotRevealed { @Code "@NotRevealed" } + def @@Null { @Code "@Null" } + def @@OneCol { @Code "@OneCol" } + def @@OneOf { @Code "@OneOf" } + def @@OneRow { @Code "@OneRow" } + def @@Open { @Code "@Open" } + def @@PAdjust { @Code "@PAdjust" } + def @@PageLabel { @Code "@PageLabel" } + def @@PlainGraphic { @Code "@PlainGraphic" } + def @@PrependGraphic { @Code "@PrependGraphic" } + def @@RawVerbatim { @Code "@RawVerbatim" } + def @@Rotate { @Code "@Rotate" } + def @@Rump { @Code "@Rump" } + def @@Insert { @Code "@Insert" } + def @@Scale { @Code "@Scale" } + def @@SetColor { @Code "@SetColor" } + def @@SetColour { @Code "@SetColour" } + def @@Space { @Code "@Space" } + def @@StartHSpan { @Code "@StartHSpan" } + def @@StartVSpan { @Code "@StartVSpan" } + def @@StartHVSpan { @Code "@StartHVSpan" } + def @@SysDatabase { @Code "@SysDatabase" } + def @@SysInclude { @Code "@SysInclude" } + def @@SysIncludeGraphic { @Code "@SysIncludeGraphic" } + def @@SysPrependGraphic { @Code "@SysPrependGraphic" } + def @@Tag { @Code "@Tag" } + def @@Tagged { @Code "@Tagged" } + def @@Underline { @Code "@Underline" } + def @@Use { @Code "@Use" } + def @@VAdjust { @Code "@VAdjust" } + def @@VContract { @Code "@VContract" } + def @@VCover { @Code "@VCover" } + def @@VExpand { @Code "@VExpand" } + def @@Verbatim { @Code "@Verbatim" } + def @@VLimited { @Code "@VLimited" } + def @@VScale { @Code "@VScale" } + def @@VShift { @Code "@VShift" } + def @@VSpan { @Code "@VSpan" } + def @@Wide { @Code "@Wide" } + def @@Yield { @Code "@Yield" } + def @@YUnit { @Code "@YUnit" } + def @@ZUnit { @Code "@ZUnit" } + + + ################################################### + # # + # Miscellaneous, mostly graphical definitions. # + # # + ################################################### + + + def @TeX + { @OneCol { T &0.4fo {-0.2f @VShift E} &0.45fo X } + } + + export sp sb + def @Equation + body x + @Begin + + def sp left x right y { @OneRow { | "-2p" @Font y ^/0.5fk x } } + def sb left x right y { @OneRow { x ^/0.5fk | "-2p" @Font y } } + + Slope @Font x + + @End @Equation + + def @Super + left x + right y + { @OneRow { | -2p @Font y ^/0.5fk x } + } + + def @NineSquare + right x + { + def @Three { x |0.2i x |0.2i x } + + @Three /0.2i @Three /0.2i @Three + } + + def @Leaders + { .. @Leaders + } + + def @HLine + { + @BackEnd @Case { + PostScript @Yield { {0 0 moveto xsize 0 lineto stroke} @Graphic {} } + PDF @Yield { {0 0 m __xsize 0 l s} @Graphic {} } + } +# { 0 0 moveto xsize 0 lineto stroke } @Graphic {} + } + + def @VDashLine + right length + { + length @High { + @BackEnd @Case { + PostScript @Yield { { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke } @Graphic {} } + +# VT: double quotes required: + PDF @Yield { { "__pt 3 0 d 0 0 m 0 __ysize l s" } @Graphic {} } + } +# { 0 0 moveto 0 ysize lineto [ 3 pt ] 0 setdash stroke } @Graphic {} + } + } + + def @LBox + right offset + { @HContract @VContract + { + { //0.2c + 0.6c @High 1.2c @Wide + + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto + xsize ysize lineto 0 ysize lineto closepath + gsave 0.9 setgray fill grestore stroke } @Graphic {} + } + PDF @Yield { + { 0 0 m __xsize 0 l + __xsize __ysize l 0 __ysize l h + q 0.9 g f Q s } @Graphic {} + } + } + +# { 0 0 moveto xsize 0 lineto +# xsize ysize lineto 0 ysize lineto closepath +# gsave 0.9 setgray fill grestore stroke } +# @Graphic {} + } + ||offset @VDashLine 1c + } + } + + def @Arrow + right length + { @OneCol @OneRow + { + 30d @Rotate {0.12c @Wide @HLine} + // + length @Wide @HLine + // + "-30d" @Rotate {0.12c @Wide @HLine} + } + } + + def @DoubleArrow + right length + { @OneCol @OneRow + { + & 180d @Rotate @Arrow length + |0io @Arrow length + } + } + + def @Put + left coord + right x + { @OneCol @OneRow + { coord / | @OneCol @OneRow x + } + } + + macro @At { //0io } + + + ################################################### + # # + # Interpolated example documents. # + # # + ################################################### + + def @LittleEndRunPlace { @Galley } + def @LittleEndRun + force into { @LittleEndRunPlace&&preceding } + {} + + def @LittleTextPlace { @Galley } + def @LittleText into { @LittleTextPlace&&preceding } + right x + { x + } + + def @LittleFootPlace { @Galley } + def @LittleFootNote into { @LittleFootPlace&&following } + right x + { x + } + + def @LittlePageColumn + right x + { + 9px @Break 8p @Font + 2.8c @Wide x + } + + def @LittlePage + right x + { + @HContract @VContract { + @BackEnd @Case { + PostScript @Yield { + { 0 0 moveto xsize 0 lineto xsize ysize lineto + 0 ysize lineto closepath stroke } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + PDF @Yield { + { 0 0 m __xsize 0 l __xsize __ysize l + 0 __ysize l h s } @Graphic + { //0.3c ||0.3c + 9px @Break 8p @Font + 2.8c @Wide 3.8c @High x + ||0.3c //0.3c + } + } + } +# { 0 0 moveto xsize 0 lineto xsize ysize lineto +# 0 ysize lineto closepath stroke } @Graphic +# { //0.3c ||0.3c +# 9px @Break 8p @Font +# 2.8c @Wide 3.8c @High x +# ||0.3c //0.3c +# } + } + } + + def @LittleFootSect + { 1c @Wide @HLine + //0.3v @LittleFootPlace ||0.5c + } + + def @LittlePageList + right @PageNum + { + @LittlePage { # |0.5rt @PageNum //0.8v + //0.3v @LittleTextPlace + //1rt @LittleFootSect + } + // + @LittlePageList @Next @PageNum + } + + def @LittleDocument + { @LittlePage + { @LittleTextPlace + //1rt @LittleFootSect + } + // @LittlePageList 2 + // @LittleEndRunPlace + } + + def @ShowMarks + named linewidth { + @BackEnd @Case { + PostScript @Yield { 0.015 cm } + PDF @Yield { __mul(0.015, __cm) } + } + } + named linestyle { dashed } + named dashlength { + @BackEnd @Case { + PostScript @Yield { 0.15 cm } + PDF @Yield { __mul(0.15, __cm) } + } + } + named paint { lightgrey} + right x + { + @HContract @VContract @Fig + { @Box margin { 0c } linewidth { linewidth } paint { paint } + { @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + -0.3 cm ymark + {xsize ymark} ++ {0.3 cm 0} [] + xmark -0.3 cm + {xmark ysize} ++ {0 0.3 cm} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + + } + } + + def @ShowVMark + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { light } + right x + { + @Fig + { + @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + xmark -0.3 cm + {xmark ysize} ++ {0 0.3 cm} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } + + def @ShowHMark + named linewidth { 0.015 cm } + named linestyle { dashed } + named dashlength { 0.15 cm } + named paint { light } + right x + { + @Fig + { + @Figure + shape { + @BackEnd @Case { + PostScript @Yield { + -0.3 cm ymark + {xsize ymark} ++ {0.3 cm 0} + } + PDF @Yield { "" # VT: PDF currently has no output + } + } + } + linewidth { linewidth } + linestyle { linestyle } + dashlength { dashlength } + x + } + } + + def @Strange + named @Format right @Val { [@Val] } + right x + { @Format x + } + + def @TightBox right x + { + @BackEnd @Case { + PostScript @Yield { + "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto closepath stroke" + @Graphic x + } + PDF @Yield { + "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h s" + @Graphic x + } + } + } + + def @GreyBox right x + { + @BackEnd @Case { + PostScript @Yield { + "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto closepath 0.8 setgray fill" + @Graphic x + } + PDF @Yield { + "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h 0.8 g f" + @Graphic x + } + } + } |