########################################################################### # # # @ReportSetup extension to @DocumentSetup. # # # # Jeffrey H. Kingston # # August 1994 # # # # This package extends DocumentSetup with definitions for reports. # # # ########################################################################### extend @BasicSetup @DocumentSetup export @Report @Section @Appendix def @ReportSetup named @CoverSheet { Yes } named @ContentsSeparate { No } named @DateLine { No } named @AbstractDisplay { No } named @AbstractTitle { dft } named @ReferencesBeforeAppendices { No } named @AbstractWord { abstract } named @ContentsWord { contents } named @AppendixWord { appendix } named @IndexWord { index } named @IndexAWord { index } named @IndexBWord { index } 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 @AbstractHeadingFont { Bold } named @AbstractHeadingBreak { ragged 1.2fx nohyphen } named @AbstractHeadingFormat right title { @Centre title } named @ContentsHeadingFont { Bold } named @ContentsHeadingBreak { ragged 1.2fx nohyphen } named @ContentsHeadingFormat right title { 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 } 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 @ReferencesHeadingFont { Bold } named @ReferencesHeadingBreak { ragged 1.2fx nohyphen } named @ReferencesHeadingFormat right title { title } named @IndexHeadingFont { Bold } named @IndexHeadingBreak { ragged 1.2fx nohyphen } named @IndexHeadingFormat right title { title } named @IndexAHeadingFont { Bold } named @IndexAHeadingBreak { ragged 1.2fx nohyphen } named @IndexAHeadingFormat right title { title } named @IndexBHeadingFont { Bold } named @IndexBHeadingBreak { ragged 1.2fx nohyphen } named @IndexBHeadingFormat right title { title } named @SectionGap { 2.0v @OrIfPlain 3f } named @SubSectionGap { 1.5v @OrIfPlain 2f } named @SubSubSectionGap { 1.5v @OrIfPlain 2f } named @AppendixGap { 2.0v @OrIfPlain 3f } named @SubAppendixGap { 1.5v @OrIfPlain 2f } named @SubSubAppendixGap { 1.5v @OrIfPlain 2f } 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 @SectionNumInTheorems { No } named @SubSectionNumInTheorems { No } named @SubSubSectionNumInTheorems { No } named @AppendixNumInTheorems { No } named @SubAppendixNumInTheorems { No } named @SubSubAppendixNumInTheorems { No } named @SectionNumInDisplays { Yes } named @SubSectionNumInDisplays { No } named @SubSubSectionNumInDisplays { No } named @AppendixNumInDisplays { Yes } named @SubAppendixNumInDisplays { No } named @SubSubAppendixNumInDisplays { No } named @SectionNumInFigures { No } named @SubSectionNumInFigures { No } named @SubSubSectionNumInFigures { No } named @AppendixNumInFigures { No } named @SubAppendixNumInFigures { No } named @SubSubAppendixNumInFigures { No } named @SectionNumInTables { No } named @SubSectionNumInTables { No } named @SubSubSectionNumInTables { No } named @AppendixNumInTables { No } named @SubAppendixNumInTables { No } named @SubSubAppendixNumInTables { No } named @SectionNumInRunners { Yes } named @SubSectionNumInRunners { No } named @SubSubSectionNumInRunners { No } named @AppendixNumInRunners { Yes } named @SubAppendixNumInRunners { No } named @SubSubAppendixNumInRunners { No } named @FigureContentsPrefix { } named @TableContentsPrefix { } named @SectionPrefix { } named @AppendixPrefix { } named @ReferencesPrefix { } named @IndexPrefix { } named @IndexAPrefix { } named @IndexBPrefix { } @Begin ####################################################################### # # # Lists of sections, subsections, etc. # # # ####################################################################### 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 //@AppendixGap @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 } ####################################################################### # # # @Full - this sends text to a full-width place. # # # ####################################################################### def @Full force into { @FullPlace&&following } right x { x } def @NoForceFull into { @FullPlace&&following } right x { x } ####################################################################### # # # @Report # # # ####################################################################### def @Report named @Title {} named @Author {} named @Institution {} named @DateLine { @DateLine } named @CoverSheet { @CoverSheet } named @ContentsSeparate { @ContentsSeparate } named @AtEnd { dft } named @InitialFont { @InitialFont } named @InitialBreak { @InitialBreak } named @InitialSpace { @InitialSpace } named @InitialLanguage { @InitialLanguage } named @PageOrientation { @PageOrientation } named @PageHeaders { @PageHeaders } named @ColumnNumber { @ColumnNumber } named @FirstPageNumber { @FirstPageNumber } named @OptimizePages { @OptimizePages } named @AbstractDisplay { @AbstractDisplay } named @AbstractTitle { @AbstractTitle } named @Abstract {} { def @Cntr right x { x @Case { "" @Yield @Null else @Yield { |0.5rt x | } } } def @DateValue right indent { @DateLine @Case { No @Yield {} Yes @Yield @Date else @Yield @DateLine } } def @TitleMaterial { //1i @B {clines 1.4vx} @Break @Cntr @Title //1.00v @I clines @Break { |0.5rt @Author | } //1.00v clines @Break @Cntr @Institution //1.00v clines @Break @Cntr @DateValue } def @AbstractPart { def @Title { @AbstractHeadingFont @Font @AbstractHeadingBreak @Break @AbstractHeadingFormat { @AbstractTitle @Dft { abstract @WordVal @AbstractWord } } } @Abstract @Case { "" @Yield @Null else @Yield @AbstractDisplay @Case { No @Yield { @Title @DP @Abstract } Yes @Yield { |0.5rt @Title | @DP |@DisplayIndent @Abstract |@DisplayIndent } } } } def @ContentsPart { // |0.5rt @ContentsHeadingFont @Font @ContentsHeadingBreak @Break @ContentsHeadingFormat { contents @WordVal @ContentsWord } | //@DisplayGap @ContentsSection // NonStart @Runner @MajorTitle {contents @WordVal @ContentsWord} } def @ReferencesPart named @Tag {} { @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { @RefHeading @RefListTitle } sendheader { @Body } headingfont { @ReferencesHeadingFont } headingbreak { @ReferencesHeadingBreak } headingformat { @ReferencesHeadingFormat @Body } incontents { @ReferencesInContents } majornum {} majortitle {} minornum {} minortitle { @RefHeading @RefListTitle } prefix { @ReferencesPrefix } inrunners { Yes } { //@RefListGap @ReferencesSection } } def @IndexPart named @Tag {} { def @Run { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexWord } @MinorNum {} @MinorTitle {} @Owner { @Tag } @Prefix { @IndexPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexWord } headingfont { @IndexHeadingFont } headingbreak { @IndexHeadingBreak } headingformat { @IndexHeadingFormat @Body } incontents { @IndexInContents } prefix { @IndexPrefix } inrunners { Yes } majornum {} majortitle {} minornum {} minortitle { index @WordVal @IndexWord } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexSection @Run } def @IndexAPart named @Tag {} { def @Run { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexAWord } @MinorNum {} @MinorTitle {} @Owner { @Tag } @Prefix { @IndexAPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexAWord } headingfont { @IndexAHeadingFont } headingbreak { @IndexAHeadingBreak } headingformat { @IndexAHeadingFormat @Body } incontents { @IndexAInContents } prefix { @IndexAPrefix } inrunners { Yes } majornum {} majortitle {} minornum {} minortitle { index @WordVal @IndexAWord } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexASection @Run } def @IndexBPart named @Tag {} { def @Run { NonStart @Runner @MajorNum {} @MajorTitle { index @WordVal @IndexBWord } @MinorNum {} @MinorTitle {} @Owner { @Tag } @Prefix { @IndexBPrefix } } @LargeScaleStructure tag { @Tag } type { Major } initiallanguage { @InitialLanguage } title { index @WordVal @IndexBWord } headingfont { @IndexBHeadingFont } headingbreak { @IndexBHeadingBreak } headingformat { @IndexBHeadingFormat @Body } incontents { @IndexBInContents } prefix { @IndexBPrefix } inrunners { Yes } majornum {} majortitle {} minornum {} minortitle { index @WordVal @IndexBWord } sendheader { @Full @Body } innergap { @SectionGap } wantindefinite { Yes } @IndexBSection @Run } def @ContentsGap { @ContentsSeparate @Case { No @Yield @SectionGap Yes @Yield 2b } } def @ReportBodyWithoutCoverSheet force into { @ColPlace&&following } named @Optimize { @OptimizePages } { Start @Runner // @AbstractDisplay @NoDo @AbstractPart //@ContentsGap @ContentsPart //@ContentsGap @SectionList @FirstSectionNumber //@SectionGap @ReferencesBeforeAppendices @Do { @MakeReferences @Do @ReferencesPart } //@AppendixGap @AppendixList @FirstAppendixNumber //@SectionGap @EndFigureList //@SectionGap @EndNoteList 1 //@SectionGap @ReferencesBeforeAppendices @NoDo { @MakeReferences @Do @ReferencesPart } // @MakeIndexA @Do @IndexAPart // @MakeIndexB @Do @IndexBPart // @MakeIndex @Do @IndexPart } def @ReportCoverSheet into { @IntroColPlace&&preceding } named @Optimize { @OptimizePages } { // Start @Runner // @TitleMaterial //@DisplayGap @DP @AbstractPart } def @ReportBodyWithCoverSheet force into { @ColPlace&&preceding } named @Optimize { @OptimizePages } { Start @Runner //@ContentsGap @ContentsPart //@ContentsGap @SectionList @FirstSectionNumber //@SectionGap @ReferencesBeforeAppendices @Do { @MakeReferences @Do @ReferencesPart } //@AppendixGap @AppendixList @FirstAppendixNumber //@SectionGap @ReferencesBeforeAppendices @NoDo { @MakeReferences @Do @ReferencesPart } //@SectionGap @EndFigureList //@SectionGap @EndNoteList 1 // @MakeIndexA @Do @IndexAPart // @MakeIndexB @Do @IndexBPart // @MakeIndex @Do @IndexPart } @InitialFont @Font @InitialBreak @Break @InitialLanguage @Language @InitialSpace @Space { @ColourCommand @InitialColour } @SetColour { @CoverSheet @Case { No @Yield { @FootNoteThrough @Do @BeginFootNoteCounter // Yes @BeginAllCounters {} // Yes @BeginDisplayCounter {} // Yes @BeginFigureCounter {} // Yes @BeginTableCounter {} // @AbstractDisplay @Do { @NoForceFull @AbstractPart } // @ReportBodyWithoutCoverSheet // @PageList @ColumnNumber { @ColumnNumber } @PageHeaders { @PageHeaders } @Orient { @PageOrientation } # extra { Yes } @AtTop { @TitleMaterial } @FirstPageNumber // NonStart @Runner // @AtEnd @Case { dft @Yield @Null else @Yield @EvenPage @Orient { @PageOrientation } @AtEnd } } Yes @Yield { @FootNoteThrough @Do @BeginFootNoteCounter // Yes @BeginAllCounters {} // Yes @BeginDisplayCounter {} // Yes @BeginFigureCounter {} // Yes @BeginTableCounter {} // @SimpleOddOrEvenIntroPageList @ColumnNumber { 1 } @PageHeaders { Simple } @Orient { @PageOrientation } 1 // @ReportCoverSheet // @PageList @ColumnNumber { @ColumnNumber } @PageHeaders { @PageHeaders } @Orient { @PageOrientation } # extra { Yes } @AtTop { @TitleMaterial } @FirstPageNumber // @ReportBodyWithCoverSheet // NonStart @Runner // @AtEnd @Case { dft @Yield @Null else @Yield @EvenPage @Orient { @PageOrientation } @AtEnd } } } } } ####################################################################### # # # Sections. # # # ####################################################################### export @BeginSubSections @EndSubSections @SubSection def @Section force into { @SectionList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @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 { @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 { 6f } numbers { @SubSubSectionNumbers } attachnum { @SubSubSectionList&&preceding @Tagged @Tag } retrievenum { @SubSubSectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SubSectionShortNum } majornum {} 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 { 3f } numbers { @SubSectionNumbers } attachnum { @SubSectionList&&preceding @Tagged @Tag } retrievenum { @SubSectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SectionShortNum } majornum {} 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 { 0f } numbers { @SectionNumbers } attachnum { @SectionList&&preceding @Tagged @Tag } retrievenum { @SectionList&&@Tag @Open { num } } bypassnumber { @BypassNumber } prefix { @SectionPrefix } majornum {} majortitle {} intheorems { @SectionNumInTheorems } indisplays { @SectionNumInDisplays } infigures { @SectionNumInFigures } intables { @SectionNumInTables } inrunners { @SectionNumInRunners } @Body } ####################################################################### # # # Appendices. # # # ####################################################################### export @BeginSubAppendices @EndSubAppendices @SubAppendix def @Appendix force into { @AppendixList&&preceding } named @Tag {} named @Title {} named @RunningTitle { dft } named @InitialLanguage {} 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 @AppendixLongNum { @AppendixNumbers @Then { @InitialLanguage @Language { appendix @WordVal @AppendixWord @AppendixShortNum } } } 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 {} 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 {} majortitle {} intheorems { @SubAppendixNumInTheorems } indisplays { @SubAppendixNumInDisplays } infigures { @SubAppendixNumInFigures } intables { @SubAppendixNumInTables } inrunners { @SubAppendixNumInRunners } @Body } @LargeScaleStructure tag { @Tag } type { Minor } initiallanguage { @InitialLanguage } title { @Title } runningtitle { @RunningTitle } 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 } prefix { @AppendixPrefix } majornum {} majortitle {} intheorems { @AppendixNumInTheorems } indisplays { @AppendixNumInDisplays } infigures { @AppendixNumInFigures } intables { @AppendixNumInTables } inrunners { Yes } @Body } @End @ReportSetup