aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user/typ_ordi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/typ_ordi')
-rw-r--r--doc/user/typ_ordi313
1 files changed, 313 insertions, 0 deletions
diff --git a/doc/user/typ_ordi b/doc/user/typ_ordi
new file mode 100644
index 0000000..9fbd07a
--- /dev/null
+++ b/doc/user/typ_ordi
@@ -0,0 +1,313 @@
+@Section
+ @Title { Ordinary documents }
+ @Tag { ordinary }
+@Begin
+@PP
+Ordinary documents are the simplest kind, consisting of a plain sequence
+ordinary. @Index { ordinary documents }
+of numbered pages. To produce an ordinary document, use the @Code doc
+setup file and the @Code "@Doc" symbol:
+doc. @Index @Code "@Doc"
+@ID @OneRow @Code {
+"@SysInclude { doc }"
+"@Doc @Text @Begin"
+"..."
+"@End @Text"
+}
+where @Code ... stands for the body of your document. This is the
+arrangement from Section {@NumberOf start} for getting
+started. Alternatively, you can begin with
+@Code "@Document" instead of {@Code "@Doc"}:
+document. @Index @Code "@Document"
+@ID @OneRow @Code {
+"@SysInclude { doc }"
+"@Document"
+" @InitialFont { Times Base 12p }"
+" @InitialBreak { adjust 1.2fx hyphen }"
+" @InitialSpace { lout }"
+" @InitialLanguage { English }"
+" @PageOrientation { Portrait }"
+" @PageHeaders { Simple }"
+" @FirstPageNumber { 1 }"
+" @ColumnNumber { 1 }"
+" @OptimizePages { No }"
+" @Unpaginated { No }"
+"//"
+"@Text @Begin"
+"..."
+"@End @Text"
+}
+This shows all the options of {@Code "@Document"}, with their default
+values. As usual with options, the options of {@Code "@Document"}
+may be given in any order, and only the ones that need to be changed
+need be given at all. Notice the @Code "//" after the last option. Its
+meaning is beyond our
+"//" @Index { @Code "//" symbol }
+scope, but total disaster will ensue if it is forgotten. The @Code "@Doc"
+symbol is an abbreviation for {@Code "@Document //"}, which is why you don't
+need @Code "//" with {@Code "@Doc"}.
+@PP
+The eight options are a selection of setup file options (Section
+{@NumberOf setup}) that frequently need to be changed. If your changes
+to the overall formatting are confined to these options, you can change
+them here and avoid having your own setup file. If you already have
+your own setup file, change them in either place and omit them in
+the other.
+@PP
+@Code "@InitialFont" is the font of the bulk of the document,
+and should contain a family, a face, and a size. The default
+value selects the Times family, the Base face, and the 12 point size.
+@PP
+@Code "@InitialBreak" controls the behaviour of paragraph breaking in
+the bulk of the document. It should have three parts: a paragraph
+breaking style ({@Code adjust}, {@Code ragged}, etc.), an inter-line
+spacing ({@Code "1.2fx"} for single spacing, {@Code "2.4fx"} for
+double spacing, and so on), and either @Code "hyphen" or @Code "nohyphen"
+for turning hyphenation on or off. It may also have @Code "nobreakfirst"
+or @Code "nobreaklast" (or both), meaning to disallow a page break after
+the first line of a paragraph, or before the last, respectively.
+@PP
+@Code "@InitialSpace" determines how Lout treats white space between
+two objects, as described in Section
+{@NumberOf white}. @Code "@InitialLanguage" determines the language
+of the bulk of the document.
+@PP
+@Code "@PageOrientation" determines the orientation of the page. Its
+value may be {@Code Portrait} (the default), {@Code Landscape},
+{@Code ReversePortrait}, or {@Code ReverseLandscape}. See
+Section {@NumberOf pagesize} for further details.
+@PP
+@Code "@PageHeaders" determines the appearance of page headers and
+footers throughout the document, and may be {@Code None},
+{@Code Simple}, {@Code Titles}, or {@Code NoTitles}. Section
+{@NumberOf headers} has the details, but just briefly, {@Code None}
+means no page headers at all, {@Code Simple} means a
+page number between hyphens at the top of each page except the first,
+@Code Titles produces full running titles as in this guide,
+and @Code "NoTitles" is like @Code "Titles" with the running titles
+omitted, leaving just the page numbers.
+@PP
+@Code "@FirstPageNumber" is the page number given to the first page.
+@PP
+@Code "@ColumnNumber" is the number of columns per page in the bulk of
+the document, and may be anything from {@Code 1} (the default value) to
+{@Code 10}. It is possible to produce full-width ordinary
+text in a multi-column document, using the @Code "@FullWidth"
+full.width. @Index @Code "@FullWidth"
+symbol:
+@ID @OneRow @Code {
+"@SysInclude { doc }"
+"@Document"
+" @ColumnNumber { 2 }"
+"//"
+"@Text @Begin"
+"@FullWidth {"
+"@CentredDisplay @Heading { NOTICE TO TRESPASSERS }"
+"}Trespassers are hereby notified that, ..."
+"@End @Text"
+}
+This produces a full-width heading above a two-column body. The word
+@Code Trespassers has been placed immediately after the closing brace
+of @Code "@FullWidth" because (regrettably) any space here will appear
+before @Code Trespassers in the output. Alternatively you could use
+a paragraph symbol:
+@ID @OneRow @Code {
+"@FullWidth {"
+"@CentredDisplay @Heading { NOTICE TO TRESPASSERS }"
+"}"
+"@PP"
+"Trespassers are hereby notified that, ..."
+}
+You can have several @Code "@FullWidth" symbols,
+producing full-width text wherever you want. Just be aware that
+@Code "@FullWidth" always causes a fresh page to be begun, it will never
+appear on the same page as a figure or table, and it is not able to hold
+a table of contents, a section, or an appendix.
+@PP
+Lout ordinarily places lines onto a page until space runs out, then moves
+to the next page and so on. This often produces ugly empty spaces at
+the bottoms of pages preceding large unbreakable displays. Setting the
+@Code "@OptimizePages" option to {@Code "Yes"} causes Lout to examine the
+overall situation and try to minimize the ugliness, using the @TeX
+tex.page @SubIndex { page optimization }
+optimal paragraph breaking algorithm. It takes two runs to do this,
+with intermediate results stored in Lout's cross reference database
+(Section {@NumberOf cross}); so deleting file {@Code lout.li} will reset
+it, which might be wise after major changes. It is possible for the
+optimizer to cycle, never settling on a single final best
+version; this is usually caused by footnotes or floating figures inserted
+at points that end up near page boundaries.
+@PP
+The @Code "@Unpaginated" option, whose value is ignored unless plain text
+output is in effect, produces unpaginated output when changed to
+{@Code Yes} (see Section {@NumberOf plain}).
+@PP
+Within the @Code "@Text" symbol, it is possible to have a sequence
+of sections:
+section. @RawIndex @Code "@Section"
+section.ordinary @SubIndex { in ordinary documents }
+beginsections. @RawIndex @Code "@BeginSections"
+beginsections.ordinary @SubIndex { in ordinary documents }
+endsections. @RawIndex @Code "@EndSections"
+endsections.ordinary @SubIndex { in ordinary documents }
+@ID @OneRow @Code {
+"preceding text"
+"@BeginSections"
+"@Section ... @End @Section"
+"@Section ... @End @Section"
+"..."
+"@Section ... @End @Section"
+"@EndSections"
+}
+as described in Section {@NumberOf largescale}. Within any
+section, a similar arrangement produces subsections:
+subsection. @RawIndex @Code "@SubSection"
+subsection.ordinary @SubIndex { in ordinary documents }
+beginsubsections. @RawIndex @Code "@BeginSubSections"
+beginsubsections.ordinary @SubIndex { in ordinary documents }
+endsubsections. @RawIndex @Code "@EndSubSections"
+endsubsections.ordinary @SubIndex { in ordinary documents }
+@ID @OneRow @Code {
+"preceding text"
+"@BeginSubSections"
+"@SubSection ... @End @SubSection"
+"@SubSection ... @End @SubSection"
+"..."
+"@SubSection ... @End @SubSection"
+"@EndSubSections"
+}
+Within any subsection, there may be sub-subsections, obtained
+using {@Code "@BeginSubSubSections"}, {@Code "@SubSubSection"},
+subsubsection. @RawIndex @Code "@SubSubSection"
+subsubsection.ordinary @SubIndex { in ordinary documents }
+beginsubsubsections. @RawIndex @Code "@BeginSubSubSections"
+beginsubsubsections.ordinary @SubIndex { in ordinary documents }
+endsubsubsections. @RawIndex @Code "@EndSubSubSections"
+endsubsubsections.ordinary @SubIndex { in ordinary documents }
+and {@Code "@EndSubSubSections"}. There are no sub-sub-subsections.
+@PP
+Also within the @Code "@Text" symbol only, there may be a sequence of
+appendices:
+appendix. @RawIndex @Code "@Appendix"
+appendix.ordinary @SubIndex { in ordinary documents }
+beginappendices. @RawIndex @Code "@BeginAppendices"
+beginappendices.ordinary @SubIndex { in ordinary documents }
+endappendices. @RawIndex @Code "@EndAppendices"
+endappendices.ordinary @SubIndex { in ordinary documents }
+@ID @OneRow @Code {
+"preceding text"
+"@BeginAppendices"
+"@Appendix ... @End @Appendix"
+"@Appendix ... @End @Appendix"
+"..."
+"@Appendix ... @End @Appendix"
+"@EndAppendices"
+}
+These will be `numbered' A, B, C etc. as is conventional. Within any
+appendix there may be a sequence of subappendices, obtained in the
+usual way using {@Code "@BeginSubAppendices"}, {@Code "@SubAppendix"},
+subappendix. @RawIndex @Code "@SubAppendix"
+subappendix.ordinary @SubIndex { in ordinary documents }
+beginsubappendices. @RawIndex @Code "@BeginSubAppendices"
+beginsubappendices.ordinary @SubIndex { in ordinary documents }
+endsubappendices. @RawIndex @Code "@EndSubAppendices"
+endsubappendices.ordinary @SubIndex { in ordinary documents }
+and {@Code "@EndSubAppendices"}. There are sub-subappendices as well,
+following the same pattern, but no sub-sub-subappendices.
+subsubappendix. @RawIndex @Code "@SubSubAppendix"
+subsubappendix.ordinary @SubIndex { in ordinary documents }
+beginsubsubappendices. @RawIndex @Code "@BeginSubSubAppendices"
+beginsubsubappendices.ordinary @SubIndex { in ordinary documents }
+endsubsubappendices. @RawIndex @Code "@EndSubSubAppendices"
+endsubsubappendices.ordinary @SubIndex { in ordinary documents }
+@PP
+In addition to the {@Code "@Title"} option, each large-scale structure
+symbol ({@Code "@Section"}, {@Code "@SubSection"}, {@Code "@SubSubSection"},
+{@Code "@Appendix"}, {@Code "@SubAppendix"}, and {@Code "@SubSubAppendix"})
+has a @Code "@Tag" option for cross referencing (Section {@NumberOf cross}),
+an @Code "@InitialLanguage" option for changing the language of that part
+of the document, and a @Code "@RunningTitle" option which will be used in
+place of @Code "@Title" in running headers if given. @Code "@RunningTitle"
+is useful when the full title is rather long.
+@PP
+The features described in other chapters are all available within
+ordinary documents. Endnotes and references appear automatically at
+the end of the document. Figures are labelled Figure 1, Figure 2,
+etc., and tables are labelled Table 1, Table 2, etc.
+@PP
+To get a table of contents, set the @Code "@MakeContents" option in
+the setup file to {@Code Yes}, and insert the symbol
+@Code "@ContentsGoesHere" at the point where you would like the
+contents.goes.here. @Index @Code "@ContentsGoesHere"
+table of contents to appear, anywhere before the first section:
+@ID @OneRow @Code {
+"@SysInclude { doc }"
+"@Text @Begin"
+"@CentredDisplay @Heading { Safety Procedures }"
+"@Heading { Contents }"
+"@DP"
+"@ContentsGoesHere"
+"@DP"
+"..."
+"@End @Text"
+}
+You must supply your own heading, as well as paragraph symbols
+before and after. Regrettably, @Code "@ContentsGoesHere" may
+not be placed inside a display, nor inside {@Code "@FullWidth"}.
+@PP
+To get an index, set the @Code "@MakeIndex" option in the setup file
+to {@Code Yes}, and follow the instructions in Section
+{@NumberOf indexes}. The index will appear automatically at the end
+of your document.
+@PP
+Within the @Code doc setup file there is an @Code "@OrdinarySetup"
+symbol whose options control the appearance of features specific to
+ordinary documents (in other words, the features described in this
+section). Here is a representative sample of these options, showing
+their default values:
+ordinary.setup @Index @Code "@OrdinarySetup"
+@ID @OneRow @Code {
+"@Use { @OrdinarySetup"
+" # @IndexWord { index }"
+" # @AppendixWord { appendix }"
+" # @SectionNumbers { Arabic }"
+" # @SectionHeadingFont { Bold }"
+" # @SectionGap { 2.00v }"
+" # @SectionInContents { Yes }"
+"}"
+}
+Section {@NumberOf setup} explains how to make your own setup file and
+change its options.
+@PP
+The @Code "@IndexWord" option determines what the index is called, if
+there is one. The default value, {@Code "index"}, produces the word
+`Index' in the current language. Any other value produces itself. The
+@Code "@AppendixWord" option is similar; its default value is `Appendix'
+in the current language.
+@PP
+@Code "@SectionNumbers" determines how sections will be numbered, and may
+be @Code { None }, @Code { Arabic }, @Code { Roman }, @Code { UCRoman },
+@Code { Alpha }, or @Code { UCAlpha }. The default value is @Code Arabic
+for sections and also all other large-scale structure symbols except
+appendices, for which it is {@Code UCAlpha}. This produces the appendices
+numbered in upper-case letters (A, B, C, etc.) that were mentioned earlier.
+@PP
+@Code "@SectionHeadingFont" is the font used for section headings. The
+default value produces the bold face from the family of the
+initial font. A family name or size is also acceptable:
+@ID @Code "@SectionHeadingFont { Helvetica Base +2p }"
+makes the section heading appear in the Helvetica font, two
+points larger than the initial size.
+@PP
+@Code "@SectionGap" determines how much space is left blank before each
+section title; the default value shown above is twice the current
+inter-line spacing. The special value @Code "2b" may be used to get a
+page break rather than a space. There are similar options for other
+large-scale structure symbols, which determine how much space is left
+before each one.
+@PP
+@Code "@SectionInContents" determines whether or not an entry is made in
+the table of contents for each section; it may be @Code Yes or {@Code No},
+but would always be {@Code Yes}. The default value of the corresponding
+options for sub-subsections and sub-subappendices, however, is {@Code No}.
+@End @Section