diff options
author | Jeffrey H. Kingston <jeff@it.usyd.edu.au> | 2010-09-14 20:39:50 +0000 |
---|---|---|
committer | Jeffrey H. Kingston <jeff@it.usyd.edu.au> | 2010-09-14 20:39:50 +0000 |
commit | e4836c62b245d618866b6523ec2c892aeb7a76be (patch) | |
tree | 5b5269fb7affb3b20ba8fe0224705bbde98c1614 /include | |
parent | 128e9a1532ce7fa38ddc16de06d213530dc5ce15 (diff) | |
download | lout-e4836c62b245d618866b6523ec2c892aeb7a76be.tar.gz |
Lout 3.32.
git-svn-id: http://svn.savannah.nongnu.org/svn/lout/trunk@33 9365b830-b601-4143-9ba8-b4a8e2c3339c
Diffstat (limited to 'include')
-rw-r--r-- | include/README | 4 | ||||
-rw-r--r-- | include/blue | 4 | ||||
-rw-r--r-- | include/bluef | 69 | ||||
-rw-r--r-- | include/book | 5 | ||||
-rw-r--r-- | include/bookf | 1 | ||||
-rw-r--r-- | include/bsf | 70 | ||||
-rw-r--r-- | include/cprint | 4 | ||||
-rw-r--r-- | include/cprintf | 67 | ||||
-rw-r--r-- | include/doc | 4 | ||||
-rw-r--r-- | include/docf | 2 | ||||
-rw-r--r-- | include/dsf | 1 | ||||
-rw-r--r-- | include/eiffel | 4 | ||||
-rw-r--r-- | include/eiffelf | 69 | ||||
-rw-r--r-- | include/haskell | 4 | ||||
-rw-r--r-- | include/haskellf | 71 | ||||
-rw-r--r-- | include/java | 4 | ||||
-rw-r--r-- | include/javaf | 69 | ||||
-rw-r--r-- | include/np | 4 | ||||
-rw-r--r-- | include/npf | 69 | ||||
-rw-r--r-- | include/perl | 4 | ||||
-rw-r--r-- | include/perlf | 69 | ||||
-rw-r--r-- | include/picture | 4 | ||||
-rw-r--r-- | include/picturef | 1 | ||||
-rw-r--r-- | include/python | 4 | ||||
-rw-r--r-- | include/pythonf | 69 | ||||
-rw-r--r-- | include/report | 5 | ||||
-rw-r--r-- | include/reportf | 1 | ||||
-rw-r--r-- | include/rsl | 4 | ||||
-rw-r--r-- | include/rslf | 67 | ||||
-rw-r--r-- | include/ruby | 4 | ||||
-rw-r--r-- | include/rubyf | 67 | ||||
-rw-r--r-- | include/save_graphf | 891 | ||||
-rw-r--r-- | include/save_graphf.lpg | 899 | ||||
-rw-r--r-- | include/slides | 10 | ||||
-rw-r--r-- | include/slidesf | 18 | ||||
-rw-r--r-- | include/xind | 1 | ||||
-rw-r--r-- | include/xinda | 1 | ||||
-rw-r--r-- | include/xindb | 1 |
38 files changed, 605 insertions, 2040 deletions
diff --git a/include/README b/include/README index d4e5a84..a4153b6 100644 --- a/include/README +++ b/include/README @@ -31,6 +31,7 @@ Setup files (containing mainly lists of options settable by the user) blue Blue cprint C and C++ eiffel Eiffel + haskell Haskell java Java modula Modula-2 (quick hack, does not use prg2lout) np Nonpareil @@ -68,6 +69,7 @@ Source files containing Lout and PostScript source code for the packages bluef Blue cprintf C and C++ eiffelf Eiffel + haskellf Haskell javaf Java modulaf Modula-2 npf Nonpareil @@ -100,4 +102,4 @@ Miscellaneous source files Jeffrey H. Kingston -30 October 2002 +20 October 2006 diff --git a/include/blue b/include/blue index 6395b96..245e19d 100644 --- a/include/blue +++ b/include/blue @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/bluef b/include/bluef index c4fdb48..c4d4946 100644 --- a/include/bluef +++ b/include/bluef @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @BlueSetup 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 @@ -51,6 +53,7 @@ def @BlueSetup 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 @@ -75,6 +78,7 @@ def @BlueSetup 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 @@ -103,23 +107,25 @@ def @BlueSetup @A "$>" def @Blue - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @BlueSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lBlue" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lBlue" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lBlue" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lBlue" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @BlueSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -396,7 +421,7 @@ def @BlueSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Blue diff --git a/include/book b/include/book index 74e0a3a..a1285fc 100644 --- a/include/book +++ b/include/book @@ -3,7 +3,6 @@ # Lout setup file for books # # # # Jeffrey H. Kingston # -# 17 September 1999 # # # ############################################################################### @@ -60,6 +59,9 @@ # @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 + # @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 @@ -208,6 +210,7 @@ # @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 diff --git a/include/bookf b/include/bookf index b62619c..4ae9141 100644 --- a/include/bookf +++ b/include/bookf @@ -4,7 +4,6 @@ # @BookSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # -# 17 September 1999 # # # # This package extends DocumentSetup with definitions for books. # # # diff --git a/include/bsf b/include/bsf index be86f21..12b19e6 100644 --- a/include/bsf +++ b/include/bsf @@ -4,10 +4,6 @@ # Lout @BasicSetup package # # # # Jeffrey H. Kingston # -# 5 February 1999 # -# Modified 30 October 2002 - reorganization of colours, textures, lengths # -# # -# Based on the first part of the @DocumentLayout package, version 3.11. # # # # This package contains basic symbols used widely throughout many # # documents, for font changes, particular characters, standard words in # @@ -104,7 +100,8 @@ export @InitialColour @OptimizePages @HeadingFont @ParaGap @ParaIndent @DisplayGap @DisplayIndent @DefaultIndent @DisplayNumStyle @WideIndent @VeryWideIndent - @ListGap @ListIndent @ListRightIndent @ListLabelWidth + @ListGap @ListIndent @ListRightIndent + @ListLabelWidth @ListLabelRight @ListLabelRightGap @ListBreak @NumberSeparator @Word @Roman @UCRoman @Alpha @UCAlpha @FnBullets @FnSymbols @@ -270,6 +267,9 @@ def @BasicSetup 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 @ListBreak { } # break style of list item named @NumberSeparator{ . } # separates numbers like 2.3.7 import @BasicSetup named @CrossLinkFormat @@ -1468,26 +1468,40 @@ def @BasicSetup named itemindent { 0c } named rightindent { @ListRightIndent } named labelwidth { @ListLabelWidth } + named labelright { @ListLabelRight } + named labelrightgap { @ListLabelRightGap } named start { 1 } + 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} {style type num} &0io + @NumberMarker @Value {type num} {@Align style type num} &0io } - |itemindent @ItemPlace |rightindent + |itemindent break @Break @ItemPlace |rightindent //gap @MakeList @NotRevealed @Next num } def @ParagraphItem { @NumberMarker @Value {num} {style type num} &0io - |indent @ParagraphItemPlace |rightindent + |indent break @Break @ParagraphItemPlace |rightindent //gap @MakeList @NotRevealed @Next num } @@ -1519,7 +1533,45 @@ def @BasicSetup @MakeList start // @EndListPlace } - @ListGalleyPlace + def @ColPieceTwo + { + colheight @High 50c @Wide @ListGalleyPlace ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed + } + + def @ColPieceThree + { + colheight @High 50c @Wide @ListGalleyPlace ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed + } + + def @ColPieceFour + { + colheight @High 50c @Wide @ListGalleyPlace ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed + } + + def @ColPieceFive + { + colheight @High 50c @Wide @ListGalleyPlace ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed ||colgap + colheight @High 50c @Wide @ListGalleyPlace @NotRevealed + } + + colnum @Case + { + 1 @Yield @ListGalleyPlace + 2 @Yield @ColPieceTwo + 3 @Yield @ColPieceThree + 4 @Yield @ColPieceFour + 5 @Yield @ColPieceFive + else @Yield @ListGalleyPlace + } // @ListGalley } diff --git a/include/cprint b/include/cprint index 4974888..c237065 100644 --- a/include/cprint +++ b/include/cprint @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/cprintf b/include/cprintf index 2d2e680..b31a7b3 100644 --- a/include/cprintf +++ b/include/cprintf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @CPSetup 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 @@ -51,6 +53,7 @@ def @CPSetup 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 @@ -75,6 +78,7 @@ def @CPSetup 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 @@ -103,22 +107,24 @@ def @CPSetup @A "$>" def @CP - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @CPSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lC" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lC" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lC" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lC" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @CPSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -396,7 +421,7 @@ def @CPSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @CP diff --git a/include/doc b/include/doc index 49ae1d6..4098f9b 100644 --- a/include/doc +++ b/include/doc @@ -3,7 +3,6 @@ # Lout setup file for ordinary documents # # # # Jeffrey H. Kingston # -# 5 February 1999 # # # ############################################################################### @@ -61,6 +60,9 @@ # @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 + # @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 diff --git a/include/docf b/include/docf index 38b562f..bd8e875 100644 --- a/include/docf +++ b/include/docf @@ -4,8 +4,6 @@ # @OrdinarySetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # -# August 1994 # -# 5 February 1999 # # # # This package extends DocumentSetup for ordinary documents. # # # diff --git a/include/dsf b/include/dsf index 394fd1e..43a5ca1 100644 --- a/include/dsf +++ b/include/dsf @@ -15,6 +15,7 @@ # 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, # diff --git a/include/eiffel b/include/eiffel index 8ce7973..e7dc0b8 100644 --- a/include/eiffel +++ b/include/eiffel @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/eiffelf b/include/eiffelf index f456392..f5cfc67 100644 --- a/include/eiffelf +++ b/include/eiffelf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @EiffelSetup 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 @@ -51,6 +53,7 @@ def @EiffelSetup 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 @@ -75,6 +78,7 @@ def @EiffelSetup 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 @@ -103,23 +107,25 @@ def @EiffelSetup @A "$>" def @Eiffel - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @EiffelSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lEiffel" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lEiffel" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lEiffel" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lEiffel" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @EiffelSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -396,7 +421,7 @@ def @EiffelSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Eiffel diff --git a/include/haskell b/include/haskell index 52d5448..025ab25 100644 --- a/include/haskell +++ b/include/haskell @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/haskellf b/include/haskellf index 8a019f2..b1064a1 100644 --- a/include/haskellf +++ b/include/haskellf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @HaskellSetup 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 @@ -54,6 +56,7 @@ def @HaskellSetup 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 @@ -81,6 +84,7 @@ def @HaskellSetup 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 @@ -112,24 +116,26 @@ def @HaskellSetup @A "$>" def @Haskell - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -191,16 +197,26 @@ def @HaskellSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lHaskell" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lHaskell" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lHaskell" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lHaskell" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -233,6 +249,15 @@ def @HaskellSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -473,7 +498,7 @@ def @HaskellSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Haskell diff --git a/include/java b/include/java index 41fd1f7..4d747c0 100644 --- a/include/java +++ b/include/java @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/javaf b/include/javaf index fb84541..e0cf8ea 100644 --- a/include/javaf +++ b/include/javaf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @JavaSetup 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 @@ -51,6 +53,7 @@ def @JavaSetup 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 @@ -75,6 +78,7 @@ def @JavaSetup 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 @@ -103,23 +107,25 @@ def @JavaSetup @A "$>" def @Java - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @JavaSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lJava" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lJava" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lJava" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lJava" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @JavaSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -396,7 +421,7 @@ def @JavaSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Java @@ -32,6 +32,7 @@ @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" @@ -39,6 +40,7 @@ # 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 @@ -64,6 +66,7 @@ # 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 @@ -89,6 +92,7 @@ # 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 diff --git a/include/npf b/include/npf index 258529d..aa2230f 100644 --- a/include/npf +++ b/include/npf @@ -17,6 +17,7 @@ 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 } } @@ -26,6 +27,7 @@ def @NonpareilSetup 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 @@ -50,6 +52,7 @@ def @NonpareilSetup 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 @@ -74,6 +77,7 @@ def @NonpareilSetup 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 @@ -102,23 +106,25 @@ def @NonpareilSetup @A "$>" def @Nonpareil - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -180,16 +186,26 @@ def @NonpareilSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lNonpareil" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lNonpareil" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lNonpareil" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lNonpareil" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -222,6 +238,15 @@ def @NonpareilSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -395,7 +420,7 @@ def @NonpareilSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Nonpareil diff --git a/include/perl b/include/perl index 4a886f3..b2ab51f 100644 --- a/include/perl +++ b/include/perl @@ -51,6 +51,7 @@ @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" @@ -58,6 +59,7 @@ # 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 @@ -83,6 +85,7 @@ # 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 @@ -108,6 +111,7 @@ # 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 diff --git a/include/perlf b/include/perlf index 8a12ceb..28b699a 100644 --- a/include/perlf +++ b/include/perlf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @PerlSetup 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 @@ -51,6 +53,7 @@ def @PerlSetup 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 @@ -75,6 +78,7 @@ def @PerlSetup 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 @@ -103,23 +107,25 @@ def @PerlSetup @A "$>" def @Perl - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @PerlSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lPerl" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lPerl" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lPerl" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lPerl" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @PerlSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -396,7 +421,7 @@ def @PerlSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Perl diff --git a/include/picture b/include/picture index ec8efc9..d81dbe5 100644 --- a/include/picture +++ b/include/picture @@ -3,7 +3,6 @@ # Lout setup file for stand-alone illustrations # # # # Jeffrey H. Kingston # -# 5 February 1999 # # # ############################################################################### @@ -61,6 +60,9 @@ # @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 + # @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 diff --git a/include/picturef b/include/picturef index 6987079..75e3140 100644 --- a/include/picturef +++ b/include/picturef @@ -4,7 +4,6 @@ # @IllustrationSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # -# August 1994 # # # # This package extends DocumentSetup for illustrations. # # # diff --git a/include/python b/include/python index 9216ca5..7fbac8a 100644 --- a/include/python +++ b/include/python @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/pythonf b/include/pythonf index 712c399..c05e4f4 100644 --- a/include/pythonf +++ b/include/pythonf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @PythonSetup 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 @@ -51,6 +53,7 @@ def @PythonSetup 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 @@ -75,6 +78,7 @@ def @PythonSetup 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 @@ -103,23 +107,25 @@ def @PythonSetup @A "$>" "''" def @Python - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @PythonSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lPython" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lPython" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lPython" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lPython" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @PythonSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -400,7 +425,7 @@ def @PythonSetup def "''" { "''" } { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Python diff --git a/include/report b/include/report index 7f2523d..0d216b8 100644 --- a/include/report +++ b/include/report @@ -3,8 +3,6 @@ # Lout setup file for technical reports # # # # Jeffrey H. Kingston # -# 5 February 1999 # -# 17 September 1999 # # # # Note: this version, released with Lout Version 3.13, is not upwardly # # compatible with previous versions: the @Abstract symbol must now # @@ -66,6 +64,9 @@ # @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 + # @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 diff --git a/include/reportf b/include/reportf index ebef8b5..f8e92a3 100644 --- a/include/reportf +++ b/include/reportf @@ -4,7 +4,6 @@ # @ReportSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # -# August 1994 # # # # This package extends DocumentSetup with definitions for reports. # # # diff --git a/include/rsl b/include/rsl index 3411034..a6c7928 100644 --- a/include/rsl +++ b/include/rsl @@ -34,6 +34,7 @@ @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" @@ -41,6 +42,7 @@ # 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 @@ -66,6 +68,7 @@ # 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 @@ -91,6 +94,7 @@ # 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 diff --git a/include/rslf b/include/rslf index 0680138..a708e3b 100644 --- a/include/rslf +++ b/include/rslf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @RSLSetup 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 @@ -51,6 +53,7 @@ def @RSLSetup 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 @@ -75,6 +78,7 @@ def @RSLSetup 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 @@ -103,22 +107,24 @@ def @RSLSetup @FA @A @PartialFn @Map @PartialMap @IntChoice @ExtChoice @InfList @Interlock "$>" def @RSL - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @RSLSetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lRSL" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lRSL" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lRSL" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lRSL" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @RSLSetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -454,7 +479,7 @@ def @RSLSetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @RSL diff --git a/include/ruby b/include/ruby index 6a82b55..c5895a0 100644 --- a/include/ruby +++ b/include/ruby @@ -33,6 +33,7 @@ @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" @@ -40,6 +41,7 @@ # 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 @@ -65,6 +67,7 @@ # 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 @@ -90,6 +93,7 @@ # 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 diff --git a/include/rubyf b/include/rubyf index e7f607a..1d30c54 100644 --- a/include/rubyf +++ b/include/rubyf @@ -18,6 +18,7 @@ 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 } } @@ -27,6 +28,7 @@ def @RubySetup 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 @@ -51,6 +53,7 @@ def @RubySetup 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 @@ -75,6 +78,7 @@ def @RubySetup 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 @@ -103,22 +107,24 @@ def @RubySetup @A "$>" def @Ruby - named style { style } # style - named numbered { numbered } # want numbered lines? - named pipe { pipe } # pipe through this first - named font { dft } # font family - named size { dft } # font size - named line { dft } # line-space - 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 + 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 @@ -181,16 +187,26 @@ def @RubySetup } } + def wantblanknumbered + { + blanknumbered @Case { + { No no } @Yield "-M" + { NoPrint noprint } @Yield "-N" + { Yes yes } @Yield "" + } + } + pipe @Case { "" @Yield { - "prg2lout -r -lRuby" wantnumbered -i{@FilterIn} - -o{@FilterOut} -e{@FilterErr} + "prg2lout -r -lRuby" wantblanknumbered wantnumbered + -i{@FilterIn} -o{@FilterOut} -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} } else @Yield { "cat" @FilterIn "|" pipe "|" - "prg2lout -r -lRuby" wantnumbered -o{@FilterOut} - -e{@FilterErr} -t{@InitTab} -T{@InitTabWidth} + "prg2lout -r -lRuby" wantblanknumbered wantnumbered + -o{@FilterOut} -e{@FilterErr} + -t{@InitTab} -T{@InitTabWidth} } } } @@ -223,6 +239,15 @@ def @RubySetup } + def @InitBLS + { + blanklinescale @Test + iffixed { fixedblanklinescale } + ifvarying { varyingblanklinescale } + ifsymbol { symbolblanklinescale } + } + + def @InitSpace { space @Test @@ -399,7 +424,7 @@ def @RubySetup { @InitFontFamily Base @InitSize } @Font @InitSpace @Space - { @InitLine lines nohyphen } @Break @Body + { @InitLine lines nohyphen "blanklinescale" @InitBLS } @Break @Body @End @Ruby diff --git a/include/save_graphf b/include/save_graphf deleted file mode 100644 index 8bb9d05..0000000 --- a/include/save_graphf +++ /dev/null @@ -1,891 +0,0 @@ - -############################################################################### -# # -# Lout @Graph package for drawing graphs (Version 1.0) # -# # -# Version 1.0 by Jeffrey H. Kingston, December 1993. # -# # -# This package draws graphs, the statistical kind not the graph-theoretical # -# kind. See the User's Guide (Advanced Graphics) for user info. # -# # -############################################################################### - -@SysInclude { graphf.etc } # @GraphMath -@SysInclude { lengths } # @LoutLengths -@SysInclude { coltex } # @ColourCommand and @TextureCommand -@SysPrependGraphic { graphf.lpg } - - -def @GraphObj - 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 - { "% @GraphObj UNIMPLEMENTED" } - @Graphic { //margin ||margin x ||margin //margin } - ||0io //0io - } - } - } -} - -def @GraphCross - import @LoutLengths named symbolsize { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath 0 0 moveto xsize ysize lineto 0 ysize moveto" - "xsize 0 lineto [] 0 setdash stroke" - } - @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 { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath xmark 0 moveto xmark ysize lineto 0 ymark moveto" - "xsize ymark lineto [] 0 setdash stroke" - } - @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 { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto" - "0 ysize lineto closepath [] 0 setdash stroke" - } - @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 { 0.15f } -{ - @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" - } - @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 { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath 0 ymark moveto xmark 0 lineto xsize ymark lineto" - "xmark ysize lineto closepath [] 0 setdash stroke" - } - @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 } -{ - @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" - } - @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 { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath xmark ymark xmark 0 360 arc" - "[] 0 setdash stroke" - } - @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 { 0.15f } -{ - @BackEnd @Case { - PostScript @Yield { - @HContract @VContract - { "newpath xmark ymark xmark 0 360 arc" - "gsave [] 0 setdash stroke grestore fill" - } - @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 { 0.15f } -{ - @BackEnd @Case { - - PostScript @Yield { - @HContract @VContract - { "newpath 0 0 moveto xsize 0 lineto xmark ysize 1.25 mul lineto" - "closepath [] 0 setdash stroke" - } - @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 { 0.15f } -{ - @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" - } - @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 @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 } - } - } -} - -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 } - } - } -} - -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 @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 } - } - } -} - - -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 } - body @Body -@Begin - - 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 } - 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 } - 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 }" - "{" @Paint "}" - "{" texture "}" - "]" - } - - def @Style - { - style @Case { - frame @Yield { "framestyle" } - none @Yield { "nonestyle" } - axes @Yield { "axesstyle" } - } - } - - def @XExtra - { - xextra @Case { - "none" @Yield { - style @Case { - frame @Yield { "0.5 cm" } - none @Yield { "0" } - axes @Yield { "0" } - } - } - else @Yield xextra - } - } - - def @YExtra - { - yextra @Case { - "none" @Yield { - style @Case { - frame @Yield { "0.5 cm" } - 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" - } - } - - @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 } } - } - -@End @Graph diff --git a/include/save_graphf.lpg b/include/save_graphf.lpg deleted file mode 100644 index 5546586..0000000 --- a/include/save_graphf.lpg +++ /dev/null @@ -1,899 +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. % -% % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -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 - -/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 - - -% cross: show a small cross -/cross -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg symbolsize neg rmoveto - symbolsize 2 mul symbolsize 2 mul rlineto - 0 symbolsize -2 mul rmoveto - symbolsize -2 mul symbolsize 2 mul rlineto - [] 0 setdash stroke -} def - -% plus: show a small plus -/plus -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg 0 rmoveto - symbolsize 2 mul 0 rlineto - symbolsize neg symbolsize neg rmoveto - 0 symbolsize 2 mul rlineto - [] 0 setdash stroke -} def - -% square: show a small square -/square -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg symbolsize neg rmoveto - symbolsize 2 mul 0 rlineto - 0 symbolsize 2 mul rlineto - symbolsize -2 mul 0 rlineto - closepath [] 0 setdash stroke -} def - -% filledsquare: show a small filled square -/filledsquare -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg symbolsize neg rmoveto - symbolsize 2 mul 0 rlineto - 0 symbolsize 2 mul rlineto - symbolsize -2 mul 0 rlineto - closepath gsave [] 0 setdash stroke grestore fill -} def - -% diamond: show a small diamond -/diamond -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg 0 rmoveto - symbolsize symbolsize neg rlineto - symbolsize symbolsize rlineto - symbolsize neg symbolsize rlineto - closepath [] 0 setdash stroke -} def - -% filleddiamond: show a small filled diamond -/filleddiamond -{ newpath - xcurr ycurr trpoint moveto - symbolsize neg 0 rmoveto - symbolsize symbolsize neg rlineto - symbolsize symbolsize rlineto - symbolsize neg symbolsize rlineto - closepath gsave [] 0 setdash stroke grestore fill -} def - -% circle: show a small circle -/circle -{ newpath - xcurr ycurr trpoint symbolsize 0 360 arc [] 0 setdash stroke -} def - -% filledcircle: show a small filled circle -/filledcircle -{ newpath - xcurr ycurr trpoint symbolsize 0 360 arc gsave [] 0 setdash stroke grestore fill -} def - -% triangle: show a small triangle -/triangle -{ newpath - xcurr ycurr trpoint moveto - 0 symbolsize 1.5 mul rmoveto - symbolsize neg symbolsize -2.5 mul rlineto - symbolsize 2 mul 0 rlineto - closepath [] 0 setdash stroke -} def - -% filledtriangle: show a small filled triangle -/filledtriangle -{ newpath - xcurr ycurr trpoint moveto - 0 symbolsize 1.5 mul rmoveto - symbolsize neg symbolsize -2.5 mul rlineto - symbolsize 2 mul 0 rlineto - closepath gsave [] 0 setdash stroke grestore fill -} 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 - -% 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 - -% 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 - -% 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/slides b/include/slides index b3fb95c..14de206 100644 --- a/include/slides +++ b/include/slides @@ -3,7 +3,6 @@ # Lout setup file for overhead transparencies # # # # Jeffrey H. Kingston # -# 5 February 1999 # # # ############################################################################### @@ -63,6 +62,9 @@ # @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 + # @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 @@ -332,7 +334,11 @@ # @OverheadNumbers { Arabic } # kind of overhead numbers # @FirstOverheadNumber { 1 } # first overhead num # @TitlePageFont { Helvetica Base 1.5f } # title page font - # @LectureHeadingFont { Bold 1.20f } # lecture head font + # @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 diff --git a/include/slidesf b/include/slidesf index 5194ff6..a0d69bd 100644 --- a/include/slidesf +++ b/include/slidesf @@ -4,7 +4,6 @@ # @OverheadSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # -# August 1994 # # # # This package extends DocumentSetup with definitions for overheads. # # # @@ -22,7 +21,11 @@ def @OverheadSetup named @OverheadNumbers { Arabic } named @FirstOverheadNumber { 1 } named @TitlePageFont { Helvetica Base } - named @LectureHeadingFont { Bold 1.20f } + 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 } @@ -149,11 +152,12 @@ def @OverheadSetup { @TitlePageFont @Font @InitialBreak @Break @InitialSpace @Space clines @Break { - //0.5i |0.5rt 1.5f @Font @InitialBreak @Break - @InitialSpace @Space clines @Break @Title | - //1i |0.5rt clines @Break @Author | - //0.5i |0.5rt clines @Break @I @Institution | - //0.5i @DatePart + //0.5i + //@AboveTitleGap |0.5rt 1.5f @Font @InitialBreak @Break + @InitialSpace @Space clines @Break @Title | + //@AboveAuthorGap |0.5rt clines @Break @Author | + //@AboveInstitutionGap |0.5rt clines @Break @I @Institution | + //@AboveDateLineGap @DatePart } } diff --git a/include/xind b/include/xind deleted file mode 100644 index aeade1e..0000000 --- a/include/xind +++ /dev/null @@ -1 +0,0 @@ - # @IndexRangeFormat { @From--@To } # index page range format diff --git a/include/xinda b/include/xinda deleted file mode 100644 index c27301b..0000000 --- a/include/xinda +++ /dev/null @@ -1 +0,0 @@ - # @IndexARangeFormat { @From--@To } # index page range format diff --git a/include/xindb b/include/xindb deleted file mode 100644 index 32583e8..0000000 --- a/include/xindb +++ /dev/null @@ -1 +0,0 @@ - # @IndexBRangeFormat { @From--@To } # index page range format |