################################################### # # # Lout keywords and @Code symbol. # # # ################################################### def @Code right x { { Helvetica Base -1p } @Font lines @Break x } def @@BackEnd { @Code "@BackEnd" } def @@Begin { @Code "@Begin" } def @@Break { @Code "@Break" } def @@Case { @Code "@Case" } def @@Database { @Code "@Database" } def @@End { @Code "@End" } def @@Font { @Code "@Font" } def @@Char { @Code "@Char" } def @@Galley { @Code "@Galley" } def @@Graphic { @Code "@Graphic" } def @@HAdjust { @Code "@HAdjust" } def @@HContract { @Code "@HContract" } def @@HCover { @Code "@HCover" } def @@HExpand { @Code "@HExpand" } def @@HScale { @Code "@HScale" } def @@High { @Code "@High" } def @@HShift { @Code "@HShift" } def @@Include { @Code "@Include" } def @@Insert { @Code "@Insert " } def @@IncludeGraphic { @Code "@IncludeGraphic" } def @@Key { @Code "@Key" } def @@LClos { @Code "@LClos" } def @@LEnv { @Code "@LEnv" } def @@LInput { @Code "@LInput" } def @@LVis { @Code "@LVis" } def @@Moment { @Code "@Moment" } def @@Next { @Code "@Next" } def @@Null { @Code "@Null" } def @@OneCol { @Code "@OneCol" } def @@OneRow { @Code "@OneRow" } def @@Open { @Code "@Open" } def @@Outline { @Code "@Outline" } def @@PAdjust { @Code "@PAdjust" } def @@PrependGraphic { @Code "@PrependGraphic" } def @@Rotate { @Code "@Rotate" } def @@Scale { @Code "@Scale" } def @@SetColor { @Code "@SetColor" } def @@SetColour { @Code "@SetColour" } def @@Language { @Code "@Language" } def @@CurrLang { @Code "@CurrLang" } def @@Space { @Code "@Space" } 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 @@Use { @Code "@Use" } def @@VAdjust { @Code "@VAdjust" } def @@VContract { @Code "@VContract" } def @@VCover { @Code "@VCover" } def @@VExpand { @Code "@VExpand" } def @@VScale { @Code "@VScale" } def @@VShift { @Code "@VShift" } def @@Wide { @Code "@Wide" } def @@Yield { @Code "@Yield" } ################################################### # # # Miscellaneous symbols used in the guide. # # # ################################################### 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 } } import @BasicSetup def @Batlow { Batlow Food Distributors Pty. Ltd. } import @BasicSetup def @GreyBox right x { @Box paint { lightgrey } x } import @BasicSetup def @HeadingBox left x right y { @Box { @CentredDisplay @Heading x y } } def @FilledBox { @BackEnd @Case { PostScript @Yield { { "0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto" "closepath fill" } @Graphic { 0.6f @High ^/ 0.4f @High 4f @Wide } } PDF @Yield { { "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h f" } @Graphic { 0.6f @High ^/ 0.4f @High 4f @Wide } } } } import @Math def epi { p sub i ` log sub 2 ` p sub i } import @Math def ep right x { p sub x ` log sub 2 ` p sub x } # def @Dbl left x right y # { 1.95i @Wide # { 1.25i @Wide { |1rt @Code x } |0.2i @Eq {non y} } # } def @LCodeWidth { 3.5c } def @CodeWidth { 4.0c } def @ResultWidth { 1.6c } import @Math def @ExA { 1 over sqrt { 1 - 4 x sup 2 } } def @@Diag { @Code "@Diag" } extend @DiagSetup @Diag macro @MyNode { @Node outline { LR:: { xsize 0 } LR:< 0d UL:: { 0 ysize } UL:< 270d 0 0 LR UL 0 0 } } extend @DiagSetup @Diag macro @MyLink { @Link path { FROM:: from TO:: to FROM TO } } def @ShowHMark right x { { "-0.3 cm ymark moveto xsize 0.3 cm add ymark lineto" "[ 0.1 cm ] 0 setdash stroke" } @Graphic x } def @ZeroWidth right x { @OneCol { |0io x |0io } } def @SomeText { Johnson suddenly uttered, in a strong determined tone, an apophegm, at which many will start: `Patriotism is the last refuge of a scoundrel.' } import @DiagSetup def @OpenCircle { @Diag { @Circle margin { 0.2f } } } import @DiagSetup def @ClosedCircle { @Diag { @Circle paint { black } margin { 0.2f } } } import @TblSetup @BasicSetup def @AmberLight { @OneRow @Tbl aformat { @Cell indentvertical { align } A } marginhorizontal { 0i } marginvertical { 0i } strut { no } rule { no } paint { no } { @Rowa A { @OpenCircle } @MarkRowa A { @ClosedCircle } @Rowa A { @OpenCircle } } } import @DiagSetup @Diag def @Four named code { } right x { 3.8c @Wide @Code code ||0.3c 2.7c @Wide @StartRight x ||0.3c 2.7c @Wide @StartUp x ||0.3c 2.7c @Wide @StartLeft x ||0.3c 2.2c @Wide @StartDown x } import @BasicSetup def @TextureSample right x { @Box margin { 0i } x @Texture @Box margin { 2.0f } paint { black } {} } import @BasicSetup def @XRGBTest right col { def @Thing { @HContract @VContract { 0.9c @Wide 0.5f @High ^/ 0.5f @High } } @HContract { @Box paint { @Xrgb col } margin { 0i } @Thing &0.2c 2.8c @Wide downifneeded @Scale @Code col } } def @XRGBNoTest { @HContract { 0.9c @Wide &0.2c 2.8c @Wide {} } }