########################################################################### # # # @BookSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # # # # This package extends DocumentSetup with definitions for books. # # # # This program is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either Version 3, or (at your option) # # any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston MA 02111-1307 USA # # # # As a special exception, when this file is read by Lout when processing # # a Lout source document, you may use the result without restriction. # # # ########################################################################### extend @BasicSetup @DocumentSetup export @Book @Preface @Abbreviations @Introduction @Chapter @Appendix @Colophon 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 @FloaterListWord { floaterlist } named @IntroductionWord { introduction } named @AbbreviationsWord { abbreviations } named @ChapterWord { chapter } named @AppendixWord { appendix } named @GlossaryWord { glossary } named @IndexWord { index } named @IndexAWord { index } named @IndexBWord { index } named @ColophonWord { colophon } named @SubPrefaceNumbers { None } named @FirstSubPrefaceNumber { 1 } named @SubIntroductionNumbers { None } named @FirstSubIntroductionNumber { 1 } 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 @SubPrefaceHeadingFont { Bold } named @SubPrefaceHeadingBreak { ragged 1.2fx nohyphen } named @SubPrefaceHeadingFormat left number right title { number @DotSep title } named @SubIntroductionHeadingFont { Bold } named @SubIntroductionHeadingBreak { ragged 1.2fx nohyphen } named @SubIntroductionHeadingFormat 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 @SubPrefaceGap { 2.0v @OrIfPlain 3f } named @SubIntroductionGap { 2.0v @OrIfPlain 3f } 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 @SubPrefaceInContents { No } named @AbbreviationsInContents { Yes } named @IntroductionInContents { Yes } named @SubIntroductionInContents { No } 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 @GlossaryInContents { Yes } named @IndexInContents { Yes } named @IndexAInContents { Yes } named @IndexBInContents { Yes } named @ColophonInContents { Yes } named @PrefaceContentsIndent { 0f } named @SubPrefaceContentsIndent { 3f } named @AbbreviationsContentsIndent { 0f } named @IntroductionContentsIndent { 0f } named @SubIntroductionContentsIndent{ 3f } named @PartContentsIndent { 0.5rt } named @ChapterContentsIndent { 0f } named @SectionContentsIndent { 3f } named @SubSectionContentsIndent { 6f } named @SubSubSectionContentsIndent { 9f } named @AppendixContentsIndent { 0f } named @SubAppendixContentsIndent { 3f } named @SubSubAppendixContentsIndent { 6f } named @ReferencesContentsIndent { 0f } named @GlossaryContentsIndent { 0f } named @IndexContentsIndent { 0f } named @IndexAContentsIndent { 0f } named @IndexBContentsIndent { 0f } named @ColophonContentsIndent { 0f } named @SubPrefaceNumInTheorems { No } named @SubIntroductionNumInTheorems { No } named @ChapterNumInTheorems { Yes } named @SectionNumInTheorems { No } named @SubSectionNumInTheorems { No } named @SubSubSectionNumInTheorems { No } named @AppendixNumInTheorems { Yes } named @SubAppendixNumInTheorems { No } named @SubSubAppendixNumInTheorems { No } named @SubPrefaceNumInDisplays { No } named @SubIntroductionNumInDisplays { No } named @ChapterNumInDisplays { Yes } named @SectionNumInDisplays { Yes } named @SubSectionNumInDisplays { No } named @SubSubSectionNumInDisplays { No } named @AppendixNumInDisplays { Yes } named @SubAppendixNumInDisplays { Yes } named @SubSubAppendixNumInDisplays { No } named @SubPrefaceNumInFigures { No } named @SubIntroductionNumInFigures { No } named @ChapterNumInFigures { Yes } named @SectionNumInFigures { No } named @SubSectionNumInFigures { No } named @SubSubSectionNumInFigures { No } named @AppendixNumInFigures { Yes } named @SubAppendixNumInFigures { No } named @SubSubAppendixNumInFigures { No } named @SubPrefaceNumInTables { No } named @SubIntroductionNumInTables { No } named @ChapterNumInTables { Yes } named @SectionNumInTables { No } named @SubSectionNumInTables { No } named @SubSubSectionNumInTables { No } named @AppendixNumInTables { Yes } named @SubAppendixNumInTables { No } named @SubSubAppendixNumInTables { No } named @SubPrefaceNumInFloaters { No } named @SubIntroductionNumInFloaters { No } named @ChapterNumInFloaters { Yes } named @SectionNumInFloaters { No } named @SubSectionNumInFloaters { No } named @SubSubSectionNumInFloaters { No } named @AppendixNumInFloaters { Yes } named @SubAppendixNumInFloaters { No } named @SubSubAppendixNumInFloaters { No } named @SubPrefaceNumInRunners { No } named @SubIntroductionNumInRunners { 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 @FloaterContentsPrefix { } named @AbbreviationsPrefix { } named @IntroductionPrefix { } named @ChapterPrefix { } named @AppendixPrefix { } named @ReferencesPrefix { } named @GlossaryPrefix { } named @IndexPrefix { } named @IndexAPrefix { } named @IndexBPrefix { } named @ColophonPrefix { } @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 @SubPrefaceList named @Tag {} right num { @Galley //@SubPrefaceGap @SubPrefaceList @Next num } export num def @SubIntroductionList named @Tag {} right num { @Galley //@SubIntroductionGap @SubIntroductionList @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 @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 @GlossaryText { @GlossaryText } 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 @FloaterContentsPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { floaterlist @WordVal @FloaterListWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { No } pnprefix { @FloaterContentsPrefix } inrunners { Yes } majortitle { floaterlist @WordVal @FloaterListWord } sendheader { @ChooseFull @Body } innergap { @SectionGap } @FloaterContentsSection } 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 } contentsindent { @ReferencesContentsIndent } pnprefix { @ReferencesPrefix } inrunners { Yes } sendheader { @ChapterFull @Body } innergap { @SectionGap } @ReferencesSection } def @GlossaryPart named @Tag {} { def @Run { NonStart @Runner @MajorNum {} @MajorTitle { glossary @WordVal @GlossaryWord } @MinorNum {} @MinorTitle { glossary @WordVal @GlossaryWord } @Owner { @Tag } @Prefix { @GlossaryPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { glossary @WordVal @GlossaryWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } headingtext { @GlossaryText } incontents { @GlossaryInContents } contentsindent { @GlossaryContentsIndent } pnprefix { @GlossaryPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @GlossarySection @Run } 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 } contentsindent { @IndexContentsIndent } 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 } contentsindent { @IndexAContentsIndent } 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 { @IndexBText } incontents { @IndexBInContents } contentsindent { @IndexBContentsIndent } pnprefix { @IndexBPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexBSection @RunB } def @ColophonPart named @Tag {} { def @RunC { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @ColophonWord } @MinorNum {} @MinorTitle { index @WordVal @ColophonWord } @Owner { @Tag } @Prefix { @ColophonPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { colophon @WordVal @ColophonWord } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @ColophonInContents } contentsindent { @ColophonContentsIndent } pnprefix { @ColophonPrefix } inrunners { Yes } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @ColophonSection @RunC } 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 } // @MakeFloaterContents @Case { { Yes Bypass } @Yield @FloaterContentsPart 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 } // @MakeGlossary @Do @GlossaryPart // @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 } // @MakeColophon @Do @ColophonPart } 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 } // @MakeFloaterContents @Case { { Yes Bypass } @Yield @FloaterContentsPart else @Yield @Null } //1.1b @PrefaceAfterContents @Do @PrefacePlace // @AbbreviationsPlace // @IntroductionPlace // @ChapterList @FirstChapterNumber // @ReferencesBeforeAppendices @Do { @MakeReferences @Do @ReferencesPart } // @AppendixList @FirstAppendixNumber // @ReferencesBeforeAppendices @NoDo { @MakeReferences @Do @ReferencesPart } // @MakeGlossary @Do @GlossaryPart // @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 } // @MakeColophon @Do @ColophonPart } @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 {} // Yes @BeginFloaterCounter {} // @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 {} // Yes @BeginFloaterCounter {} // @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. # # # ####################################################################### export @BeginSubPrefaces @EndSubPrefaces @SubPreface def @Preface force into { @PrefacePlace&&preceding } named @Tag {} named @Title { preface @WordVal @PrefaceWord } named @RunningTitle { dft } named @InitialLanguage {} body @Body { def @EndSubPrefacesPlace { @Galley } def @EndSubPrefaces force into { @EndSubPrefacesPlace&&preceding } {} macro @BeginSubPrefaces { //@SubPrefaceGap @SubPrefaceList @FirstSubPrefaceNumber // @EndSubPrefacesPlace // } def @SubPreface force into { @SubPrefaceList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } named @NewPage { No } body @Body { def @SubPrefaceShortNum { @SubPrefaceNumbers @Then { @BypassNumber @Dft { @SubPrefaceNumbers @Num { @SectionList&&@Tag @Open { num } } } } } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubPrefaceHeadingFont } headingbreak { @SubPrefaceHeadingBreak } headingformat { @Num @SubPrefaceHeadingFormat @Body } incontents { @SubPrefaceInContents } contentsindent { @SubPrefaceContentsIndent } numbers { @SubPrefaceNumbers } attachnum { @SubPrefaceList&&preceding @Tagged @Tag } retrievenum { @SubPrefaceList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @Null } majornum { @Null } majortitle { @Null } intheorems { @SubPrefaceNumInTheorems } indisplays { @SubPrefaceNumInDisplays } infigures { @SubPrefaceNumInFigures } intables { @SubPrefaceNumInTables } infloaters { @SubPrefaceNumInFloaters } inrunners { @SubPrefaceNumInRunners } newpage { @NewPage } @Body } @LargeScaleStructure tag { @Tag } type { ExtraMajorIntro } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @PrefaceInContents } contentsindent { @PrefaceContentsIndent } 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 } contentsindent { @AbbreviationsContentsIndent } pnprefix { @AbbreviationsPrefix } sendheader { @Full @Body } innergap { @SectionGap } inrunners { Yes } @Body } ####################################################################### # # # Introduction. # # # ####################################################################### export @BeginSubIntroductions @EndSubIntroductions @SubIntroduction def @Introduction force into { @IntroductionPlace&&preceding } named @Tag {} named @Title { introduction @WordVal @IntroductionWord } named @RunningTitle { dft } named @InitialLanguage {} body @Body { def @EndSubIntroductionsPlace { @Galley } def @EndSubIntroductions force into { @EndSubIntroductionsPlace&&preceding } {} macro @BeginSubIntroductions { //@SubIntroductionGap @SubIntroductionList @FirstSubIntroductionNumber // @EndSubIntroductionsPlace // } def @SubIntroduction force into { @SubIntroductionList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage { @InitialLanguage } named @BypassNumber { dft } named @NewPage { No } body @Body { def @SubIntroductionShortNum { @SubIntroductionNumbers @Then { @BypassNumber @Dft { @SubIntroductionNumbers @Num { @SectionList&&@Tag @Open { num } } } } } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubIntroductionHeadingFont } headingbreak { @SubIntroductionHeadingBreak } headingformat { @Num @SubIntroductionHeadingFormat @Body } incontents { @SubIntroductionInContents } contentsindent { @SubIntroductionContentsIndent } numbers { @SubIntroductionNumbers } attachnum { @SubIntroductionList&&preceding @Tagged @Tag } retrievenum { @SubIntroductionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @Null } majornum { @Null } majortitle { @Null } intheorems { @SubIntroductionNumInTheorems } indisplays { @SubIntroductionNumInDisplays } infigures { @SubIntroductionNumInFigures } intables { @SubIntroductionNumInTables } infloaters { @SubIntroductionNumInFloaters } inrunners { @SubIntroductionNumInRunners } newpage { @NewPage } @Body } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } aboveheadinggap { @AboveChapterGap } headingfont { @ChapterHeadingFont } headingbreak { @ChapterHeadingBreak } headingformat { @Num @ChapterHeadingFormat @Body } incontents { @IntroductionInContents } contentsindent { @IntroductionContentsIndent } 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 } named @BypassWord { 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 @BypassWord @Dft {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 } named @NewPage { No } 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 } named @NewPage { No } 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 } named @NewPage { No } body @Body { @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSubSectionHeadingFont } headingbreak { @SubSubSectionHeadingBreak } headingformat { @Num @SubSubSectionHeadingFormat @Body } incontents { @SubSubSectionInContents } contentsindent { @SubSubSectionContentsIndent } 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 } infloaters { @SubSubSectionNumInFloaters } inrunners { @SubSubSectionNumInRunners } newpage { @NewPage } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSectionHeadingFont } headingbreak { @SubSectionHeadingBreak } headingformat { @Num @SubSectionHeadingFormat @Body } incontents { @SubSectionInContents } contentsindent { @SubSectionContentsIndent } 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 } infloaters { @SubSectionNumInFloaters } inrunners { @SubSectionNumInRunners } newpage { @NewPage } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SectionHeadingFont } headingbreak { @SectionHeadingBreak } headingformat { @Num @SectionHeadingFormat @Body } incontents { @SectionInContents } contentsindent { @SectionContentsIndent } 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 } infloaters { @SectionNumInFloaters } inrunners { @SectionNumInRunners } newpage { @NewPage } @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 } contentsindent { @PartContentsIndent } 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 { @ChapterContentsIndent } # word { chapter @WordVal @ChapterWord } word { @BypassWord @Dft { 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 } infloaters { @ChapterNumInFloaters } 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 } named @NewPage { No } 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 } named @NewPage { No } body @Body { @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubSubAppendixHeadingFont } headingbreak { @SubSubAppendixHeadingBreak } headingformat { @Num @SubSubAppendixHeadingFormat @Body } incontents { @SubSubAppendixInContents } contentsindent { @SubSubAppendixContentsIndent } 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 } infloaters { @SubSubAppendixNumInFloaters } inrunners { @SubSubAppendixNumInRunners } newpage { @NewPage } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } headingfont { @SubAppendixHeadingFont } headingbreak { @SubAppendixHeadingBreak } headingformat { @Num @SubAppendixHeadingFormat @Body } incontents { @SubAppendixInContents } contentsindent { @SubAppendixContentsIndent } 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 } infloaters { @SubAppendixNumInFloaters } inrunners { @SubAppendixNumInRunners } newpage { @NewPage } @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 } contentsindent { @PartContentsIndent } 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 { @AppendixContentsIndent } 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 } infloaters { @AppendixNumInFloaters } sendheader { @ChapterFull @Body } innergap { @SubAppendixGap } inrunners { Yes } @Body } ####################################################################### # # # Colophon. # # # ####################################################################### def @Colophon into { @ColophonList&&preceding } named @Tag {} named @InitialLanguage {} body @Body { @InitialLanguage @Language @Body } @End @BookSetup