########################################################################### # # # @BookSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # # 17 September 1999 # # # # This package extends DocumentSetup with definitions for books. # # # ########################################################################### extend @BasicSetup @DocumentSetup export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix def @BookSetup named @TitlePageFont { Helvetica Base } named @SeparateIntroNumbering { Yes } named @PrefaceAfterContents { No } named @ChapterStartPages { Any } named @ReferencesBeforeAppendices { No } named @PrefaceWord { preface } named @ContentsWord { contents } named @FigureListWord { figurelist } named @TableListWord { tablelist } named @IntroductionWord { introduction } named @AbbreviationsWord { abbreviations } named @ChapterWord { chapter } named @AppendixWord { appendix } named @IndexWord { index } named @IndexAWord { index } named @IndexBWord { index } named @ChapterNumbers { Arabic } named @FirstChapterNumber { 1 } named @SectionNumbers { Arabic } named @FirstSectionNumber { 1 } named @SubSectionNumbers { Arabic } named @FirstSubSectionNumber { 1 } named @SubSubSectionNumbers { Arabic } named @FirstSubSubSectionNumber { 1 } named @AppendixNumbers { UCAlpha } named @FirstAppendixNumber { 1 } named @SubAppendixNumbers { Arabic } named @FirstSubAppendixNumber { 1 } named @SubSubAppendixNumbers { Arabic } named @FirstSubSubAppendixNumber { 1 } named @PartHeadingFont { Helvetica Base 2.50f } named @PartHeadingBreak { clines 1.2fx nohyphen } named @PartHeadingFormat left number right title { @CD number @DP @CD title } named @ChapterHeadingFont { Bold 2.00f } named @ChapterHeadingBreak { ragged 1.2fx nohyphen } named @ChapterHeadingFormat left number right title { number @DotSep title } named @SectionHeadingFont { Bold } named @SectionHeadingBreak { ragged 1.2fx nohyphen } named @SectionHeadingFormat left number right title { number @DotSep title } named @SubSectionHeadingFont { Bold } named @SubSectionHeadingBreak { ragged 1.2fx nohyphen } named @SubSectionHeadingFormat left number right title { number @DotSep title } named @SubSubSectionHeadingFont { Slope } named @SubSubSectionHeadingBreak { ragged 1.2fx nohyphen } named @SubSubSectionHeadingFormat left number right title { number @DotSep title } named @AppendixHeadingFont { Bold 2.00f } named @AppendixHeadingBreak { ragged 1.2fx nohyphen } named @AppendixHeadingFormat left number right title { number @DotSep title } named @SubAppendixHeadingFont { Bold } named @SubAppendixHeadingBreak { ragged 1.2fx nohyphen } named @SubAppendixHeadingFormat left number right title { number @DotSep title } named @SubSubAppendixHeadingFont { Slope } named @SubSubAppendixHeadingBreak { ragged 1.2fx nohyphen } named @SubSubAppendixHeadingFormat left number right title { number @DotSep title } named @AbovePartGap { 4.00f } named @AboveChapterGap { 3.00f } named @SectionGap { 2.0v @OrIfPlain 3f } named @SubSectionGap { 1.5v @OrIfPlain 2f } named @SubSubSectionGap { 1.5v @OrIfPlain 2f } named @SubAppendixGap { 2.0v @OrIfPlain 3f } named @SubSubAppendixGap { 1.5v @OrIfPlain 2f } named @PrefaceInContents { Yes } named @AbbreviationsInContents { Yes } named @IntroductionInContents { Yes } named @PartInContents { Yes } named @ChapterInContents { Yes } named @SectionInContents { Yes } named @SubSectionInContents { Yes } named @SubSubSectionInContents { No } named @AppendixInContents { Yes } named @SubAppendixInContents { Yes } named @SubSubAppendixInContents { No } named @ReferencesInContents { Yes } named @IndexInContents { Yes } named @IndexAInContents { Yes } named @IndexBInContents { Yes } named @PartContentsIndent { 0.5rt } named @ChapterNumInTheorems { Yes } named @SectionNumInTheorems { No } named @SubSectionNumInTheorems { No } named @SubSubSectionNumInTheorems { No } named @AppendixNumInTheorems { Yes } named @SubAppendixNumInTheorems { No } named @SubSubAppendixNumInTheorems { No } named @ChapterNumInDisplays { Yes } named @SectionNumInDisplays { Yes } named @SubSectionNumInDisplays { No } named @SubSubSectionNumInDisplays { No } named @AppendixNumInDisplays { Yes } named @SubAppendixNumInDisplays { Yes } named @SubSubAppendixNumInDisplays { No } named @ChapterNumInFigures { Yes } named @SectionNumInFigures { No } named @SubSectionNumInFigures { No } named @SubSubSectionNumInFigures { No } named @AppendixNumInFigures { Yes } named @SubAppendixNumInFigures { No } named @SubSubAppendixNumInFigures { No } named @ChapterNumInTables { Yes } named @SectionNumInTables { No } named @SubSectionNumInTables { No } named @SubSubSectionNumInTables { No } named @AppendixNumInTables { Yes } named @SubAppendixNumInTables { No } named @SubSubAppendixNumInTables { No } named @SectionNumInRunners { Yes } named @SubSectionNumInRunners { No } named @SubSubSectionNumInRunners { No } named @SubAppendixNumInRunners { Yes } named @SubSubAppendixNumInRunners { No } named @PrefacePrefix { } named @ContentsPrefix { } named @FigureContentsPrefix { } named @TableContentsPrefix { } named @AbbreviationsPrefix { } named @IntroductionPrefix { } named @ChapterPrefix { } named @AppendixPrefix { } named @ReferencesPrefix { } named @IndexPrefix { } named @IndexAPrefix { } named @IndexBPrefix { } @Begin ####################################################################### # # # Lists of chapters, sections, sub(-sub)sections, and appendices. # # # ####################################################################### export num def @ChapterList named @Tag {} right num { @Galley // @ChapterList @Next num } export num def @SectionList named @Tag {} right num { @Galley //@SectionGap @SectionList @Next num } export num def @SubSectionList named @Tag {} right num { @Galley //@SubSectionGap @SubSectionList @Next num } export num def @SubSubSectionList named @Tag {} right num { @Galley //@SubSubSectionGap @SubSubSectionList @Next num } export num def @AppendixList named @Tag {} right num { @Galley // @AppendixList @Next num } export num def @SubAppendixList named @Tag {} right num { @Galley //@SubAppendixGap @SubAppendixList @Next num } export num def @SubSubAppendixList named @Tag {} right num { @Galley //@SubSubAppendixGap @SubSubAppendixList @Next num } def @PrefacePlace { @Galley } def @AbbreviationsPlace { @Galley } def @IntroductionPlace { @Galley } ####################################################################### # # # @Full - this sends text to a full-width place on a new page, even # # if @ChapterStartPages is SamePage. # # # ####################################################################### def @Full right x { def @Any force into { @FullPlace&&following } right x { x } def @Odd force into { @OddFullPlace&&following } right x { x } def @Even force into { @EvenFullPlace&&following } right x { x } @ChapterStartPages @Case { { Any SamePage } @Yield @Any x Odd @Yield @Odd x Even @Yield @Even x } } ####################################################################### # # # @ChapterFull - this sends text to a full-width place on a new # # page, unless @ChapterStartPages is SamePage, in which case it # # doesn't send the text anywhere. # # # ####################################################################### def @ChapterFull right x { def @Any force into { @FullPlace&&following } right x { x } def @Odd force into { @OddFullPlace&&following } right x { x } def @Even force into { @EvenFullPlace&&following } right x { x } @ChapterStartPages @Case { Any @Yield @Any x Odd @Yield @Odd x Even @Yield @Even x SamePage @Yield x } } ####################################################################### # # # @IntroFull - this sends text to a full-width intro place. # # # ####################################################################### def @IntroFull right x { def @Any force into { @IntroFullPlace&&following } right x { x } def @Odd force into { @IntroOddFullPlace&&following } right x { x } def @Even force into { @IntroEvenFullPlace&&following } right x { x } @ChapterStartPages @Case { { Any SamePage } @Yield @Any x Odd @Yield @Odd x Even @Yield @Even x } } ####################################################################### # # # @ChooseFull - this sends either to introfull or ordinary full # # # ####################################################################### def @ChooseFull right x { @SeparateIntroNumbering @Case { No @Yield @Full x Yes @Yield @IntroFull x } } ####################################################################### # # # Book. # # # ####################################################################### def @Book named @Tag {} named @Title {} named @Author {} named @Edition {} named @Publisher {} named @BeforeTitlePage {} named @OnTitlePage {} named @AfterTitlePage {} named @AtEnd { dft } named @AtAfter { dft } named @InitialFont { @InitialFont } named @InitialBreak { @InitialBreak } named @InitialOutdent { @InitialOutdent } named @InitialSpace { @InitialSpace } named @InitialLanguage { @InitialLanguage } named @PageOrientation { @PageOrientation } named @PageHeaders { @PageHeaders } named @ColumnNumber { @ColumnNumber } named @FirstPageNumber { @FirstPageNumber } named @IntroFirstPageNumber { @IntroFirstPageNumber } named @OptimizePages { @OptimizePages } named @IndexText { @IndexText } named @IndexAText { @IndexAText } named @IndexBText { @IndexBText } { def @Before { @BeforeTitlePage @Case { "" @Yield @Null else @Yield @BeforeTitlePage } } def @On { @OnTitlePage @Case { "" @Yield { //1i |0.5rt 2.5f @Font {1.2fx clines} @Break @Title | //2i |0.5rt clines @Break @Author | //1i |0.5rt clines @Break @Edition | //1rt @OneRow @Publisher } else @Yield @OnTitlePage } } def @After { @AfterTitlePage @Case { "" @Yield @Null else @Yield { @AfterTitlePage // None @Runner } } } def @ContentsPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { contents @WordVal @ContentsWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { No } pnprefix { @ContentsPrefix } inrunners { Yes } majortitle { contents @WordVal @ContentsWord } sendheader { @ChooseFull @Body } innergap { @SectionGap } @ContentsSection } def @FigureContentsPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { figurelist @WordVal @FigureListWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { No } pnprefix { @FigureContentsPrefix } inrunners { Yes } majortitle { figurelist @WordVal @FigureListWord } sendheader { @ChooseFull @Body } innergap { @SectionGap } @FigureContentsSection } def @TableContentsPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { tablelist @WordVal @TableListWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { No } pnprefix { @TableContentsPrefix } inrunners { Yes } majortitle { tablelist @WordVal @TableListWord } sendheader { @ChooseFull @Body } innergap { @SectionGap } @TableContentsSection } def @ReferencesPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { ExtraMajor } initiallanguage { @InitialLanguage } title { @RefHeading @RefListTitle } majortitle { @RefHeading @RefListTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @ReferencesInContents } pnprefix { @ReferencesPrefix } inrunners { Yes } sendheader { @ChapterFull @Body } innergap { @SectionGap } @ReferencesSection } def @IndexPart named @Tag {} { def @Run { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexWord } @MinorNum {} @MinorTitle { index @WordVal @IndexWord } @Owner { @Tag } @Prefix { @IndexPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } headingtext { @IndexText } incontents { @IndexInContents } pnprefix { @IndexPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexSection @Run } def @IndexAPart named @Tag {} { def @RunA { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexAWord } @MinorNum {} @MinorTitle { index @WordVal @IndexAWord } @Owner { @Tag } @Prefix { @IndexAPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexAWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } headingtext { @IndexAText } incontents { @IndexAInContents } pnprefix { @IndexAPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexASection @RunA } def @IndexBPart named @Tag {} { def @RunB { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexBWord } @MinorNum {} @MinorTitle { index @WordVal @IndexBWord } @Owner { @Tag } @Prefix { @IndexBPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexBWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } headingtext { @IndexAText } incontents { @IndexBInContents } pnprefix { @IndexBPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexBSection @RunB } def @BookIntro force into { @IntroColPlace&&preceding } named @Optimize { @OptimizePages } { @NoLinkPageMark @Tag // @Before //1.1b @TitlePageFont @Font @On //1.1b @After // Start @Runner @Owner { @Tag } //1.1b @PrefaceAfterContents @NoDo @PrefacePlace // @MakeContents @Case { { Yes Bypass } @Yield @ContentsPart else @Yield @Null } // @MakeFigureContents @Case { { Yes Bypass } @Yield @FigureContentsPart else @Yield @Null } // @MakeTableContents @Case { { Yes Bypass } @Yield @TableContentsPart else @Yield @Null } //1.1b @PrefaceAfterContents @Do @PrefacePlace } def @BookBody force into { @ColPlace&&preceding } named @Optimize { @OptimizePages } { # The first component of @BookBody must be indefinite, so that # its flushing is delayed until we reach the body galleys, either # @Introduction or @Chapter. If not, @BookBody will free up # @PrefacePlace etc. too soon, producing a "no @PrefacePlace # precedes this @PrefacePLace&&preceding" error message. @AbbreviationsPlace // @IntroductionPlace // @ChapterList @FirstChapterNumber // @ReferencesBeforeAppendices @Do { @MakeReferences @Do @ReferencesPart } // @AppendixList @FirstAppendixNumber // @ReferencesBeforeAppendices @NoDo { @MakeReferences @Do @ReferencesPart } // @MakeIndexA @Do @IndexAPart // @MakeIndexA @Case { Bypass @Yield @BypassBeginIndexAPlace else @Yield @Null } // @MakeIndexB @Do @IndexBPart // @MakeIndexB @Case { Bypass @Yield @BypassBeginIndexBPlace else @Yield @Null } // @MakeIndex @Do @IndexPart // @MakeIndex @Case { Bypass @Yield @BypassBeginIndexPlace else @Yield @Null } } def @BookCombined force into { @ColPlace&&preceding } named @Optimize { @OptimizePages } { @NoLinkPageMark @Tag // @Before //1.1b @TitlePageFont @Font @On //1.1b @After // Start @Runner @Owner { @Tag } //1.1b @PrefaceAfterContents @NoDo @PrefacePlace // @MakeContents @Case { { Yes Bypass } @Yield @ContentsPart else @Yield @Null } // @MakeFigureContents @Case { { Yes Bypass } @Yield @FigureContentsPart else @Yield @Null } // @MakeTableContents @Case { { Yes Bypass } @Yield @TableContentsPart else @Yield @Null } //1.1b @PrefaceAfterContents @Do @PrefacePlace // @AbbreviationsPlace // @IntroductionPlace // @ChapterList @FirstChapterNumber // @ReferencesBeforeAppendices @Do { @MakeReferences @Do @ReferencesPart } // @AppendixList @FirstAppendixNumber // @ReferencesBeforeAppendices @NoDo { @MakeReferences @Do @ReferencesPart } // @MakeIndexA @Do @IndexAPart // @MakeIndexA @Case { Bypass @Yield @BypassBeginIndexAPlace else @Yield @Null } // @MakeIndexB @Do @IndexBPart // @MakeIndexB @Case { Bypass @Yield @BypassBeginIndexBPlace else @Yield @Null } // @MakeIndex @Do @IndexPart // @MakeIndex @Case { Bypass @Yield @BypassBeginIndexPlace else @Yield @Null } } @InitialFont @Font { @InitialBreak setoutdent @InitialOutdent } @Break @InitialLanguage @Language @InitialSpace @Space { @ColourCommand @InitialColour } @SetColour { @SeparateIntroNumbering @Case { No @Yield { Yes @BeginAllCounters {} Yes @BeginDisplayCounter {} Yes @BeginFigureCounter {} Yes @BeginTableCounter {} // @PageList @ColumnNumber { @ColumnNumber } @PageHeaders { @PageHeaders } @Orient { @PageOrientation } @FirstPageNumber // @BookCombined // NonStart @Runner @Owner { @Tag } // @AtEnd @Case { dft @Yield @Null else @Yield @EvenPage @Orient { @PageOrientation } @AtEnd } } Yes @Yield { Yes @BeginAllCounters {} Yes @BeginDisplayCounter {} Yes @BeginFigureCounter {} Yes @BeginTableCounter {} // @IntroPageList @ColumnNumber { 1 } @PageHeaders { @PageHeaders } @Orient { @PageOrientation } @IntroFirstPageNumber # // NonStart @Runner @Owner { @Tag } // None @Runner @Owner { @Tag } // @PageList @ColumnNumber { @ColumnNumber } @PageHeaders { @PageHeaders } @Orient { @PageOrientation } extra { Yes } @FirstPageNumber // @BookIntro // @BookBody // NonStart @Runner @Owner { @Tag } // @AtEnd @Case { dft @Yield @Null else @Yield @EvenPage @Orient { @PageOrientation } @AtEnd } } } } } ####################################################################### # # # Preface. # # # ####################################################################### def @Preface force into { @PrefacePlace&&preceding } named @Tag {} named @Title { preface @WordVal @PrefaceWord } named @RunningTitle { dft } named @InitialLanguage {} body @Body { @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @PrefaceInContents } pnprefix { @PrefacePrefix } sendheader { @ChooseFull @Body } innergap { @SectionGap } inrunners { Yes } @Body } ####################################################################### # # # Abbreviations. # # # ####################################################################### def @Abbreviations force into { @AbbreviationsPlace&&preceding } named @Tag {} named @Title { abbreviations @WordVal @AbbreviationsWord } named @RunningTitle { dft } named @InitialLanguage {} body @Body { @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @AbbreviationsInContents } pnprefix { @AbbreviationsPrefix } sendheader { @Full @Body } innergap { @SectionGap } inrunners { Yes } @Body } ####################################################################### # # # Introduction. # # # ####################################################################### def @Introduction force into { @IntroductionPlace&&preceding } named @Tag {} named @Title { introduction @WordVal @IntroductionWord } named @RunningTitle { dft } named @InitialLanguage {} body @Body { @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @IntroductionInContents } pnprefix { @IntroductionPrefix } sendheader { @Full @Body } innergap { @SectionGap } inrunners { Yes } @Body } ####################################################################### # # # Chapters containing sections and subsections. # # # ####################################################################### export @BeginSections @EndSections @Section def @Chapter force into { @ChapterList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage {} named @PartNumber {} named @PartTitle {} named @PartText {} named @BypassNumber { dft } body @Body { def @EndSectionsPlace { @Galley } def @EndSections force into { @EndSectionsPlace&&preceding } {} macro @BeginSections { //@SectionGap @SectionList @FirstSectionNumber // @EndSectionsPlace // } def @ChapterShortNum { @ChapterNumbers @Then { @BypassNumber @Dft { @ChapterNumbers @Num @ChapterList&&@Tag @Open { num } } } } def @MajorNum { @ChapterNumbers @Then @InitialLanguage @Language { chapter @WordVal @ChapterWord @ChapterShortNum } } def @MajorTitle { @InitialLanguage @Language { @RunningTitle @Dft @Title } } export @BeginSubSections @EndSubSections @SubSection def @Section force into { @SectionList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } body @Body { def @EndSubSectionsPlace { @Galley } def @EndSubSections force into { @EndSubSectionsPlace&&preceding } {} macro @BeginSubSections { //@SubSectionGap @SubSectionList @FirstSubSectionNumber // @EndSubSectionsPlace // } def @SectionShortNum { @SectionNumbers @Then { @BypassNumber @Dft { @ChapterShortNum @Join @SectionNumbers @Num { @SectionList&&@Tag @Open { num } } } } } export @BeginSubSubSections @EndSubSubSections @SubSubSection def @SubSection force into { @SubSectionList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } body @Body { def @EndSubSubSectionsPlace { @Galley } def @EndSubSubSections force into { @EndSubSubSectionsPlace&&preceding } {} macro @BeginSubSubSections { //@SubSubSectionGap @SubSubSectionList @FirstSubSubSectionNumber // @EndSubSubSectionsPlace // } def @SubSectionShortNum { @SubSectionNumbers @Then { @BypassNumber @Dft { @SectionShortNum @Join @SubSectionNumbers @Num { @SubSectionList&&@Tag @Open { num } } } } } def @SubSubSection force into { @SubSubSectionList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } body @Body { @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSubSectionHeadingFont } headingbreak { @SubSubSectionHeadingBreak } headingformat { @Num @SubSubSectionHeadingFormat @Body } incontents { @SubSubSectionInContents } contentsindent { 9f } numbers { @SubSubSectionNumbers } attachnum { @SubSubSectionList&&preceding @Tagged @Tag } retrievenum { @SubSubSectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SubSectionShortNum } majornum { @MajorNum } majortitle { @MajorTitle } intheorems { @SubSubSectionNumInTheorems } indisplays { @SubSubSectionNumInDisplays } infigures { @SubSubSectionNumInFigures } intables { @SubSubSectionNumInTables } inrunners { @SubSubSectionNumInRunners } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSectionHeadingFont } headingbreak { @SubSectionHeadingBreak } headingformat { @Num @SubSectionHeadingFormat @Body } incontents { @SubSectionInContents } contentsindent { 6f } numbers { @SubSectionNumbers } attachnum { @SubSectionList&&preceding @Tagged @Tag } retrievenum { @SubSectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SectionShortNum } majornum { @MajorNum } majortitle { @MajorTitle } intheorems { @SubSectionNumInTheorems } indisplays { @SubSectionNumInDisplays } infigures { @SubSectionNumInFigures } intables { @SubSectionNumInTables } inrunners { @SubSectionNumInRunners } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SectionHeadingFont } headingbreak { @SectionHeadingBreak } headingformat { @Num @SectionHeadingFormat @Body } incontents { @SectionInContents } contentsindent { 3f } numbers { @SectionNumbers } attachnum { @SectionList&&preceding @Tagged @Tag } retrievenum { @SectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @ChapterShortNum } majornum { @MajorNum } majortitle { @MajorTitle } intheorems { @SectionNumInTheorems } indisplays { @SectionNumInDisplays } infigures { @SectionNumInFigures } intables { @SectionNumInTables } inrunners { @SectionNumInRunners } @Body } def @Part named @Tag {} { @LargeScaleStructure type { VeryMajor } initiallanguage { @InitialLanguage } title { @PartTitle } aboveheadinggap { @AbovePartGap } headingfont { @PartHeadingFont } headingbreak { @PartHeadingBreak } headingformat { @Num @PartHeadingFormat @Body } bypassnumber { @PartNumber } incontents { @PartInContents } sendheader { @Full @Body } inrunners { Yes } tag { @Tag } @PartText } @PartNumber @Case { "" @Yield { @PartTitle @Case { "" @Yield @Null else @Yield @Part } } else @Yield @Part } // @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @ChapterInContents } contentsindent { 0f } word { chapter @WordVal @ChapterWord } numbers { @ChapterNumbers } attachnum { @ChapterList&&preceding @Tagged @Tag } retrievenum { @ChapterList&&@Tag @Open { num } } bypassnumber { @BypassNumber } pnprefix { @ChapterPrefix } intheorems { @ChapterNumInTheorems } indisplays { @ChapterNumInDisplays } infigures { @ChapterNumInFigures } intables { @ChapterNumInTables } sendheader { @ChapterFull @Body } innergap { @SectionGap } inrunners { Yes } @Body } ####################################################################### # # # Appendices. # # # ####################################################################### export @BeginSubAppendices @EndSubAppendices @SubAppendix def @Appendix force into { @AppendixList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage {} named @PartNumber {} named @PartTitle {} named @PartText {} named @BypassNumber { dft } body @Body { def @EndSubAppendicesPlace { @Galley } def @EndSubAppendices force into { @EndSubAppendicesPlace&&preceding } {} macro @BeginSubAppendices { //@SubAppendixGap @SubAppendixList @FirstSubAppendixNumber // @EndSubAppendicesPlace // } def @AppendixShortNum { @AppendixNumbers @Then { @BypassNumber @Dft { @AppendixNumbers @Num @AppendixList&&@Tag @Open { num } } } } def @MajorNum { @AppendixNumbers @Then @InitialLanguage @Language { appendix @WordVal @AppendixWord @AppendixShortNum } } def @MajorTitle { @InitialLanguage @Language { @RunningTitle @Dft @Title } } export @BeginSubSubAppendices @EndSubSubAppendices @SubSubAppendix def @SubAppendix force into { @SubAppendixList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } body @Body { def @EndSubSubAppendicesPlace { @Galley } def @EndSubSubAppendices force into { @EndSubSubAppendicesPlace&&preceding } {} macro @BeginSubSubAppendices { //@SubSubAppendixGap @SubSubAppendixList @FirstSubSubAppendixNumber // @EndSubSubAppendicesPlace // } def @SubAppendixShortNum { @SubAppendixNumbers @Then { @BypassNumber @Dft { @AppendixShortNum @Join @SubAppendixNumbers @Num { @SubAppendixList&&@Tag @Open { num } } } } } def @SubSubAppendix force into { @SubSubAppendixList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } body @Body { @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSubAppendixHeadingFont } headingbreak { @SubSubAppendixHeadingBreak } headingformat { @Num @SubSubAppendixHeadingFormat @Body } incontents { @SubSubAppendixInContents } contentsindent { 6f } numbers { @SubSubAppendixNumbers } attachnum { @SubSubAppendixList&&preceding @Tagged @Tag } retrievenum { @SubSubAppendixList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SubAppendixShortNum } majornum { @MajorNum } majortitle { @MajorTitle } intheorems { @SubSubAppendixNumInTheorems } indisplays { @SubSubAppendixNumInDisplays } infigures { @SubSubAppendixNumInFigures } intables { @SubSubAppendixNumInTables } inrunners { @SubSubAppendixNumInRunners } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubAppendixHeadingFont } headingbreak { @SubAppendixHeadingBreak } headingformat { @Num @SubAppendixHeadingFormat @Body } incontents { @SubAppendixInContents } contentsindent { 3f } numbers { @SubAppendixNumbers } attachnum { @SubAppendixList&&preceding @Tagged @Tag } retrievenum { @SubAppendixList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @AppendixShortNum } majornum { @MajorNum } majortitle { @MajorTitle } intheorems { @SubAppendixNumInTheorems } indisplays { @SubAppendixNumInDisplays } infigures { @SubAppendixNumInFigures } intables { @SubAppendixNumInTables } inrunners { @SubAppendixNumInRunners } @Body } def @Part named @Tag {} { @LargeScaleStructure type { VeryMajor } initiallanguage { @InitialLanguage } title { @PartTitle } aboveheadinggap { @AbovePartGap } headingfont { @PartHeadingFont } headingbreak { @PartHeadingBreak } headingformat { @Num @PartHeadingFormat @Body } bypassnumber { @PartNumber } incontents { @PartInContents } sendheader { @Full @Body } inrunners { Yes } tag { @Tag } @PartText } @PartNumber @Case { "" @Yield { @PartTitle @Case { "" @Yield @Null else @Yield @Part } } else @Yield @Part } // @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @AppendixHeadingFont } headingbreak { @AppendixHeadingBreak } headingformat { @Num @AppendixHeadingFormat @Body } incontents { @AppendixInContents } contentsindent { 0f } word { appendix @WordVal @AppendixWord } numbers { @AppendixNumbers } attachnum { @AppendixList&&preceding @Tagged @Tag } retrievenum { @AppendixList&&@Tag @Open { num } } bypassnumber { @BypassNumber } pnprefix { @AppendixPrefix } intheorems { @AppendixNumInTheorems } indisplays { @AppendixNumInDisplays } infigures { @AppendixNumInFigures } intables { @AppendixNumInTables } sendheader { @ChapterFull @Body } innergap { @SubAppendixGap } inrunners { Yes } @Body } @End @BookSetup