aboutsummaryrefslogtreecommitdiffstats
path: root/include/save_bsf
diff options
context:
space:
mode:
Diffstat (limited to 'include/save_bsf')
-rw-r--r--include/save_bsf1826
1 files changed, 0 insertions, 1826 deletions
diff --git a/include/save_bsf b/include/save_bsf
deleted file mode 100644
index 40e15f7..0000000
--- a/include/save_bsf
+++ /dev/null
@@ -1,1826 +0,0 @@
-
-###############################################################################
-# #
-# Lout @BasicSetup package #
-# #
-# Jeffrey H. Kingston #
-# #
-# This package contains basic symbols used widely throughout many #
-# documents, for font changes, particular characters, standard words in #
-# the current language, date and time, paragraphs, lists, colours, #
-# rules, and boxes. #
-# #
-###############################################################################
-
-@SysInclude { lengths } # @PSLengths
-@SysInclude { coltex } # @ColourCommand and @TextureCommand
-@SysPrependGraphic { bsf.lpg } # rules, boxes, margin note setup
-
-
-###############################################################################
-# #
-# The following symbols are defined outside @BasicSetup so that #
-# they can be invoked when setting its parameters in the @Use clause. #
-# #
-###############################################################################
-
-def @OrIfPlain
- precedence 80
- left x
- right y
-{
- @BackEnd @Case {
- PlainText @Yield y
- else @Yield x
- }
-}
-
-###########################################################################
-# #
-# @Colour, @Color #
-# #
-###########################################################################
-
-def @Colour @Color left col right y { {@ColourCommand col} @SetColour y }
-
-
-###########################################################################
-# #
-# @ColouredUnderline, @ColoredUnderline #
-# #
-###########################################################################
-
-def @ColouredUnderline @ColoredUnderline left col right y {
- {@ColourCommand col} @SetUnderlineColour @Underline y
-}
-
-
-###########################################################################
-# #
-# @Texture #
-# #
-###########################################################################
-
-
-def @Texture
- left type
- named scale { 1 }
- named hscale { 1 }
- named vscale { 1 }
- import @PSLengths named angle { 0d }
- import @PSLengths named hshift { 0i }
- import @PSLengths named vshift { 0i }
- import @PSLengths named width { "dft" }
- import @PSLengths named height { "dft" }
- import @PSLengths named gap { "dft" }
- import @PSLengths named radius { "dft" }
- import @PSLengths named linewidth { "dft" }
- named font { "dft" }
- import @PSLengths named size { "dft" }
- named value { "dft" }
- right x
-{
- { type @TextureCommand
- scale { scale }
- hscale { hscale }
- vscale { vscale }
- angle { angle }
- hshift { hshift }
- vshift { vshift }
- width { width }
- height { height }
- gap { gap }
- radius { radius }
- linewidth { linewidth }
- font { font }
- size { size }
- value { value }
- } @SetTexture x
-}
-
-
-###############################################################################
-# #
-# Symbols exported by @BasicSetup. #
-# #
-###############################################################################
-
-export
-
- @InitialFont @InitialBreak @InitialOutdent @InitialSpace @InitialLanguage
- @InitialColour @OptimizePages @HeadingFont
- @ParaGap @ParaIndent @DisplayGap @DisplayIndent @DefaultIndent
- @DisplayNumStyle @WideIndent @VeryWideIndent
- @ListGap @ListIndent @ListRightIndent
- @ListLabelWidth @ListLabelRight @ListLabelRightGap @ListFont @ListBreak
- @NumberSeparator
-
- @Pipe @PipeVerbatim @PipeRawVerbatim
-
- @Word @Roman @UCRoman @Alpha @UCAlpha @FnBullets @FnSymbols
- @Months @ShortMonths @WeekDays @ShortWeekDays
- @TwelveHours @ShortHours @MeriDiems @ShortMeriDiems
-
- @Sym @Ding @R @I @B @BI @S @F @II
- "~" "~~" "``" "''" ",," "--" "---" "..."
-
- @Bullet @ParSym @SectSym @Dagger @DaggerDbl @CDot @Sterling @Yen @Florin
- @Star @Degree @Minute @Second @Multiply @Divide @Lozenge @Register
- @CopyRight @TradeMark @Euro
-
- @Date @Time @DateTimeFormat @DropCapTwo @DropCapThree @Centre @Right
- @NoDotSep @NoDotJoin @Join @Sep @DotSep @ColonSep @DotJoin @DashJoin
- @NumSep @VStrut @ZeroWidth @ZeroHeight @OverStrike @Sup @Sub @HClip @VClip
- @FullWidthRule @LocalWidthRule @Box @CurveBox @ShadowBox @BoundaryMarks
- @NumberMarker @NumberOf @TitleMarker @TitleOf
- @PageMarker @PageMark @NoLinkPageMark @PageOf @CrossLink @ExternalLink
-
- @BeginDisplayCounter
-
- @Heading "^" "&-" @If @Not @And @Or @True
- @PP @LP @LLP @DP @LOP @NP @CNP
-
- @BeginAlignedDisplays
- @EndAlignedDisplays
-
- @Display
- @LeftDisplay
- @IndentedDisplay
- @QuotedDisplay
- @CentredDisplay
- @RightDisplay
- @AlignedDisplay
- @LeftAlignedDisplay
- @IndentedAlignedDisplay
- @QuotedAlignedDisplay
- @CentredAlignedDisplay
- @RightAlignedDisplay
- @NumberedDisplay
- @LeftNumberedDisplay
- @IndentedNumberedDisplay
- @QuotedNumberedDisplay
- @CentredNumberedDisplay
- @RightNumberedDisplay
- @AlignedNumberedDisplay
- @LeftAlignedNumberedDisplay
- @IndentedAlignedNumberedDisplay
- @QuotedAlignedNumberedDisplay
- @CentredAlignedNumberedDisplay
- @RightAlignedNumberedDisplay
-
- @RawDisplay
- @RawLeftDisplay
- @RawIndentedDisplay
- @RawQuotedDisplay
- @RawCentredDisplay
- @RawRightDisplay
- @RawAlignedDisplay
- @RawLeftAlignedDisplay
- @RawIndentedAlignedDisplay
- @RawQuotedAlignedDisplay
- @RawCentredAlignedDisplay
- @RawRightAlignedDisplay
- @RawNumberedDisplay
- @RawLeftNumberedDisplay
- @RawIndentedNumberedDisplay
- @RawQuotedNumberedDisplay
- @RawCentredNumberedDisplay
- @RawRightNumberedDisplay
- @RawAlignedNumberedDisplay
- @RawLeftAlignedNumberedDisplay
- @RawIndentedAlignedNumberedDisplay
- @RawQuotedAlignedNumberedDisplay
- @RawCentredAlignedNumberedDisplay
- @RawRightAlignedNumberedDisplay
-
- @ListItem
- @ParagraphItem
- @ListInterruptItem
- @ListNewPage
- @DropListItem
- @TagItem
- @DropTagItem
-
- @EndList
- @RawEndList
-
- @RawList
- @RawLeftList
- @RawIndentedList
- @RawQuotedList
- @RawCentredList @RawCenteredList
- @RawNumberedList
- @RawParenNumberedList
- @RawRomanList
- @RawParenRomanList
- @RawUCRomanList
- @RawParenUCRomanList
- @RawAlphaList
- @RawParenAlphaList
- @RawUCAlphaList
- @RawParenUCAlphaList
- @RawBulletList
- @RawStarList
- @RawDashList
- @RawTaggedList
- @RawWideTaggedList
- @RawVeryWideTaggedList
-
- @List
- @LeftList
- @IndentedList
- @QuotedList
- @CentredList @CenteredList
- @NumberedList
- @ParenNumberedList
- @RomanList
- @ParenRomanList
- @UCRomanList
- @ParenUCRomanList
- @AlphaList
- @ParenAlphaList
- @UCAlphaList
- @ParenUCAlphaList
- @BulletList
- @StarList
- @DashList
- @TaggedList
- @WideTaggedList
- @VeryWideTaggedList
-
-
-###############################################################################
-# #
-# The @BasicSetup package. #
-# #
-###############################################################################
-
-def @BasicSetup
- named @InitialFont { Times Base 12p } # initial font
- named @InitialBreak { {adjust 1.20fx hyphen} @OrIfPlain
- {ragged 1fx nohyphen} } # initial break
- named @InitialOutdent { 2f @OrIfPlain 4s } # initial outdent
- named @InitialSpace { lout } # initial space style
- named @InitialLanguage{ English } # initial language
- named @InitialColour { black } # initial colour
- named @OptimizePages { No } # optimize page breaks?
- named @HeadingFont { Bold } # font for @Heading
- named @FixedWidthFont { Courier Base -1p } # font for @F
- named @ParaGap { 1.3vx @OrIfPlain 1f } # gap between paragraphs
- named @ParaIndent { 2.0f @OrIfPlain 5s } # first-line indent for @PP
- named @DisplayGap { 1.0v @OrIfPlain 1f } # gap above, below displays
- named @DisplayIndent { 2.0f @OrIfPlain 5s } # @IndentedDisplay indent
- named @DefaultIndent { 0.5rt } # @Display indent
- named @DisplayNumStyle
- right num { (num) } # display number style
- named @WideIndent { 4.0f @OrIfPlain 10s } # @WideTaggedList indent
- named @VeryWideIndent { 8.0f @OrIfPlain 20s } # @VeryWideTaggedList indent
- named @ListOuterGap { 1.0v @OrIfPlain 1f } # gap before, after list
- named @ListGap { 1.0v @OrIfPlain 1f } # gap between list items
- named @ListIndent { 0s } # indent of list items
- named @ListRightIndent{ 0s } # right indent of list items
- named @ListLabelWidth { 2.0f @OrIfPlain 5s } # width allowed for list tags
- named @ListLabelRight { No } # right align label
- named @ListLabelRightGap { 2s } # right align gap
- named @ListFont { } # font style of list item
- named @ListBreak { } # break style of list item
- named @NumberSeparator{ . } # separates numbers like 2.3.7
- import @BasicSetup
- named @CrossLinkFormat
- right @Body { @Body } # format for cross links
- import @BasicSetup
- named @ExternalLinkFormat
- right @Body { @Body } # format for external links
-@Begin
-
- ###########################################################################
- # #
- # x @Dft y #
- # #
- # This returns x unless its value is "dft", in which case it returns y. #
- # Useful for defaulting the value of one parameter to another. #
- # #
- ###########################################################################
-
- def @Dft
- left x
- right y
- {
- x @Case {
- dft @Yield y
- else @Yield x
- }
- }
-
-
- ###########################################################################
- # #
- # @Pipe, @PipeVerbatim, and @PipeRawVerbatim #
- # #
- ###########################################################################
-
- def @Pipe
- left command
- right x
- {
- def @Filter { "cat" @FilterIn "|" command ">" @FilterOut }
-
- x
- }
-
- def @PipeVerbatim
- left command
- right x
- {
- def @Filter {
- "(echo @Verbatim @Begin ; (cat" @FilterIn "|" command "); echo @End @Verbatim ) >" @FilterOut }
-
- x
- }
-
- def @PipeRawVerbatim
- left command
- right x
- {
- def @Filter {
- "(echo @RawVerbatim @Begin ; (cat" @FilterIn "|" command "); echo @End @Verbatim ) >" @FilterOut }
-
- x
- }
-
-
- ###########################################################################
- # #
- # @Sym, @Ding font symbols, and miscellaneous special characters. #
- # #
- ###########################################################################
-
- def @Sym right x { { Symbol Base } @Font @Char x }
- def @Ding right x { { Dingbats Base } @Font @Char x }
-
- def @R right x { Base @Font x }
- def @I right x { Slope @Font x }
- def @B right x { Bold @Font x }
- def @BI right x { BoldSlope @Font x }
- def @S right x { smallcaps @Font x }
- def @F right x { @FixedWidthFont @Font x }
-
- def @II
- right x
- {
- { @CurrFace @Case {
- Bold @Yield BoldSlope
- else @Yield Slope
- } } @Font x
- }
-
- def "~" left x right y { x &1su y }
- def "~~" left x right y { x &2s y }
-
- def "``" { @Char "quotedblleft" @OrIfPlain "``" }
- def "''" { @Char "quotedblright" @OrIfPlain "''" }
- def ",," { @Char "quotedblbase" @OrIfPlain ",," }
- def "--" { @Char "endash" @OrIfPlain "--" }
- def "---" { @Char "emdash" @OrIfPlain "---"}
- def "..." { @Char "ellipsis" @OrIfPlain "..."}
- def @Bullet { @Char "bullet" @OrIfPlain "o" }
- def @ParSym { @Char "paragraph" @OrIfPlain "P" }
- def @SectSym { @Char "section" @OrIfPlain "$" }
- def @Dagger { @Char "dagger" @OrIfPlain "+" }
- def @DaggerDbl { @Char "daggerdbl" @OrIfPlain "++" }
- def @CDot { @Char "periodcentered" @OrIfPlain "." }
- def @Sterling { @Char "sterling" @OrIfPlain "&" }
- def @Yen { @Char "yen" @OrIfPlain "Y" }
- def @Florin { @Char "florin" @OrIfPlain "f" }
-
- def @Star { @Sym "asteriskmath" @OrIfPlain "*" }
- def @Degree { @Sym "degree" @OrIfPlain "o" }
- def @Minute { @Sym "minute" @OrIfPlain "'" }
- def @Second { @Sym "second" @OrIfPlain "''" }
- def @Multiply { @Sym "multiply" @OrIfPlain "x" }
- def @Divide { @Sym "divide" @OrIfPlain "/" }
- def @Lozenge { @Sym "lozenge" @OrIfPlain "O" }
- def @Register { @Sym "registersans" @OrIfPlain "R" }
- def @CopyRight { @Sym "copyrightsans" @OrIfPlain "C" }
- def @TradeMark { @Sym "trademarksans" @OrIfPlain "TM" }
-
- def @Euro
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- 0.65w @VShift @VContract @HContract
- "xsize ysize ysize 0.07 mul louteuro" @Graphic {
- 0.7f @High 0.735f @Wide
- }
- }
-
- PDF @Yield { EUR }
-
- PlainText @Yield { EUR }
- }
- }
-
-
- ###########################################################################
- # #
- # Symbols stored in the "standard" database #
- # #
- # @Word language-spacific words such as Chapter, etc. #
- # @Roman lower case Roman numerals i, ii, ... , cc #
- # @UCRoman upper case Roman numerals I, II, ... , CC #
- # @Alpha lower case Roman alphabet a, b, ... , z #
- # @UCAlpha upper case Roman alphabet A, B, ... , Z #
- # @FnBullets bullets as footnote markers #
- # @FnSymbols traditional footnote symbols asterisk, dagger, etc. #
- # @Months months of the year: January, ... , December #
- # @ShortMonths months of the year, abbreviated: Jan, ..., Dec #
- # @WeekDays days of the week: Sunday, ... , Saturday #
- # @ShortWeekDays days of the week, abbreviated: Sun, ... , Sat #
- # @TwelveHours hours, from 1 to 12 #
- # @ShortHours hours, from 0 to 23 #
- # @DateTimeFormat format of results of @Date and @Time #
- # #
- ###########################################################################
-
- def @Word left @Tag right @Val { @Val }
- def @Roman left @Tag right @Val { @Val }
- def @UCRoman left @Tag right @Val { @Val }
- def @Alpha left @Tag right @Val { @Val }
- def @UCAlpha left @Tag right @Val { @Val }
- def @FnBullets left @Tag right @Val { @Val }
- def @FnSymbols left @Tag right @Val { @Val }
- def @Months left @Tag right @Val { @Val }
- def @ShortMonths left @Tag right @Val { @Val }
- def @WeekDays left @Tag right @Val { @Val }
- def @ShortWeekDays left @Tag right @Val { @Val }
- def @TwelveHours left @Tag right @Val { @Val }
- def @ShortHours left @Tag right @Val { @Val }
- def @MeriDiems left @Tag right @Val { @Val }
- def @ShortMeriDiems left @Tag right @Val { @Val }
-
- export @Value
- def @DateTimeFormat left @Tag
- named @Value
- named @Year {}
- named @ShortYear {}
- named @Month {}
- named @ShortMonth {}
- named @MonthNum {}
- named @Day {}
- named @ShortDay {}
- named @DayNum {}
- named @MeriDiem {}
- named @ShortMeriDiem {}
- named @Hour {}
- named @TwelveHour {}
- named @ShortHour {}
- named @Minute {}
- named @Second {}
- {}
- {}
-
- @SysDatabase @Word @Roman @UCRoman @Alpha @UCAlpha @FnBullets @FnSymbols
- @Months @ShortMonths @WeekDays @ShortWeekDays @TwelveHours
- @ShortHours @MeriDiems @ShortMeriDiems @DateTimeFormat
- { standard }
-
-
- ###########################################################################
- # #
- # @Date and @Time: the date and time now. #
- # #
- ###########################################################################
-
- def @Date
- named @Format
- named @Year { @Moment&&now @Open { {@Century}@Year }}
- named @ShortYear { @Moment&&now @Open { @Year }}
- named @Month { @Moment&&now @Open { @Months&&@Month }}
- named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }}
- named @MonthNum { @Moment&&now @Open { @Month }}
- named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }}
- named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}}
- named @DayNum { @Moment&&now @Open { @Day }}
- named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }}
- named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }}
- named @Hour { @Moment&&now @Open { @Hour }}
- named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }}
- named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }}
- named @Minute { @Moment&&now @Open { @Minute }}
- named @Second { @Moment&&now @Open { @Second }}
- {
- @DateTimeFormat&&date @Open { @Value
- @Year { @Year }
- @ShortYear { @ShortYear }
- @Month { @Month }
- @ShortMonth { @ShortMonth }
- @MonthNum { @MonthNum }
- @Day { @Day }
- @ShortDay { @ShortDay }
- @DayNum { @DayNum }
- @MeriDiem { @MeriDiem }
- @ShortMeriDiem { @ShortMeriDiem }
- @Hour { @Hour }
- @TwelveHour { @TwelveHour }
- @ShortHour { @ShortHour }
- @Minute { @Minute }
- @Second { @Second }
- }
- }
- { @Format }
-
- def @Time
- named @Format
- named @Year { @Moment&&now @Open { {@Century}@Year }}
- named @ShortYear { @Moment&&now @Open { @Year }}
- named @Month { @Moment&&now @Open { @Months&&@Month }}
- named @ShortMonth { @Moment&&now @Open { @ShortMonths&&@Month }}
- named @MonthNum { @Moment&&now @Open { @Month }}
- named @Day { @Moment&&now @Open { @WeekDays&&@WeekDay }}
- named @ShortDay { @Moment&&now @Open { @ShortWeekDays&&@WeekDay}}
- named @DayNum { @Moment&&now @Open { @Day }}
- named @MeriDiem { @Moment&&now @Open { @MeriDiems&&@Hour }}
- named @ShortMeriDiem{ @Moment&&now @Open { @ShortMeriDiems&&@Hour }}
- named @Hour { @Moment&&now @Open { @Hour }}
- named @TwelveHour { @Moment&&now @Open { @TwelveHours&&@Hour }}
- named @ShortHour { @Moment&&now @Open { @ShortHours&&@Hour }}
- named @Minute { @Moment&&now @Open { @Minute }}
- named @Second { @Moment&&now @Open { @Second }}
- {
- @DateTimeFormat&&time @Open { @Value
- @Year { @Year }
- @ShortYear { @ShortYear }
- @Month { @Month }
- @ShortMonth { @ShortMonth }
- @MonthNum { @MonthNum }
- @Day { @Day }
- @ShortDay { @ShortDay }
- @DayNum { @DayNum }
- @MeriDiem { @MeriDiem }
- @ShortMeriDiem { @ShortMeriDiem }
- @Hour { @Hour }
- @TwelveHour { @TwelveHour }
- @ShortHour { @ShortHour }
- @Minute { @Minute }
- @Second { @Second }
- }
- }
- { @Format }
-
-
- ###########################################################################
- # #
- # @DropCapTwo and @DropCapThree #
- # #
- ###########################################################################
-
- def @DropCapTwo
- left y
- named height { 1.5v }
- right x
- {
- def @ParPlace { @Galley }
- def @EndParPlace { @Galley }
-
- def @LineList
- {
- @PAdjust @ParPlace
- //1vx @LineList
- }
-
- def @ParGalley horizontally into { @ParPlace&&preceding }
- right x
- {
- x
- }
-
- def @EndPar force into { @EndParPlace&&following } { @Null }
-
- def @Cap
- {
- -0.25f @VShift 1.0w @VShift {
- -90d @Rotate height @Wide @Scale 90d @Rotate y
- }
- }
-
- |1s @PAdjust @ParPlace
- /1vo @Cap @ParGalley {x & @EndPar &1rt } | @PAdjust @ParPlace
- //1vx @LineList
- // @EndParPlace
- }
-
- def @DropCapThree
- left y
- named height { 2.5v }
- right x
- {
- def @ParPlace { @Galley }
- def @EndParPlace { @Galley }
-
- def @LineList
- {
- @PAdjust @ParPlace
- //1vx @LineList
- }
-
- def @ParGalley force horizontally into { @ParPlace&&preceding }
- right x
- {
- x
- }
-
- def @EndPar force into { @EndParPlace&&following } { @Null }
-
- def @Cap
- {
- -0.25f @VShift 1.0w @VShift {
- -90d @Rotate height @Wide @Scale 90d @Rotate y
- }
- }
-
- |1s @PAdjust @ParPlace
- /1vo @ParGalley { x & @EndPar &1rt } | @PAdjust @ParPlace
- /1vo @Cap | @PAdjust @ParPlace
- //1vx @LineList
- // @EndParPlace
- }
-
-
- ###########################################################################
- # #
- # @Centre, @Center, @Right, @NoDotSep, @NoDotJoin, @DotSep, #
- # @ColonSep, @DotJoin, @DashJoin, @NumSep #
- # #
- ###########################################################################
-
- macro @Centre @Center { |0.5rt @HContract }
-
- def @Right
- precedence 50
- left x
- right y
- { x |1.0rt @OneCol { 2f @Wide {} | y } }
-
- def @NoDotSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x |2s y }
- }
- }
- }
- }
-
- def @NoDotJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{y} }
- }
- }
- }
- }
-
- def @DotSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x. |2s y }
- }
- }
- }
- }
-
- def @ColonSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x: |2s y }
- }
- }
- }
- }
-
- def @DotJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x.y }
- }
- }
- }
- }
-
- def @DashJoin left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x--y }
- }
- }
- }
- }
-
- def @NumSep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield {
- @CurrLang @Case {
- Hungarian @Yield { y. x }
- else @Yield { x y }
- }
- }
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @VStrut, @ZeroWidth, @ZeroHeight #
- # #
- ###########################################################################
-
-
- def @VStrut
- named above { 0.5f }
- named below { 0.5f }
- right x
- {
- x &0iu @VContract { above @High ^/ below @High }
- }
-
-
- def @ZeroWidth right x { @HContract { |0io x |0io } }
-
- def @ZeroHeight right x { @VContract { /0io x /0io } }
-
-
- ###########################################################################
- # #
- # @OverStrike, @Sup and @Sub #
- # #
- ###########################################################################
-
- def @OverStrike left x right y
- {
- @OneRow { @HContract @VContract x /0io @HContract @VContract y }
- }
-
- def @Sup
- left x
- named gap { 0.40fk }
- right y
- {
- @HContract @VContract
- {
- | 0.7f @Font y ^/gap x
- }
- }
-
- def @Sub
- left x
- named gap { 0.40fk }
- right y
- {
- @HContract @VContract
- {
- x /gap | 0.7f @Font y
- }
- }
-
-
- ###########################################################################
- # #
- # @HClip and @VClip #
- # #
- ###########################################################################
-
- def @HClip
- named shift { 0.0 }
- right x
- {
- { "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto"
- "closepath clip gsave" // "grestore" } @Graphic
- {
- |{{shift}"rt"} @ZeroWidth {{shift}"w"} @HShift x |
- }
- }
-
- def @VClip
- named shift { 0.0 }
- right x
- {
- { "newpath 0 0 moveto xsize 0 lineto xsize ysize lineto 0 ysize lineto"
- "closepath clip gsave" // "grestore" } @Graphic
- {
- /{{shift}"rt"} @ZeroHeight {{shift}"w"} @VShift x /
- }
- }
-
-
- ###########################################################################
- # #
- # @AddPaint, @StrokeCommand #
- # #
- ###########################################################################
-
- def @AddPaint
- left col
- right texture
- {
- col @Case {
- none @Yield ""
- nochange @Yield {
- @BackEnd @Case {
- PostScript @Yield { "gsave" texture "fill grestore" }
- PDF @Yield { "q f Q" }
- PlainText @Yield { "" }
- }
- }
- else @Yield {
- @BackEnd @Case {
- PostScript @Yield {"gsave" @ColourCommand col texture "fill grestore"}
- PDF @Yield { "q" @ColourCommand col "f Q" }
- PlainText @Yield { "" }
- }
- }
- }
- }
-
- def @StrokeCommand right linewidth
- {
- @BackEnd @Case {
- PostScript @Yield {
- linewidth @Case {
- "" @Yield { "stroke" }
- none @Yield { }
- else @Yield { linewidth "setlinewidth stroke" }
- }
- }
- PDF @Yield {
- linewidth @Case {
- "" @Yield { "S" }
- none @Yield { }
- else @Yield { linewidth "w S" }
- }
- }
- else @Yield ""
- }
- }
-
-
-
- ###########################################################################
- # #
- # @FullWidthRule, @Box, @CurveBox, and @ShadowBox #
- # #
- ###########################################################################
-
- def @FullWidthRule
- import @PSLengths named linewidth {}
- {
- @BackEnd @Case {
-
- PostScript @Yield @HExpand {
- { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PDF @Yield @HExpand {
- { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- }
- }
-
- def @LocalWidthRule
- import @PSLengths named linewidth {}
- {
- @BackEnd @Case {
-
- PostScript @Yield {
- { "LoutRule" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PDF @Yield {
- { "0 0 m __xsize 0 l" @StrokeCommand linewidth } @Graphic { 0.5p @High }
- }
-
- PlainText @Yield { "-" @PlainGraphic 1f @High }
- }
- }
-
- def @Box
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- right x
- {
- @BackEnd @Case {
-
- PostScript @Yield @VContract @HContract 0c @HShift {
- {"LoutBox" paint @AddPaint texture @StrokeCommand linewidth }
- @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PDF @Yield @VContract @HContract 0c @HShift {
- { "0 0 m __xsize 0 l __xsize __ysize l 0 __ysize l h"
- paint @AddPaint texture @StrokeCommand linewidth } @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PlainText @Yield @VContract @HContract 0c @HShift {
- ^/margin ^|margin 0c @HShift @OneRow x |margin /margin
- }
- }
- }
-
- def @CurveBox
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- right x
- {
- def @PDFStuff
- {
- "__xmark 0 m"
- "__sub(__xsize, __xmark) 0 l"
- "__sub(__xsize, __div(__mul(11, __xmark), 24)) 0"
- "__xsize __div(__mul(11, __xmark), 24)"
- "__xsize __xmark c"
- "__xsize __sub(__ysize, __xmark) l"
- "__xsize __sub(__ysize, __div(__mul(11, __xmark), 24))"
- "__sub(__xsize, __div(__mul(11, __xmark), 24)) __ysize"
- "__sub(__xsize, __xmark) __ysize c"
- "__xmark __ysize l"
- "__div(__mul(11, __xmark), 24) __ysize"
- "0 __sub(__ysize, __div(__mul(11, __xmark), 24))"
- "0 __sub(__ysize, __xmark) c"
- "0 __xmark l"
- "0 __div(__mul(11, __xmark), 24)"
- "__div(__mul(11, __xmark), 24) 0"
- "__xmark 0 c"
- "h"
- paint @AddPaint texture @StrokeCommand linewidth
- }
-
- @VContract @HContract 0c @HShift @BackEnd @Case {
-
- PostScript @Yield {
- {"LoutCurveBox" paint @AddPaint texture @StrokeCommand linewidth }
- @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
-
- PlainText @Yield {
- ^/margin ^|margin 0c @HShift @OneRow x |margin /margin
- }
-
- PDF @Yield {
- @PDFStuff @Graphic
- { ^/margin ^|margin 0c @HShift @OneRow x |margin /margin }
- }
- }
- }
-
- def @ShadowBox
- named margin { 0.3f }
- import @PSLengths named linewidth {}
- named paint { none }
- import @TextureImport named texture {}
- named shadow { 0.2f }
- right x
- {
- @VContract @HContract 0c @HShift @BackEnd @Case {
-
- PostScript @Yield {
- "LoutShadowBox fill" @Graphic
- { ^/shadow ^|shadow 0c @HShift
- @Box
- margin {margin}
- paint {paint}
- texture { texture }
- linewidth {linewidth} x
- |shadow /shadow
- }
- }
-
- PlainText @Yield {
- ^/shadow ^|shadow 0c @HShift
- @Box
- margin { margin }
- paint { paint }
- texture { texture }
- linewidth {linewidth} x
- |shadow /shadow
- }
-
- PDF @Yield {
- {
- "__mul(__xmark, 2) 0 m __xsize 0 l"
- "__xsize __sub(__ysize, __mul(__xmark, 2)) l"
- "__sub(__xsize, __xmark) __sub(__ysize, __mul(__xmark, 2)) l"
- "__sub(__xsize, __xmark) __xmark l"
- "__mul(__xmark, 2) __xmark l h f"
- }
- @Graphic
- { ^/shadow ^|shadow 0c @HShift
- @Box
- margin { margin }
- paint { paint }
- texture { texture }
- linewidth { linewidth } x
- |shadow /shadow
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # @BoundaryMarks #
- # #
- ###########################################################################
-
- def @BoundaryMarks
- import @PSLengths named linewidth { 0.2p }
- import @PSLengths named length { 0.5c }
- import @PSLengths named gap { 0.5c }
- import @PSLengths named lout { 0c }
- import @PSLengths named rout { 0c }
- import @PSLengths named uout { 0c }
- import @PSLengths named dout { 0c }
- {
- def @UpStroke { "0" gap "rmoveto" "0" length "rlineto" }
- def @DownStroke { "0" gap "neg" "rmoveto" "0" length "neg rlineto" }
- def @LeftStroke { gap "neg" "0" "rmoveto" length "neg" "0 rlineto" }
- def @RightStroke { gap "0" "rmoveto" length "0 rlineto" }
-
- def @LLSpot { lout "neg" dout "neg" moveto }
- def @LRSpot { xsize rout "add" dout "neg" moveto }
- def @ULSpot { lout "neg" ysize uout "add" moveto }
- def @URSpot { xsize rout "add" ysize uout "add" moveto }
-
- def @PDFStuff {
- "__sub(-"gap", "lout") __sub(0, "dout") m "
- "__sub(__sub(-"gap", "lout"), "length") __sub(0, "dout") l"
- "__sub(0, "lout") __sub(-"gap", "dout") m "
- "__sub(0, "lout") __sub(__sub(-"gap", "dout"), "length") l"
- "__add(__xsize,"rout") __sub(-"gap", "dout") m "
- "__add(__xsize,"rout") __sub(__sub(-"gap", "dout"), "length") l"
- "__add(__add(__xsize,"rout"),"gap") __sub(0, "dout") m "
- "__add(__add(__add(__xsize,"rout"),"gap"),"length") __sub(0, "dout") l"
- " __sub(__sub(0, "lout"), "gap") __add(__ysize, "uout") m "
- "__sub(__sub(__sub(0, "lout"), "gap"), "length") __add(__ysize, "uout") l"
- "__sub(0, "lout") __add(__add(__ysize, "uout"), "gap") m "
- "__sub(0, "lout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l"
- " __add(__add(__xsize, "rout"), "gap") __add(__ysize, "uout") m "
- "__add(__add(__add(__xsize, "rout"), "gap"), "length") __add(__ysize, "uout") l"
- "__add(__xsize, "rout") __add(__add(__ysize, "uout"), "gap") m "
- "__add(__xsize, "rout") __add(__add(__add(__ysize, "uout"), "gap"), "length") l"
-
- linewidth "w S"
- }
-
- @BackEnd @Case {
-
- PostScript @Yield {
- {
- @LLSpot @LeftStroke
- @LLSpot @DownStroke
- @LRSpot @DownStroke
- @LRSpot @RightStroke
- @ULSpot @LeftStroke
- @ULSpot @UpStroke
- @URSpot @RightStroke
- @URSpot @UpStroke
-
- linewidth "setlinewidth stroke"
- } @Graphic {}
- }
-
- PlainText @Yield ""
-
- PDF @Yield { @PDFStuff @Graphic {} }
- }
- }
-
- ##########################################################################
- # #
- # @NumberMarker, @NumberOf, @TitleMarker, @TitleOf, #
- # @PageMark, @PageOf, @CrossLink, @ExternalLink #
- # #
- # NB the default value ?? is desperately important for unsorted #
- # reference lists numbered by first appearance (@NumberOf @Tag), #
- # because it is the special sort key value that prevents merging, #
- # hence allowing all the references to be printed even though #
- # their sort keys are all ?? initially. #
- # #
- ##########################################################################
-
- export @Tag @Value
- def @NumberMarker
- named @Tag {}
- named @Value { "??" }
- {
- @Null
- }
-
- def @NumberOf
- right tag
- {
- @NumberMarker&&tag @Open { @Value }
- }
-
-
- export @Tag @Value
- def @TitleMarker
- named @Tag {}
- named @Value { "??" }
- {
- @Null
- }
-
- def @TitleOf
- right tag
- {
- @TitleMarker&&tag @Open { @Value }
- }
-
-
- export num rawnum @Tag
- def @PageMarker
- named @Tag {}
- named num {}
- named rawnum {}
- {
- @PageLabel num
- }
-
- def @PageMark
- right tag
- {
- tag @LinkDest @Null & @PageMarker&&preceding @Tagged tag
- }
-
- def @NoLinkPageMark
- right tag
- {
- @PageMarker&&preceding @Tagged tag
- }
-
- def @PageOf
- right tag
- {
- @PageMarker&&tag @Open { num }
- }
-
- def @CrossLink
- left tag
- named @Format right @Body { @CrossLinkFormat @Body }
- right obj
- {
- @HContract @VContract {
- tag @LinkSource @Format obj
- }
- }
-
- def @ExternalLink
- left tag
- named @Format right @Body { @ExternalLinkFormat @Body }
- right obj
- {
- @HContract @VContract {
- tag @URLLink @Format obj
- }
- }
-
-
- ###########################################################################
- # #
- # @Join and @Sep #
- # #
- # Join two objects together with @NumberSeparator, unless one is #
- # empty in which case just return the other. #
- # #
- ###########################################################################
-
- def @Join left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{@NumberSeparator}y }
- }
- }
- }
- }
-
- def @Sep left x right y
- {
- x @Case {
- {} @Yield y
- else @Yield {
- y @Case {
- {} @Yield x
- else @Yield { x{@NumberSeparator} |2s y }
- }
- }
- }
- }
-
-
- ###########################################################################
- # #
- # Miscellaneous. #
- # #
- ###########################################################################
-
- def @Heading right x { ragged @Break @HeadingFont @Font x }
- def "^" { {} ^& {} }
- def "&-" left x right y { x &0ch y }
-
-
- ###########################################################################
- # #
- # @If @Not @And @Or @True #
- # #
- # Used in databases to make optional fields format nicely. #
- # #
- ###########################################################################
-
- def @If
- precedence 97
- left x
- right y
- {
- y @Case {
- {} @Yield @Null
- else @Yield { @Null{x} }
- }
- }
-
- def @Not
- precedence 100
- right y
- {
- y @Case {
- {} @Yield "*"
- else @Yield ""
- }
- }
-
- def @And
- precedence 99
- left x
- right y
- {
- x @Case {
- {} @Yield {}
- else @Yield y
- }
- }
-
- def @Or
- precedence 98
- left x
- right y
- {
- x @Case {
- {} @Yield y
- else @Yield x
- }
- }
-
- def @True { "*" }
-
-
- ###########################################################################
- # #
- # Paragraphs. #
- # #
- ###########################################################################
-
- macro @PP { //@ParaGap @ParaIndent @Wide &{0i} }
- macro @LP { //{@ParaGap} }
- macro @LLP { //{1vx} }
- macro @DP { //{@DisplayGap} }
- macro @LOP { //{@ListOuterGap} }
- macro @NP { //{1.1b} }
- macro @CNP { // 3.2v @High //0io //{} }
-
-
- ###########################################################################
- # #
- # Beginning and ending of aligned displays. #
- # #
- ###########################################################################
-
- def @APlace { @Galley }
- def @EndAlignedPlace { @Galley }
- def @AlignedPlace { @Galley }
-
- def @BAligned into { @APlace&&preceding }
- {
- def @AlignedList { @AlignedPlace /1.1b @AlignedList }
-
- //1.1b @AlignedList
- // @EndAlignedPlace
- }
-
- macro @BAD @BeginAlignedDisplays { // @APlace | @BAligned }
- def @EAD @EndAlignedDisplays force into { @EndAlignedPlace&&preceding } {}
-
-
- ###########################################################################
- # #
- # New code for numbered displays that will cross section boundaries #
- # #
- ###########################################################################
-
- export @Tag val
- def @NumDispCounterMarker
- named @Tag {}
- named val {}
- {
- @Null
- }
-
- def @NumDispNum right tag
- {
- @NumDispCounterMarker&&tag @Open { @Next val }
- }
-
- def @NumDispCounterIncrement
- named @BypassNumber { "dft" }
- right tag
- {
- def @DisplayNumber
- {
- @BypassNumber @Dft { @NumDispNum tag }
- }
-
- @NumDispCounterMarker&&preceding @Tagged tag
- # @NumDispCounterMarker val { @NumDispNum tag }
- # @NumberMarker @Tag { tag } @Value { @NumDispNum tag }
- @NumDispCounterMarker val { @DisplayNumber }
- @NumberMarker @Tag { tag } @Value { @DisplayNumber }
- }
-
- def @NN
- {
- @NumDispCounterMarker&&preceding @Open { @DisplayNumStyle val }
- }
-
- def @Do
- left x
- right y
- {
- x @Case {
- { No None } @Yield @Null
- else @Yield y
- }
- }
-
- def @BeginDisplayCounter
- left condition
- right prefix
- {
- condition @Do @NumDispCounterMarker val { prefix @Join 0 }
- }
-
-
- ###########################################################################
- # #
- # Galleys that carry displays to their places. #
- # #
- ###########################################################################
-
- def @DispPlace { @Galley }
-
- def @Disp into { @DispPlace&&preceding }
- right x
- {
- x
- }
-
- def @NDisp into { @DispPlace&&preceding }
- named @Tag {}
- named @BypassNumber { "dft" }
- right x
- {
- @OneRow {
- @NumDispCounterIncrement @Tag
- # @NumDispCounterIncrement @BypassNumber { @BypassNumber } @Tag
- @PageMark @Tag
- ^//
- @OneRow x
- }
- }
-
- def @ADisp into { @AlignedPlace&&preceding }
- right x
- {
- x
- }
-
- def @ANDisp into { @AlignedPlace&&preceding }
- named @Tag {}
- named @BypassNumber { "dft" }
- right x
- {
- @OneRow {
- @NumDispCounterIncrement @Tag
- # @NumDispCounterIncrement @BypassNumber { @BypassNumber } @Tag
- @PageMark @Tag
- ^/
- @OneRow x
- }
- }
-
-
- ###########################################################################
- # #
- # Displays and raw displays. #
- # #
- ###########################################################################
-
- macro @G { |@DefaultIndent }
- macro @LG { | }
- macro @IG { |@DisplayIndent }
- macro @CG { |0.5rt }
- macro @RG { |1.0rt }
- macro @QR { @DisplayIndent @Wide { |1rt @NN } }
- macro @DX { @DispPlace }
- macro @DY { @Disp }
- macro @AX { @APlace }
- macro @AY { @ADisp }
- macro @NY { @NDisp }
- macro @MY { @ANDisp }
-
- macro @D @Display { @DP @G @DX | @DP // @DY }
- macro @LD @LeftDisplay { @DP @LG @DX | @DP // @DY }
- macro @ID @IndentedDisplay { @DP @IG @DX | @DP // @DY }
- macro @QD @QuotedDisplay { @DP @IG @DX @IG @DP // @DY }
- macro @CD @CentredDisplay
- @CenteredDisplay { @DP @CG @DX | @DP // @DY }
- macro @RightDisplay { @DP @RG @DX | @DP // @DY }
-
-
- macro @AD @AlignedDisplay { @DP @G @AX | @DP // @AY }
- macro @LAD @LeftAlignedDisplay { @DP @LG @AX | @DP // @AY }
- macro @IAD @IndentedAlignedDisplay { @DP @IG @AX | @DP // @AY }
- macro @QAD @QuotedAlignedDisplay { @DP @IG @AX @IG @DP // @AY }
- macro @CAD @CentredAlignedDisplay
- @CenteredAlignedDisplay { @DP @CG @AX | @DP // @AY }
- macro @RightAlignedDisplay { @DP @RG @AX | @DP // @AY }
-
- macro @ND @NumberedDisplay { @DP @G @DX |1rt @NN @DP // @NY }
- macro @LND @LeftNumberedDisplay { @DP @LG @DX |1rt @NN @DP // @NY }
- macro @IND @IndentedNumberedDisplay { @DP @IG @DX |1rt @NN @DP // @NY }
- macro @QND @QuotedNumberedDisplay { @DP @IG @DX |1rt @QR @DP // @NY }
- macro @CND @CentredNumberedDisplay
- @CenteredNumberedDisplay { @DP @CG @DX |1rt @NN @DP // @NY }
- macro @RightNumberedDisplay { @DP @RG @DX |1rt @NN @DP // @NY }
-
- macro @AND @AlignedNumberedDisplay { @DP @G @AX |1rt @NN @DP // @MY }
- macro @LAND @LeftAlignedNumberedDisplay { @DP @LG @AX |1rt @NN @DP // @MY }
- macro @IAND @IndentedAlignedNumberedDisplay{ @DP @IG @AX |1rt @NN @DP // @MY }
- macro @QAND @QuotedAlignedNumberedDisplay { @DP @IG @AX |1rt @QR @DP // @MY }
- macro @CAND @CentredAlignedNumberedDisplay
- @CenteredAlignedNumberedDisplay{ @DP @CG @AX |1rt @NN @DP // @MY }
- macro @RightAlignedNumberedDisplay { @DP @RG @AX |1rt @NN @DP // @MY }
-
-
- macro @RD @RawDisplay { @G @DX | // @DY }
- macro @RLD @RawLeftDisplay { @LG @DX | // @DY }
- macro @RID @RawIndentedDisplay { @IG @DX | // @DY }
- macro @RQD @RawQuotedDisplay { @IG @DX @IG | // @DY }
- macro @RCD @RawCentredDisplay
- @RawCenteredDisplay { @CG @DX | | // @DY }
- macro @RRD @RawRightDisplay { @RG @DX | // @DY }
-
-
- macro @RAD @RawAlignedDisplay { @G @AX | // @AY }
- macro @RLAD @RawLeftAlignedDisplay { @LG @AX | // @AY }
- macro @RIAD @RawIndentedAlignedDisplay { @IG @AX | // @AY }
- macro @RQAD @RawQuotedAlignedDisplay { @IG @AX @IG | // @AY }
- macro @RCAD @RawCentredAlignedDisplay
- @RawCenteredAlignedDisplay { @CG @AX | // @AY }
- macro @RRAD @RawRightAlignedDisplay { @RG @AX | // @AY }
-
- macro @RND @RawNumberedDisplay { @G @DX |1rt @NN // @NY }
- macro @RLND @RawLeftNumberedDisplay { @LG @DX |1rt @NN // @NY }
- macro @RIND @RawIndentedNumberedDisplay { @IG @DX |1rt @NN // @NY }
- macro @RQND @RawQuotedNumberedDisplay { @IG @DX |1rt @QR // @NY }
- macro @RCND @RawCentredNumberedDisplay
- @RawCenteredNumberedDisplay { @CG @DX |1rt @NN // @NY }
- macro @RRND @RawRightNumberedDisplay { @RG @DX |1rt @NN // @NY }
-
- macro @RAND @RawAlignedNumberedDisplay { @G @AX |1rt @NN // @MY }
- macro @RLAND @RawLeftAlignedNumberedDisplay { @LG @AX |1rt @NN // @MY }
- macro @RIAND @RawIndentedAlignedNumberedDisplay { @IG @AX |1rt @NN // @MY }
- macro @RQAND @RawQuotedAlignedNumberedDisplay { @IG @AX |1rt @QR // @MY }
- macro @RCAND @RawCentredAlignedNumberedDisplay
- @RawCenteredAlignedNumberedDisplay { @CG @AX |1rt @NN // @MY }
- macro @RRAND @RawRightAlignedNumberedDisplay{ @RG @AX |1rt @NN // @MY }
-
-
- ###########################################################################
- # #
- # Lists and raw lists. #
- # #
- ###########################################################################
-
-
- def @ItemPlace { @Galley }
- def @ParagraphItemPlace { @Galley }
- def @InterruptItemPlace { @Galley }
- def @NewPageItemPlace { @Galley }
- def @TagPlace { @Galley }
- def @EndListPlace { @Galley }
-
- def @RawList
- named style right num { num }
- named type right num { num }
- named gap { @ListGap }
- named indent { @ListIndent }
- named itemindent { 0c }
- named rightindent { @ListRightIndent }
- named labelwidth { @ListLabelWidth }
- named labelright { @ListLabelRight }
- named labelrightgap { @ListLabelRightGap }
- named start { 1 }
- named font { @ListFont }
- named break { @ListBreak }
- named colnum { 1 }
- named colgap { 1.0c }
- named colheight { 5.0c }
- {
- def @MakeList right num
- {
- def @NormalItem
- {
- def @Align right x
- {
- labelright @Case {
- { Yes yes } @Yield { labelwidth @Wide { |1rt @OneCol { x |labelrightgap } } }
- else @Yield x
- }
- }
-
- |indent
- labelwidth @Wide {
- # @NumberMarker @Value {style num} {style num} &0io
- # @NumberMarker @Value {num} {style type num} &0io
- @NumberMarker @Value {type num} {@Align style type num} &0io
- }
- |itemindent break @Break font @Font @ItemPlace |rightindent
- //gap @MakeList @NotRevealed @Next num
- }
-
- def @ParagraphItem
- {
- @NumberMarker @Value {num} {style type num} &0io
- |indent break @Break font @Font @ParagraphItemPlace |rightindent
- //gap @MakeList @NotRevealed @Next num
- }
-
- def @InterruptItem
- {
- @InterruptItemPlace
- //gap @MakeList @NotRevealed num
- }
-
- def @NewPageItem
- {
- @NewPageItemPlace
- //1.1b @MakeList @NotRevealed num
- }
-
- @OneOf
- {
- @NormalItem
- @ParagraphItem
- @InterruptItem
- @NewPageItem
- }
- }
-
- def @ListGalleyPlace { @Galley }
-
- def @ListGalley into { @ListGalleyPlace&&preceding }
- {
- @MakeList start // @EndListPlace
- }
-
- def @ColPieceTwo
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceThree
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceFour
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- def @ColPieceFive
- {
- colheight @High 500c @Wide @ListGalleyPlace ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed ||colgap
- colheight @High 500c @Wide @ListGalleyPlace @NotRevealed
- }
-
- colnum @Case
- {
- 1 @Yield @ListGalleyPlace
- 2 @Yield @ColPieceTwo
- 3 @Yield @ColPieceThree
- 4 @Yield @ColPieceFour
- 5 @Yield @ColPieceFive
- else @Yield @ListGalleyPlace
- }
- //
- @ListGalley
- }
-
- def listitem into { @ItemPlace&&preceding }
- named @Tag {}
- right x
- {
- @NumberMarker&&preceding @Tagged @Tag
- // x
- // @PageMark @Tag # weird placement, but @PageMark is definite now
- }
-
- def paragraphitem
- named @Tag {}
- named style right tag { @ParaIndent @Wide & tag. &2s }
- right x
- {
-
- def sendparagraphitem into { @ParagraphItemPlace&&preceding }
- named tag { @Tag }
- {
- @NumberMarker&&preceding @Tagged @Tag
- // { style @NumberMarker&&@Tag @Open { @Value } } @Insert x
- // @PageMark @Tag
- }
-
- sendparagraphitem
- }
-
- def droplistitem into { @ItemPlace&&preceding }
- named @Tag {}
- right x
- {
- @NumberMarker&&preceding @Tagged @Tag
- // @PageMark @Tag
- //1vx x
- }
-
- def tagitem into { @ItemPlace&&preceding }
- named tag {}
- right x
- {
- def sendtag into { @TagPlace&&preceding } { tag }
-
- sendtag // x
- }
-
- def droptagitem into { @ItemPlace&&preceding }
- named tag {}
- right x
- {
- def sendtag into { @TagPlace&&preceding } { tag }
-
- sendtag // //1vxu x
- }
-
- def endlist force into { @EndListPlace&&preceding } {}
-
- def listnewpage into { @NewPageItemPlace&&preceding } {}
-
- def listinterruptitem into { @InterruptItemPlace&&preceding }
- right x
- {
- x
- }
-
-
- macro @LI @ListItem { // listitem }
- macro @PI @ParagraphItem { // paragraphitem }
- macro @LII @ListInterruptItem { // listinterruptitem }
- macro @LNP @ListNewPage { // listnewpage }
- macro @DLI @DropListItem { // droplistitem }
- macro @TI @TagItem { // tagitem tag }
- macro @DTI @DropTagItem { // droptagitem tag }
- macro @REL @RawEndList { // & endlist // }
- macro @EL @EndList { // & endlist @LOP }
-
-
- macro @RLL @RawLeftList { @RawList style {}
- labelwidth { 0c } }
- macro @RIL @RawIndentedList { @RawList style {} }
- macro @RQL @RawQuotedList { @RawList style {}
- rightindent {@DisplayIndent}}
- macro @RCL @RawCentredList { @RawList style {}
- labelwidth {0c}
- itemindent {0.5rt} }
- macro @RawCenteredList { @RawCentredList }
- macro @RNL @RawNumberedList { @RawList style { num. } }
- macro @RPNL @RawParenNumberedList { @RawList style { (num) } }
- macro @RRL @RawRomanList { @RawList type { @Roman&&num }
- style { num. } }
- macro @RPRL @RawParenRomanList { @RawList type { @Roman&&num }
- style { (num) } }
- macro @RUCRL @RawUCRomanList { @RawList type { @UCRoman&&num }
- style { num. } }
- macro @RPUCRL @RawParenUCRomanList { @RawList type { @UCRoman&&num }
- style { (num) } }
- macro @RAL @RawAlphaList { @RawList type { @Alpha&&num }
- style { num. } }
- macro @RPAL @RawParenAlphaList { @RawList type { @Alpha&&num }
- style { (num) } }
- macro @RUCAL @RawUCAlphaList { @RawList type { @UCAlpha&&num }
- style { num. } }
- macro @RPUCAL @RawParenUCAlphaList { @RawList type { @UCAlpha&&num }
- style { (num) } }
- macro @RBL @RawBulletList { @RawList style { @Bullet } }
- macro @RSL @RawStarList { @RawList style { @Star } }
- macro @RDL @RawDashList { @RawList style { -- } }
- macro @RTL @RawTaggedList { @RawList type { @TagPlace } }
- macro @RWTL @RawWideTaggedList { @RawList type { @TagPlace }
- labelwidth { @WideIndent } }
- macro @RVWTL @RawVeryWideTaggedList{ @RawList type { @TagPlace }
- labelwidth { @VeryWideIndent } }
-
-
- macro @L @List { @LOP @RawList }
- macro @LL @LeftList { @LOP @RawLeftList }
- macro @IL @IndentedList { @LOP @RawIndentedList }
- macro @QL @QuotedList { @LOP @RawQuotedList }
- macro @CL @CentredList { @LOP @RawCentredList }
- macro @CenteredList { @LOP @RawCenteredList }
- macro @NL @NumberedList { @LOP @RawNumberedList }
- macro @PNL @ParenNumberedList { @LOP @RawParenNumberedList }
- macro @RL @RomanList { @LOP @RawRomanList }
- macro @PRL @ParenRomanList { @LOP @RawParenRomanList }
- macro @UCRL @UCRomanList { @LOP @RawUCRomanList }
- macro @PUCRL @ParenUCRomanList { @LOP @RawParenUCRomanList }
- macro @AL @AlphaList { @LOP @RawAlphaList }
- macro @PAL @ParenAlphaList { @LOP @RawParenAlphaList }
- macro @UCAL @UCAlphaList { @LOP @RawUCAlphaList }
- macro @PUCAL @ParenUCAlphaList { @LOP @RawParenUCAlphaList }
- macro @BL @BulletList { @LOP @RawBulletList }
- macro @SL @StarList { @LOP @RawStarList }
- macro @DL @DashList { @LOP @RawDashList }
- macro @TL @TaggedList { @LOP @RawTaggedList }
- macro @WTL @WideTaggedList { @LOP @RawWideTaggedList }
- macro @VWTL @VeryWideTaggedList { @LOP @RawVeryWideTaggedList }
-
-@End @BasicSetup