diff options
author | wlemb <wlemb> | 2002-07-17 04:50:28 +0000 |
---|---|---|
committer | wlemb <wlemb> | 2002-07-17 04:50:28 +0000 |
commit | 6ec8cde0582c0a3d31b79b67cbba93ec0a376a3e (patch) | |
tree | 8f7bbb55f83857292a88321aed5632966ddf7ea1 /contrib | |
parent | 598ffab4a22a65241e4138eb89da3a75f02b2db4 (diff) | |
download | groff-6ec8cde0582c0a3d31b79b67cbba93ec0a376a3e.tar.gz |
o Added capability of endnotes and pertinent control macros to om.tmac.
o Added document entries pertaining to endnote macros.
o Incorporated endnote macros into elvis_syntax.
o Small doc fixes.
o Tidied up indenting of om.tmac.
o Fixed handling of underlining of italics in PRINTSTYLE TYPEWRITE
(there was a problem with footnotes getting underlined when they
shouldn't have been).
o Removed ENDNOTES from TODO
o Fixed the character translations for UNDERLINE so they work properly
with digraphs.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/mom/ChangeLog | 38 | ||||
-rw-r--r-- | contrib/mom/NEWS | 27 | ||||
-rw-r--r-- | contrib/mom/TODO | 5 | ||||
-rw-r--r-- | contrib/mom/examples/elvis_syntax | 9 | ||||
-rw-r--r-- | contrib/mom/momdoc/docelement.html | 609 | ||||
-rw-r--r-- | contrib/mom/momdoc/docprocessing.html | 47 | ||||
-rw-r--r-- | contrib/mom/momdoc/goodies.html | 5 | ||||
-rw-r--r-- | contrib/mom/momdoc/inlines.html | 31 | ||||
-rw-r--r-- | contrib/mom/momdoc/rectoverso.html | 5 | ||||
-rw-r--r-- | contrib/mom/momdoc/reserved.html | 93 | ||||
-rw-r--r-- | contrib/mom/momdoc/toc.html | 3 | ||||
-rw-r--r-- | contrib/mom/om.tmac | 1251 |
12 files changed, 1850 insertions, 273 deletions
diff --git a/contrib/mom/ChangeLog b/contrib/mom/ChangeLog index cb2199bf..6d71091e 100644 --- a/contrib/mom/ChangeLog +++ b/contrib/mom/ChangeLog @@ -1,7 +1,45 @@ +*Fri Jul 12 2002 + +o More fixes to underlining. + +*Fri Jul 5 2002 + +o Added capability of endnotes and pertinent control macros to om.tmac. + +o Added document entries pertaining to endnote macros. + +o Incorporated endnote macros into elvis_syntax. + +o Small doc fixes. + +o Tidied up indenting of om.tmac. + +o Fixed handling of underlining of italics in PRINTSTYLE TYPEWRITE + (there was a problem with footnotes getting underlined when they + shouldn't have been). + +o Removed ENDNOTES from TODO + +o Fixed the character translations for UNDERLINE so they work properly + with digraphs. + +*Mon Jul 1 2002 + +o Expanded docprocessing.html entry "Special Note on Chapters". Tidied + up html a bit. + *Tue Jun 18 2002 o examples/macros.mom: Fix path to penguin.ps. +*Sat Jun 15 2002 + +o Small fix to PAD to make the use of inlines within the pad string + more intuitive. + +o Added \*[RULE] ( = \l'\n(.lu' ) so that full measure rules (either to + full line length or within tabs) are easier to set. + *Sat Jun 8 2002 o Macro .PS renamed to .PT_SIZE. Alias .TS removed. diff --git a/contrib/mom/NEWS b/contrib/mom/NEWS index e864babe..6a13d4ad 100644 --- a/contrib/mom/NEWS +++ b/contrib/mom/NEWS @@ -1,3 +1,30 @@ +Release 1.1.3 +------------- + +***SIGNIFICANT CHANGE -- PLEASE TAKE NOTE*** +As of 1.1.3, groff must be >= 1.18. + +***NEW*** +Added endnotes functionality to mom, along with a slew of macros to +control how mom prints endnotes pages. See the html documentation. + +***NEW*** +Added inline \*[RULE], which draws a rule to the full measure of the +current line length ( to be used in place of \h'\n(.lu' ). Weight of the +rule is dependent on the point size of type when \#[RULE] is called. + +***FIXES*** +PAD -- works more intuitively now when the pad string contains inline +escapes for font, point size, etc. + +UNDERLINE -- fixed character translations of digraphs so they get +underlined properly. Also fixed a bug that was causing some footnotes +to get underlined when UNDERLINE was on in the body of the document. + +***UPDATES*** +Html documentation +elvis_syn + Release 1.1.2a -------------- diff --git a/contrib/mom/TODO b/contrib/mom/TODO index dc83f119..c5f15413 100644 --- a/contrib/mom/TODO +++ b/contrib/mom/TODO @@ -5,11 +5,6 @@ control macros, or, instead, let user be able to enter absolute values with a unit of measure in addition to current behaviour, which is relative. -ENDNOTES --------- -Not entirely sure of the most flexible way to set these up. And, to be -honest, not sure how essential they are to mom's target users. - LISTS ----- Possbility of indented, nested lists, html-style. Options for numbered, diff --git a/contrib/mom/examples/elvis_syntax b/contrib/mom/examples/elvis_syntax index 1b8c7088..79d4b8f3 100644 --- a/contrib/mom/examples/elvis_syntax +++ b/contrib/mom/examples/elvis_syntax @@ -22,6 +22,15 @@ keyword .DOCTYPE .DOCTYPE_FAMILY .DOCTYPE_FONT .DOCTYPE_SIZE keyword .DRAFT .DRAFT_STRING .DRAFT_WITH_PAGENUMBER keyword .DROPCAP .DROPCAP_ADJUST .DROPCAP_FAMILY .DROPCAP_FONT .DROPCAP_GUTTER .DROPCAP_OFF keyword .EL +keyword .ENDNOTE .ENDNOTES +keyword .ENDNOTE_FAMILY .ENDNOTE_FONT .ENDNOTE_PT_SIZE .ENDNOTE_LEAD .ENDNOTE_QUAD +keyword .ENDNOTE_STRING .ENDNOTE_STRING_FAMILY .ENDNOTE_STRING_FONT .ENDNOTE_STRING_SIZE +keyword .ENDNOTE_STRING_QUAD .ENDNOTE_STRING_UNDERSCORE +keyword .ENDNOTE_TITLE .ENDNOTE_TITLE_FAMILY .ENDNOTE_TITLE_FONT .ENDNOTE_TITLE_SIZE +keyword .ENDNOTE_TITLE_QUAD .ENDNOTE_TITLE_UNDERSCORE +keyword .ENDNOTE_NUMBER_FAMILY .ENDNOTE_NUMBER_FONT .ENDNOTE_NUMBER_SIZE +keyword .ENDNOTE_NUMBERS_ALIGN_RIGHT .ENDNOTE_NUMBERS_ALIGN_LEFT +keyword .ENDNOTE_PARA_INDENT .ENDNOTE_PARA_SPACE keyword .EPIGRAPH .EPIGRAPH_AUTOLEAD .EPIGRAPH_FAMILY .EPIGRAPH_FONT keyword .EPIGRAPH_INDENT .EPIGRAPH_QUAD .EPIGRAPH_SIZE keyword .EW .EXTEND diff --git a/contrib/mom/momdoc/docelement.html b/contrib/mom/momdoc/docelement.html index 5342af0e..a8bc1c07 100644 --- a/contrib/mom/momdoc/docelement.html +++ b/contrib/mom/momdoc/docelement.html @@ -221,6 +221,11 @@ arguments as <li><a href="#FOOTNOTE">FOOTNOTE</a> <li><a href="#FOOTNOTE_CONTROL">Footnote control</a> </ul> + <li><a href="#ENDNOTE_INTRO">Endnotes</a> + <ul> + <li><a href="#ENDNOTE">ENDNOTE</a> + <li><a href="#ENDNOTE_CONTROL">Endnote control</a> + </ul> <li><a href="#FINIS_INTRO">Document termination</a> <ul> <li><a href="#FINIS">FINIS</a> @@ -239,14 +244,16 @@ arguments as </ul> <p> <a href="definitions.html#TERMS_EPIGRAPH">Epigraphs</a> -color, flavour, or comment on the text they precede. Typically, -they are centered on the page and set in a smaller point size -than that of paragraph text. +color, flavour, or comment on the document they precede. Typically, +they are centered at the top of a document's first page (underneath the +title) and set in a smaller point size than that of paragraph text. <p> By default, <strong>mom</strong> sets epigraphs centered and <a href="definitions.html#TERMS_NOFILL">unfilled</a>; this lets you input them on a line for line basis. This behaviour -can be changed to accomodate filled epigraph "blocks." +can be changed to accomodate +<a href="definitions.html#TERMS_FILLED">filled</a> +epigraph "blocks." <br> <!---EPIGRAPH---> @@ -306,7 +313,10 @@ See (The next two apply to "block" style epigraphs only) .EPIGRAPH_QUAD default = same as paragraphs -.EPIGRAPH_INDENT default = para indent x 3 (for typeset), x 2 (for typewrite) +.EPIGRAPH_INDENT* default = para indent x 3 (for typeset), x 2 (for typewrite) + +*Indent here refers to the indent from both the left and right margins + that centres the block style epigraph on the page. </pre> <hr> @@ -1073,7 +1083,8 @@ to characters that don't sit on the minus sign, and must include a unit of measure. <p> If you enter <strong>LINEBREAK_CHAR</strong> with no arguments, -sections of text will be separated by two blank lines. +sections of text will be separated by two blank lines when you invoke +<strong>LINEBREAK</strong>. <p> <strong>Mom</strong>'s default for <strong>LINEBREAK_CHAR</strong> is <p> @@ -1354,6 +1365,7 @@ spacing policy for <a name="FOOTNOTE_INTRO"><h2><u>Footnotes</u></h2></a> <ul> + <li><a href="#FOOTNOTE_BEHAVIOUR">Footnote behaviour</a> <li><a href="#FOOTNOTE">Tag: FOOTNOTE</a> <li><a href="#FOOTNOTE_CONTROL">FOOTNOTE control macros</a> </ul> @@ -1470,7 +1482,7 @@ direction and indent value. <strong>L, R,</strong> and <strong>B</strong> may be used in place of <strong>LEFT, RIGHT,</strong> and <strong>BOTH</strong>. <strong>FOOTNOTE</strong> must be invoked with <strong>INDENT</strong> -for every footnote you want indented; <strong>Mom</strong> does +for every footnote you want indented; <strong>mom</strong> does not save any footnote indent information from invocation to invocation. <p> @@ -1598,6 +1610,589 @@ is required. <!====================================================================> +<a name="ENDNOTE_INTRO"><h2><u>Endnotes</u></h2></a> +<ul> + <li><a href="#ENDNOTE_BEHAVIOUR">Endnote behaviour</a> + <ul> + <li><a href="#ENDNOTE_SPACING">A Note on Endnote Spacing</a> + <li><a href="#ENDNOTE_COLUMNS">Endnotes and columnar documents</a> + </ul> + <li><a href="#ENDNOTE">Tag: ENDNOTE</a> + <li><a href="#ENDNOTES">Macro: ENDNOTES</a> -- tell <strong>mom</strong> to output endnotes + <li><a href="#ENDNOTE_CONTROL">ENDNOTE control macros</a> +</ul> + +<p> +Embedding endnotes into <strong>mom</strong> documents is accomplished +the same way as embedding +<a href="#FOOTNOTE_INTRO">footnotes</a>. The example below is +identical to the one shown in the +<a href="#FOOTNOTE_EXAMPLE">introduction to footnotes</a>, +except that <kbd>.FOOTNOTE</kbd> has been replaced with +<kbd>.ENDNOTE</kbd>. +<p> +<a name="ENDNOTE_EXAMPLE"></a> +<pre> + ...the doctrines of Identity as urged by Schelling\c + .ENDNOTE + <endnote about who the hell is Schelling> + .ENDNOTE OFF + were generally the points of discussion presenting the most + of beauty to the imaginative Morella. +</pre> + +As with footnotes, note the obligatory use of the <strong>\c</strong> +<a href="definitions.html#TERMS_INLINES">inline escape</a>. +<p> +Endnotes differ from footnotes in two ways (other than the fact that +endnotes come at the end of a document whereas footnotes appear in the +body of the document): +<br> +<ol> + <li>Endnotes are always numbered incrementally throughout a + document. In other words, you don't get a choice of marker styles, + as you do with footnotes. + <li>Endnotes MUST be output explicitly; <strong>mom</strong> does + not output them for you. In + <a href="rectoverso.html#COLLATE">collated</a> + documents, this allows you to choose whether you + want the endnotes to appear at the end of each chapter or + section, or grouped together at the very end of the document. +</ol> +<p> +Within endnotes, you may use the document element tags +<a href="#PP">PP</a>, +<a href="#QUOTE">QUOTE</a> +and +<a href="#BLOCKQUOTE">BLOCKQUOTE</a>. +This provides the flexibility to create endnotes that run to several +paragraphs, as well as to embed cited text within endnotes. +<p> +Should you wish to change the appearance of quotes or blockquotes that +appear within endnotes, you may do so with the +<a href="#QUOTE_CONTROL">quote control macros</a> +or +<a href="#BLOCKQUOTE_CONTROL">blockquote control macros</a>. +HOWEVER... you must make the changes <em>within</em> each endnote, prior +to invoking <strong>QUOTE</strong> or <strong>BLOCKQUOTE</strong>, and +undo them prior to terminating the endnote (i.e. before <strong>ENDNOTE +OFF</strong>), otherwise the changes will affect subsequent quotes and +blockquotes that appear in the document body as well. + +<a name="ENDNOTE_BEHAVIOUR"><h3><u>Endnote behaviour</u></h3></a> +<p> +When you output endnotes (with +<a href="#ENDNOTES">ENDNOTES</a>), +<strong>mom</strong> finishes processing the last page of your document, +then breaks to a new page for printing the endnotes. If the document +type is +<a href="docprocessing.html#DOCTYPE">CHAPTER</a>, +the centre part of the +<a href="definitions.html#TERMS_HEADER">header</a> +(or footer), which, by default, contains a chapter number or title, is +removed. +<p> +By default, <strong>mom</strong> starts the endnotes page with a +bold, centered, double-underscored head, "ENDNOTES". +Underneath--flush left, bold, and underscored--she prints the document +title (or, in the case of chapters, the chapter number or title). She +then prints the endnotes. Each endnote is identified by its appropriate +number, in bold, right aligned to two placeholders. The text of the +endnotes themselves is indented to the right of the numbers. +<p> +If the endnotes are grouped together at the end of a collated document, +each section of the document that contains endnotes is identified by its +own unique title (or chapter number or title), bold, flush left, and +underscored. +<p> +Of course, all the defaults, as well as the overall style of the +endnotes page, can be changed with the +<a href="#ENDNOTE_CONTROL">endnote control macros</a>. +The attentive will notice that endnotes have an awful lot of control +macros. This is because endnotes are like a mini-document unto +themselves, and therefore need not be bound by the style parameters of +the body of the document. + +<a name="ENDNOTE_SPACING"> + <h3><u>A Note on Endnote Spacing</u></h3> +</a> +<p> +On the endnotes page(s), each new endnote is separated from the +previous endnote by a full line space. This can result in a bottom +margin that hangs, and is the one instance, other than the use of +<a href="#PP_SPACE">PARA_SPACE</a>, +where <strong>mom</strong> allows unequal bottom alignment of pages. +Should you wish to correct this, by adding or subtracting small amounts +of space between endnotes that appear together on an endnote page, make +the adjustment (with +<a href="typesetting.html#ALD">ALD</a>, +<a href="typesetting.html#RLD">RLD</a> +or +<a href="typesetting.html#SPACE">SPACE</a>) +<em>at the end of each endnote</em> (i.e. just before invoking +<a href="#ENDNOTE">ENDNOTE OFF</a>) +rather than at the top. + +<a name="ENDNOTE_COLUMNS"> + <h3><u>Endnotes and columnar documents</u></h3> +</a> +<p> +At present, there is no way to set a document in columns (see +<a href="docprocessing.html#COLUMNS">COLUMNS</a>) +and then turn off column mode for endnotes. If your document is set in +columns, your endnotes will be, too. +<br> +<hr> + +<!---ENDNOTE---> + +<p> +<a name="ENDNOTE"> + Macro: <strong>ENDNOTE</strong> <var><toggle></var> + <br> + <em>*See <a href="#ENDNOTE_NOTE">HYPER-IMPORTANT NOTE</a>!!! +</a> + +<p> +<strong>ENDNOTE</strong> is a toggle macro, therefore invoking it +on a line by itself allows you to enter an endnote in the body of a +document. Invoking it with any other argument +(i.e. <strong>OFF, QUIT, END, X...</strong>) tells <strong>mom</strong> +that you've finished the endnote. +<p> +<strong>NOTE:</strong> If an endnote runs to more than one paragraph, +<strong>DO NOT</strong> begin the endnote with the +<a href="#PP">PP</a> +tag. Use <strong>PP</strong> only to introduce subsequent paragraphs. +<p> +<a name="ENDNOTE_NOTE"><strong>HYPER-IMPORTANT NOTE:</strong></a> +The final word on the +<a href="definitions.html#TERMS_INPUTLINE">input line</a> +that comes immediately before <strong>ENDNOTE</strong> MUST terminate +with a +<a href="typesetting.html#JOIN">\c</a> +inline escape. Otherwise, the endnote number for the word won't be attached to +it (i.e. <strong>mom</strong> will insert a word space between the word +and the number). See the +<a href="#ENDNOTE_EXAMPLE">endnote example</a> +above. +<br> + +<!---ENDNOTES---> + +<hr width="66%" align="left"> +<p> +<a name="ENDNOTES">Macro: <strong>ENDNOTES</strong></a> + +<p> +Unlike footnotes, which <strong>mom</strong> automatically outputs at the +bottom of pages, endnotes must be explicitly output by you, the user. +<strong>ENDNOTES</strong>, by itself (i.e. without any argument), is +the macro to do this. +<p> +Typically, you'll use <strong>ENDNOTES</strong> at the end of +a document. If it's a single (i.e. not collated) document, +<strong>mom</strong> will print the endnotes pertaining to it. If it's +a collated document, <strong>mom</strong> will print all the endnotes +contained within all sections of the document (typically chapters), +appropriately identified and numbered. +<p> +Should you wish to output the endnotes for each section of a collated +document at the ends of the sections (instead of at the very end of the +document), simply invoke <strong>ENDNOTES</strong> immediately prior to +<a href="rectoverso.html#COLLATE">COLLATE</a>. +<strong>Mom</strong> will print the endnotes, identified and numbered +appropriately, on a separate page prior to starting the next section of +the document. Each subsequent invocation of <strong>ENDNOTES</strong> +outputs only those endnotes that <strong>mom</strong> collected +after the previous invocation. +<br> +<hr width="66%" align="left"> + +<a name="ENDNOTE_CONTROL"><h3><u>Endnote control macros</u></h3></a> +<p> +Every time you embed an endnote in the body of a document, +<strong>mom</strong> collects <em>and processes</em> the endnote for +later outputting when you invoke +<a href="#ENDNOTES">ENDNOTES</a>. +For this reason, endnote control macros should always be invoked prior +to the first instance of +<a href="#ENDNOTE">ENDNOTE/ENDNOTE OFF</a>. +<br> +<ol> + <li><a href="#ENDNOTES_GENERAL"><strong>General endnotes-pages style control</strong></a> + <ul> + <li><a href="#ENDNOTE_GENERAL">Base family/font/quad for endnotes-pages</a> + <li><a href="#ENDNOTE_PT_SIZE">Base point size for the endnotes-pages</a> + <li><a href="#ENDNOTE_LEAD">Leading of endnotes-pages</a> + <li><a href="#ENDNOTE_PARA_INDENT">Size of paragraph first line indent in multi-paragraph endnotes</a> + <li><a href="#ENDNOTE_PARA_SPACE">Inserting space between paragraphs of multi-paragraph endnotes</a> + </ul> + <li><a href="#ENDNOTES_MAIN_TITLE"><strong>Endnotes-page head control</strong></a> + <ul> + <li><a href="#ENDNOTE_STRING">Creating/modifying the endnotes-page head</a> + <li><a href="#ENDNOTE_STRING_CONTROL">Endnotes-page head control</a> + <li><a href="#ENDNOTE_STRING_UNDERSCORE">Endnotes-page head underscoring</a> + </ul> + <li><a href="#ENDNOTES_DOC_TITLE"><strong>Endnote document-identification title</strong></a> + <ul> + <li><a href="#ENDNOTE_TITLE">Creating/modifying the endnote document-identification title</a> + <li><a href="#ENDNOTE_TITLE_CONTROL">Document-identification title control</a> + <li><a href="#ENDNOTE_TITLE_UNDERSCORE">Document-identification title underscoring</a> + </ul> + <li><a href="#ENDNOTES_NUMBERING"><strong>Endnotes-pages endnote numbering style</strong></a> + <ul> + <li><a href="#ENDNOTE_NUMBER_CONTROL">Endnotes-pages endnote numbering style control</a> + <li><a href="#ENDNOTE_NUMBER_ALIGNMENT">Endnote numbering alignment</a> + <ul> + <li><a href="#ENDNOTE_NUMBERS_ALIGN_RIGHT">ENDNOTE_NUMBERS_ALIGN_RIGHT</a> + <li><a href="#ENDNOTE_NUMBERS_ALIGN_LEFT">ENDNOTE_NUMBERS_ALIGN_LEFT</a> + </ul> + </ul> +</ol> +<hr> + +<a name="ENDNOTES_GENERAL"><h2><u>1. General endnotes page style control</u></h2> + +<a name="ENDNOTE_GENERAL"><h3><u>Endnote family/font/quad</u></h3></a> +<p> +See +<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>. +<p> +<pre> +.ENDNOTE_FAMILY default = prevailing document family; default is Times Roman +.ENDNOTE_FONT default = roman +.ENDNOTE_QUAD default = justified +</pre> + +<!---ENDNOTE_PT_SIZE---> + +<a name="ENDNOTE_PT_SIZE"><h3><u>Endnote point size</u></h3></a> +<p> +Macro: <strong>ENDNOTE_PT_SIZE</strong> <var><base type size of endnotes></var> + +<p> +Unlike most other control macros that deal with size of document +elements, <strong>ENDNOTE_PT_SIZE</strong> takes as its argument an +absolute value, relative to nothing. Therefore, the argument represents +the size of endnote type in +<a href="definitions.html#TERMS_PICASPOINTS">points</a>, +unless you append an alternative +<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>. +For example, +<p> +<pre> + .ENDNOTE_PT_SIZE 12 +</pre> + +sets the base point size of type on the endnotes page to 12 +points, whereas +<p> +<pre> + .ENDNOTE_PT_SIZE .6i +</pre> + +sets the base point size of type on the endnotes page to 1/6 of an +inch. +<p> +The type size set with <strong>ENDNOTE_PT_SIZE</strong> is the size of +type used for the text of the endnotes, and forms the basis from which +the point size of other endnote page elements is calculated. +<p> +The default for +<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a> +is 12 points (the same default size used in the body of the document). + +<!---ENDNOTE_LEAD---> + +<a name="ENDNOTE_LEAD"><h3><u>Endnote lead</u></h3></a> +<p> +Macro: <strong>ENDNOTE_LEAD</strong> <var><base leading of endnotes></var> + +<p> +Unlike most other control macros that deal with leading of document +elements, <strong>ENDNOTE_LEAD</strong> takes as its argument an +absolute value, relative to nothing. Therefore, the argument represents +the +<a href="definitions.html#TERMS_LEADING">leading</a> +of endnotes in +<a href="definitions.html#TERMS_PICASPOINTS">points</a> +unless you append an alternative +<a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>. +For example, +<p> +<pre> + .ENDNOTE_LEAD 14 +</pre> + +sets the base leading of type on the endnotes page to 14 +points, whereas +<p> +<pre> + .ENDNOTE_LEAD .5i +</pre> + +sets the base leading of type on the endnotes page to 1/2 inch. +<p> +The default for +<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a> +is 14 points. + +<!---ENDNOTE_PARA_INDENT---> + +<a name="ENDNOTE_PARA_INDENT"><h3><u>Endnote paragraph indent</u></h3></a> +<p> +Macro: <strong>ENDNOTE_PARA_INDENT</strong> <var><amount to indent first line of paragraphs in endnotes></var> +<br> +<em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em> + +<p> +<strong>ENDNOTE_PARA_INDENT</strong> works exactly the same way as +<a href="#PARA_INDENT">PARA_INDENT</a>, +except that the indent given is the amount by which to indent the first +lines of endnote paragraphs, not document body paragraphs. +<p> +The default is 1.5 +<a href="definitions.html#TERMS_EM">ems</a> +for +<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>; +1/2 inch for +<a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>. + +<p> +<strong>NOTE:</strong> The first line of the first paragraph of endnotes +(the one attached immediately to the identifying endnote number) is +never indented. Only subsequent paragraphs are affected by +<strong>ENDNOTE_PARA_INDENT</strong>. + +<!---ENDNOTE_PARA_SPACE---> + +<a name="ENDNOTE_PARA_SPACE"><h3><u>Endnote paragraph spacing</u></h3></a> +<p> +Macro: <strong>ENDNOTE_PARA_SPACE</strong> <var><toggle></var> + +<p> +<strong>ENDNOTE_PARA_SPACE</strong> works exactly the same way as +<a href="#PP_SPACE">PARA_SPACE</a>, +except that it inserts a blank line between endnote paragraphs, not +document body paragraphs. +<p> +The default is not to insert a blank line between paragraphs in +endnotes. +<p> +<strong>NOTE:</strong> Each endnote itself is always separated from any +previous endnote by a line space. <strong>ENDNOTE_PARA_SPACE</strong> +refers only to paragraphs that appear within each discrete endnote. + +<a name="ENDNOTES_MAIN_TITLE"><h2><u>2. Endnotes page head control</u></h2> + +<!---ENDNOTE_STRING---> + +<a name="ENDNOTE_STRING"><h3><u>Endnotes-page head string</u></h3></a> +<p> +Macro: <strong>ENDNOTE_STRING</strong> <var>"<head to print at the top of endnotes>"</var> + +<p> +By default, <strong>mom</strong> prints the word "ENDNOTES" +as a head at the top of the first page of endnotes. If you want her +to print something else, invoke <strong>ENDNOTE_STRING</strong> with +the endnotes-page head you want, surrounded by double-quotes. If +you don't want a head at the top of the first endnotes-page, invoke +<strong>ENDNOTE_STRING</strong> with a blank argument (either two +double-quotes side by side -- <kbd>""</kbd> -- or no argument +at all). + +<!---ENDNOTE_STRING_CONTROL---> + +<a name="ENDNOTE_STRING_CONTROL"><h3><u>Endnotes-page head control</u></h3></a> +<p> +See +<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>. +<p> +<pre> +.ENDNOTE_STRING_FAMILY default = prevailing document family; default is Times Roman +.ENDNOTE_STRING_FONT* default = bold +.ENDNOTE_STRING_SIZE default = +1 +.ENDNOTE_STRING_QUAD default = centered + +*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE) +</pre> + +<!---ENDNOTE_STRING_UNDERSCORE---> + +<a name="ENDNOTE_STRING_UNDERSCORE"><h3><u>Endnotes-page head underscoring</h3></u></a> +<p> +Macro: <strong>ENDNOTE_STRING_UNDERSCORE</strong> <var>toggle | 2</var> + +<p> +Invoked by itself, <strong>ENDNOTE_STRING_UNDERSCORE</strong> will +underscore the endnotes-page head. Invoked with the argument 2 +(i.e. the digit 2), <strong>ENDNOTE_STRING_UNDERSCORE</strong> will +double-underscore the head. Invoked with any other argument, the macro +disables underscoring of the head. +<p> +<strong>Mom</strong>'s default is to double-underscore the +head, therefore if you want no underscoring, you must insert +<kbd>.ENDNOTE_STRING_UNDERSCORE OFF</kbd> (or <kbd>QUIT, X, NO, +NONE,</kbd> etc.) into your document prior to outputting endnotes with +<a href="#ENDNOTES">ENDNOTES</a>. + +<!---ENDNOTE_TITLE---> + +<a name="ENDNOTES_DOC_TITLE"><h2><u>3. Endnote document-identification title</u></h2> +<a name="ENDNOTE_TITLE"><h3><u>Endnote document-identification title string</u></h3></a> +<p> +Macro: <strong>ENDNOTE_TITLE</strong> <var>"<title to identify a document in endnotes>"</var> + +<p> +By default, <strong>mom</strong> identifies the document(s) to which +endnotes belong by the document title(s) given to the +<a href="docprocessing.html#TITLE">TITLE</a> +macro. If you want her to identify the document(s) another way, +invoke <strong>ENDNOTE_TITLE</strong> with the identifying title you +want, surrounded by double-quotes. If you don't any identifying title, +invoke <strong>ENDNOTE_TITLE</strong> with a blank argument (either two +double-quotes side by side -- <kbd>""</kbd> -- or no argument +at all). + +<!---ENDNOTE_TITLE_CONTROL---> + +<a name="ENDNOTE_TITLE_CONTROL"><h3><u>Endnote document-identification title control</u></h3></a> +<p> +See +<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>. +<p> +<pre> +.ENDNOTE_TITLE_FAMILY default = prevailing document family; default is Times Roman +.ENDNOTE_TITLE_FONT default = bold +.ENDNOTE_TITLE_SIZE* default = 0 +.ENDNOTE_TITLE_QUAD default = left + +*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE) +</pre> + +<!---ENDNOTE_TITLE_UNDERSCORE---> + +<a name="ENDNOTE_TITLE_UNDERSCORE"><h3><u>Endnote document-identification title underscoring</h3></u></a> +<p> +Macro: <strong>ENDNOTE_TITLE_UNDERSCORE</strong> <var>toggle</var> + +<p> +Inovked by itself, <strong>ENDNOTE_TITLE_UNDERSCORE</strong> will +underscore the endnote document-identification title. Invoked with any +other argument, the macro disables underscoring of the title. +<p> +<strong>Mom</strong>'s default is to underscore the document-identification title, therefore if you want no underscoring, you must +insert <kbd>.ENDNOTE_TITLE_UNDERSCORE OFF</kbd> (or <kbd>QUIT, X, NO, +NONE,</kbd> etc.) into your document prior to outputting endnotes with +<a href="#ENDNOTES">ENDNOTES</a>. + +at all. + +<!---ENDNOTE_NUMBERING---> + +<a name="ENDNOTES_NUMBERING"><h2><u>4. Endnotes-pages endnote numbering style</u></h2> + +<a name="ENDNOTE_NUMBER_CONTROL"><h3><u>Endnote numbering style control</u></h3></a> +<p> +See +<a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>. +<p> +Please note that the control macros for endnote numbering affect only +the numbers that appear on the endnotes pages themselves, not the +endnote numbers that appear in the body of the document(s). +<p> +<pre> +.ENDNOTE_NUMBER_FAMILY default = prevailing document family; default is Times Roman +.ENDNOTE_NUMBER_FONT default = bold +.ENDNOTE_NUMBER_SIZE* default = 0 + +*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE) +</pre> + +<a name="ENDNOTE_NUMBER_ALIGNMENT"><h3><u>Endnote numbering alignment</u></h3></a> +<p> +By default, <strong>mom</strong> hangs the numbers on endnotes pages, +aligned right to two placeholders, producing this: +<p> +<a name="ENDNOTE_NUMBERING_ALIGNMENT_EXAMPLE"></a> +<pre> + 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, + sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. + + 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, + sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. +</pre> + +The macros to alter this behaviour are +<br> +<ul> + <li><a href="#ENDNOTE_NUMBERS_ALIGN_RIGHT"><strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong></a> + <li><a href="#ENDNOTE_NUMBERS_ALIGN_LEFT"><strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong></a> +</ul> +<br> +<hr width="66%" align="left"> + +<!---ENDNOTE_NUMBERS_ALIGN_RIGHT---> + +<p> +<a name="ENDNOTE_NUMBERS_ALIGN_RIGHT"> + Macro: <strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> <var><number of placeholders></var> +</a> +<p> +<strong>ENDNOTE_NUMBERS_ALIGN_RIGHT</strong> takes one (non-optional) +argument: the number of placeholders to reserve for right alignment of +endnote numbers. +<p> +For example, if you have fewer than ten endnotes, you might want to do +<p> +<pre> + .ENDNOTE_NUMBERS_ALIGN_RIGHT 1 +</pre> + +which would ensure that the endnote numbers hang, but are all flush +with the page's left margin. If, god help you, you have over a hundred +endnotes, you'd want to do +<p> +<pre> + .ENDNOTE_NUMBERS_ALIGN_RIGHT 3 +</pre> + +to ensure that the numbers hang and are properly right-aligned. +<br> +<hr width="66%" align="left"> + +<!---ENDNOTE_NUMBERS_ALIGN_LEFT---> + +<p> +<a name="ENDNOTE_NUMBERS_ALIGN_LEFT"> + Macro: <strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong> +</a> +<p> +If you don't want the endnote numbers to hang and right-align, invoke +<strong>ENDNOTE_NUMBERS_ALIGN_LEFT</strong>, which doesn't require any +argument. This disables hanging and right-alignment of endnote numbers, +so that the example +<a href="#ENDNOTE_NUMBERING_ALIGNMENT_EXAMPLE">above</a> +comes out like this: +<p> +<pre> + 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, + sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. + + 10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, + sed diam nonumy eirmod tempor invidunt ut labore et + dolore magna aliquyam erat, sed diam voluptua. +</pre> + +<br> +<hr> + +<!====================================================================> + <a name="FINIS_INTRO"><h2><u>Terminate document processing</u></h2></a> <ul> <li><a href="#FINIS">Tag: FINIS</a> diff --git a/contrib/mom/momdoc/docprocessing.html b/contrib/mom/momdoc/docprocessing.html index 64be7ea5..059d9665 100644 --- a/contrib/mom/momdoc/docprocessing.html +++ b/contrib/mom/momdoc/docprocessing.html @@ -132,6 +132,11 @@ <li><a href="docelement.html#FOOTNOTE">FOOTNOTE</a> <li><a href="docelement.html#FOOTNOTE_CONTROL">Footnote control</a> </ul> + <li><a href="docelement.html#ENDNOTE_INTRO"><strong>Endnotes</strong></a> + <ul> + <li><a href="docelement.html#ENDNOTE">ENDNOTE</a> + <li><a href="docelement.html#ENDNOTE_CONTROL">Endnote control</a> + </ul> <li><a href="docelement.html#FINIS_INTRO"><strong>Document termination</strong></a> <ul> <li><a href="docelement.html#FINIS">FINIS</a> @@ -189,13 +194,9 @@ <li><a href="letters.html#TUTORIAL">Tutorial on writing letters</a> <li><a href="letters.html#LETTERS_DEFAULTS">Default style for letters</a> <li><a href="letters.html#LETTERS_MACROS">The letter macros</a> - - - </ul> </ul> </ul> -<br> <hr> <h2><a name="INTRO_MACROS_DOCPROCESSING"><u>Introduction to document processing</u></a></h2> @@ -803,18 +804,21 @@ for how <strong>mom</strong>'s outputs each part of the page header.) <strong>CHAPTER</strong> prints "Chapter #" in place of a <a href="definitions.html#TERMS_DOCHEADER">docheader</a> (# is what you gave to -<a href="#CHAPTER">CHAPTER</a>). -Page headers contain the author, the title of the book (which -you gave with +<a href="#CHAPTER">CHAPTER</a>), +or, if you omit the <strong>CHAPTER</strong> macro and give the chapter +a title with +<a href="#CHAPTER_STRING">CHAPTER_STRING</a>, +<strong>mom</strong> prints the chapter title. Page headers contain the +author, the title of the book (which you gave with <a href="#TITLE">TITLE</a>), -and "Chapter #". (See +and "Chapter #" (or the chapter title). See <a href="headfootpage.html#HEADER_STYLE">Default Specs for Headers</a> for <strong>mom</strong>'s default type parameters for each part of -the page header.) +the page header. <p> <em>*See the <a href="#CHAPTER_NOTE">Special Note on CHAPTER</a> -below for how you can make CHAPTER print something +below for how you can make DOCTYPE CHAPTER print something other than "Chapter #" as its docheader.</em> <p> <strong>NAMED</strong> takes an additional argument: a name @@ -840,23 +844,28 @@ introduced by "Chapter #". Other types of documents (reports and so on) often require specific titles for chapters. If your document is of this latter type, use <strong>DOCTYPE CHAPTER</strong> in the following way: -<p> +<br> <ol> <li>Omit the <a href="#REFERENCE_MACROS">reference macro</a> <a href="#CHAPTER">CHAPTER</a> <li>Invoke - <a href="#CHAPTER_STRING"><code>.CHAPTER_STRING</code></a> + <a href="#CHAPTER_STRING">.CHAPTER_STRING</a> with the title you'd like the chapter to have (enclosed in double-quotes, of course). - <li>Optionally, if you'd like the chapter title to appear - in the the center part of - <a href="definitions.html#TERMS_HEADER">page headers</a> - (its default location), invoke - <a href="headfootpage.html#HDRFTR_CENTER"><code>.HEADER_CENTER</code></a> - with the same title you gave to <strong>CHAPTER_STRING</strong>. - </ol> +<p> +Here's a recipe for setting up a chapter entitled "The DMCA +Nazis". +<pre> + .AUTHOR "Outraged Hacker" + .TITLE "Limiting Copyright" + \# + .DOCTYPE CHAPTER + .PRINTSTYLE TYPESET + \# + .CHAPTER_STRING "The DMCA Nazis" +</pre> <br> <!---PRINTSTYLE---> diff --git a/contrib/mom/momdoc/goodies.html b/contrib/mom/momdoc/goodies.html index 44e0085c..c95e7334 100644 --- a/contrib/mom/momdoc/goodies.html +++ b/contrib/mom/momdoc/goodies.html @@ -599,7 +599,10 @@ Basically, what the example does is: to advance a line at this point) <br> <li>Calls the first string tab and draws a rule to its full - length + length (<kbd>\l'\n(.lu'</kbd>; for an easier way to draw a rule + that fills a tab, see + <a href="inlines.html#INLINE_RULE_MOM">Full measure + rules</a>). <br> <li>Calls the second tab with <a href="#TN">TN</a> diff --git a/contrib/mom/momdoc/inlines.html b/contrib/mom/momdoc/inlines.html index 8a19d308..ffc3b4ca 100644 --- a/contrib/mom/momdoc/inlines.html +++ b/contrib/mom/momdoc/inlines.html @@ -88,6 +88,7 @@ that take <li><a href="#INLINE_KERNING_MOM">Pairwise kerning</a> <li><a href="#INLINE_HORIZONTAL_MOM">Horizontal movement</a> <li><a href="#INLINE_VERTICAL_MOM">Vertical movement</a> + <li><a href="#INLINE_RULE_MOM">Full measure rules</a> </ul> <li><a name="INLINES_GROFF"><strong>Groff inline escapes</strong></a> <ul> @@ -282,6 +283,32 @@ more than 12.75 points, or wish to use a other than points, use the groff inline <a href="#INLINE_VERTICAL_GROFF">\v</a>. <br> + +<!---INLINE_RULE_MOM---> + +<hr width="66%" align="left"> +<a name="INLINE_RULE_MOM"><h3><u>Full measure rules</u></h3></a> + +<p> +I find I often need rules drawn to the full measure of the current line +or tab length. The official way to do this is <kbd>\l'\n(.lu'</kbd>, +which is annoying to type, and doesn't mean a whole heck of a lot if +you're new to groff. The inline, <strong>\*[RULE]</strong>, is a simple +replacement for <strong>\l'\n(.lu'</strong>. Use it whenever you need +a rule drawn to the full measure of the current line or tab length, for +example: +<p> +<pre> + .LL 6P + \*[RULE] +</pre> + +The above draws a rule the full measure of the 6-pica line length. +<p> +See groff's +<a href="#INLINE_LINEDRAWING_GROFF">Horizontal line drawing function</a> +for more information on drawing horizontal rules. +<br> <hr> <!---INLINE_FONT_GROFF---> @@ -436,6 +463,10 @@ Therefore, to set a 3-pica rule into a line of text, you'd do <strong>\l'3P'</strong> above not only draws the rule, but advances 3 picas horizontally as well, just as you'd expect. <p> +For an easy way of drawing rules to the full measure of the current +line or tab length, see +<a href="#INLINE_RULE_MOM">Full measure rules</a>. +<p> The weight (thickness) of rules varies according to the point size in effect when you invoke <strong>\l</strong>, but you can't fix the weight with any real precision. A point size of 12 produces diff --git a/contrib/mom/momdoc/rectoverso.html b/contrib/mom/momdoc/rectoverso.html index 161e475f..88e661ea 100644 --- a/contrib/mom/momdoc/rectoverso.html +++ b/contrib/mom/momdoc/rectoverso.html @@ -203,11 +203,11 @@ files, chances are the <strong>PRINTSTYLE</strong>'s already there. <a name="CAUTION"></a> <strong><u>Two words of caution:</u></strong> <ol> - <li>do not collate documents of differing + <li>Do not collate documents of differing <strong>PRINTSTYLES</strong> (i.e. don't try to collate a TYPESET document and TYPEWRITE document -- why would you want to do that anyway?) - <li>use <strong>DOC_FAMILY</strong> instead of + <li>Use <strong>DOC_FAMILY</strong> instead of <strong>FAMILY</strong> if, for some reason, you want to change the family of all the document elements after <strong>COLLATE</strong>. <strong>FAMILY</strong>, by @@ -240,7 +240,6 @@ that require their own titles, looks like this: <pre> .COLLATE .CHAPTER_STRING "Geek Fatigue: Symptoms and Causes" - .HEADER_CENTER "Geek Fatigue: Symptoms and Causes" .START </pre> diff --git a/contrib/mom/momdoc/reserved.html b/contrib/mom/momdoc/reserved.html index ab7b7a77..b8041f38 100644 --- a/contrib/mom/momdoc/reserved.html +++ b/contrib/mom/momdoc/reserved.html @@ -7,23 +7,7 @@ <!====================================================================> -<a href="appendices.html#TOP">Prev</a> -<a href="toc.html">Back to Table of Contents</a> - -<a name="TOP"></a> -<a name="RESERVED"> - <h2 align="center"><u>LIST OF RESERVED WORDS</u></h2> -</a> - -<p> -The following is a list of "reserved" words used by -<strong>mom</strong>. Before changing the name of any macro or -document element tag with -<a href="goodies.html#ALIAS">ALIAS</a>, -I strongly recommend doing a search of this page for your proposed -new name. If you find it in the left hand column, DON'T USE IT. -Choose something else instead. -<p> +<a href="appendices.html#TOP">Prev</a> <a href="toc.html">Back to Table of Contents</a> <a name="TOP"></a> <a name="RESERVED"> <h2 align="center"><u>LIST OF RESERVED WORDS</u></h2> </a> <p> The following is a list of "reserved" words used by <strong>mom</strong>. Before changing the name of any macro or document element tag with <a href="goodies.html#ALIAS">ALIAS</a>, I strongly recommend doing a search of this page for your proposed new name. If you find it in the left hand column, DON'T USE IT. Choose something else instead. <p> Anyone interested in playing around inside <strong>mom</strong>'s macro file (om.tmac) will find this list useful as well since it lists all (I hope) the macros, strings, and number registers <strong>mom</strong> @@ -185,6 +169,9 @@ c column mark #DEGREES # of degrees slant for pseudo-italic #EXTEND Are we in pseudo-extend mode? (toggle) #EXT_WIDTH Width of pseudo-extended type (pointsize x $EXT_PERCENT) +#FONT_FOR_PAD Used to ensure that the font in effect prior + to PAD is restored at the start of every iteration + of $PAD_STRING #H_INDENT Value of left indent when IH #HL_INDENT Value of the hang when IH #HYPHENATE Hyphenation on? (toggle) @@ -227,6 +214,9 @@ p Output line horiz position at end of $PAD_STRING #RLD RLD value #R_MARGIN Right margin #SILENT Is silent on? (toggle) +#SIZE_FOR_PAD Used to ensure that the size in effect prior + to PAD is restored at the start of every iteration + of $PAD_STRING #SLANT_ON Is SLANT on? (toggle) #SMART_QUOTES Smartquotes on? (toggle) #SPACE_TO_END Whitespace at end of string passed to PAD @@ -255,6 +245,9 @@ $DC_FAM Drop cap family $DC_FT Drop cap font $EXT_PERCENT Percentage by which to pseudo-extend type $FAMILY Family +$FAMILY_FOR_PAD Used to ensure that the family in effect prior + to PAD is restored at the start of every iteration + of $PAD_STRING $FONT Font $PAD_MARKER Character to mark off padding in PAD $PAD_STRING Arg passed to PAD @@ -324,6 +317,7 @@ EXTEXT Extended superscript EXT Pseudo-extend type EXTSUPX Extended superscript off LEADER Deposit leader to end of current LL or TAB +RULE Draw a rule to the full measure of the current line or tab length SLANT Slant (pseudo-italic on SLANTX Slant off ST<#> String tab end marker @@ -366,6 +360,8 @@ Document tags BLOCKQUOTE Block-indented, quoted text COL_BREAK Breaks and spreads line before invocation; moves to next column on page or 1st col of next page. An alias of COL_NEXT. COL_NEXT Moves to next column on page or 1st col of next page +ENDNOTE Endnote +ENDNOTES Output endnotes EPIGRAPH Epigraph before 1st para FINIS Prints --END-- FOOTNOTE Collects footnotes in text for printing at bottom of page @@ -418,6 +414,30 @@ DOCTYPE Type of doc (DEFAULT, CHAPTER, NAMED, LETTER) DO_QUOTE Print quote (invoked from QUOTE or BLOCKQUOTE) DRAFT_STRING What to print whenever the word "draft" is required DRAFT_WITH_PAGENUMBER Attach draft/revision info to page number (instead of putting it HEADER center) +ENDNOTE_FAMILY Family for endnotes +ENDNOTE_FONT Font for endnotes +ENDNOTE_LEAD Leading for endnotes page +ENDNOTE_PARA_INDENT First line indent of paras in multi-para endnotes +ENDNOTE_PARA_SPACE Whether to space paras in multi-para endnotes +ENDNOTE_PT_SIZE Base point size for endnotes page +ENDNOTE_QUAD Endnote quad +ENDNOTE_STRING Endnotes page head +ENDNOTE_STRING_FAMILY Family for endnotes page head +ENDNOTE_STRING_FONT Font for endnotes page head +ENDNOTE_STRING_QUAD Quad direction for endnotes page head +ENDNOTE_STRING_SIZE Size for endnotes page head +ENDNOTE_STRING_UNDERSCORE Underscoring of endnotes page head +ENDNOTE_TITLE Endnotes identifying title +ENDNOTE_TITLE_FAMILY Family for endnotes identifying title +ENDNOTE_TITLE_FONT Font for endnotes identifying title +ENDNOTE_TITLE_QUAD Quad direction for endnotes identifying title +ENDNOTE_TITLE_SIZE Size for endnotes identifying title +ENDNOTE_TITLE_UNDERSCORE Underscoring of endnotes identifying title +ENDNOTE_NUMBER_FAMILY Family of endnote numbers +ENDNOTE_NUMBER_FONT Font of endnote numbers +ENDNOTE_NUMBER_SIZE Size of endnote numbers +ENDNOTE_NUMBERS_ALIGN_RIGHT Hang endnote numbers and align right +ENDNOTE_NUMBERS_ALIGN_LEFT Dont' hang endnote numbers and align left EPIGRAPH_AUTOLEAD Autolead value for epigraphs EPIGRAPH_FAMILY Family to use in epigraphs EPIGRAPH_FONT Font to use in epigraphs @@ -602,7 +622,19 @@ dc "mark" register for document columns #DRAFT The draft number #DRAFT_WITH_PAGENUM Are we attaching draft/revision info to page number? (toggle) #EM_ADJUST Amount to raise \(em at END +#EN_PS ps of endnotes +#EN_LEAD Lead of endnotes +#EN_STRING_UNDERSCORE Underscore endnotes page head? (toggle) +#EN_TITLE_UNDERSCORE Underscore endnotes document identifier? (toggle) +#EN_NUMBERS_ALIGN_RIGHT Hang and align endnote numbers right? (toggle) +#EN_NUMBERS_ALIGN_LEFT Align endnote numbers with left margin? (toggle) +#EN_NUMBERS_PLACEHOLDERS Number of placeholders when endnote numbers hang and align right +#EN_NUMBER_L_LENGTH Line length for endnote numbers when they're right aligned +#EN_PP_INDENT First line indent of paras in multi-para endnotes +#EN_PP_SPACE Space multi-paras in endnotes? (toggle) +#EN_TEXT_INDENT Page offset for text of endnotes when numbers right align #END_QUOTE For PP=0 indenting; did we just end a quote? (toggle) +#ENDNOTE Are we in an endnote? (toggle) #EPI_ACTIVE Are we in an epigraph? (toggle) #EPI_DEPTH Depth of epigraph from first baseline to last #EPI_FITS Does epigraph fit on page/column? (toggle) @@ -671,6 +703,7 @@ dc "mark" register for document columns #L_MARGIN_DIFF Difference between DOC_L_MARGIN and L_MARGIN #n%_AT_PAGENUM_SET Page # from n% when PAGENUMBER invoked #NEXT_AUTHOR Supplies correct digit to AUTHOR_<#> when printing authors in doc header +#NO_TRAP_RESET Should we reset page traps? (toggle) #NUM_AUTHORS # of authors mod 2 to test if odd or even # of authors #NUMBER_HEAD Are heads numbered? (toggle) #NUMBER_PH Are paraheads numbered? (toggle) @@ -709,8 +742,13 @@ dc "mark" register for document columns #QUOTE 1=PQUOTE, 2=BQUOTE #RECTO_VERSO Switch HEADER_LEFT and HEADER_RIGHT on alternate pages? (toggle); default=0 #REPEAT Number of times to repeat linebreak character +#RESET_EN_PP Holds value of register #EN_PP_INDENT #RESET_FN_NUMBER Should fn# start at 1 on every page? (toggle) +#RESET_L_LENGTH Stores current line length when necessary +#RESET_PARA_SPACE Holds current value of toggle register #PP_SPACE #RESET_PP_INDENT Stores value of PP_INDENT when necessary +#RESET_QUOTE_SPACING Stores value of toggle register #FULLSPACE_QUOTES (used in endnotes) +#RESTORE_DOC_LEAD Holds value of current doc lead (used in endnotes) #RESTORE_OFFSET Page offset at moment footer trap is sprung; not currently used #REVISION The revision number #RIGHT_CAP_HEIGHT Cap height of right string in headers/footers @@ -760,6 +798,22 @@ $DOCTYPE_FAM Family to use for DOCTYPE string in doc header $DOCTYPE_FT Font to use for DOCTYPE string in doc header $DOCTYPE_SIZE_CHANGE ps in/decrease of DOCTYPE string in doc header* $DRAFT_STRING What to print whenever the word "draft" is required +$EN_FAMILY Family for endnotes +$EN_FT Font for endnotes +$EN_QUAD Quad for endnotes +$EN_STRING Endnotes page head +$EN_STRING_FAM Endnotes page head family +$EN_STRING_FT Endnotes page head font +$EN_STRING_QUAD Endnotes page head quad direction +$EN_STRING_SIZE_CHANGE Endnotes page head size*** +$EN_TITLE Endnote document identifier +$EN_TITLE_FAM Endnote document identifier family +$EN_TITLE_FT Endnote document identifier font +$EN_TITLE_QUAD Endnote document identifier quad direction +$EN_TITLE_SIZE_CHANGE Endnote document identifier size*** +$EN_NUMBER_FAM Endnote numbering family +$EN_NUMBER_FT Endnote numbering font +$EN_NUMBER_SIZE_CHANGE Endnote numbering size*** $EPI_AUTOLEAD Autolead value (decimals ok) of epigraphs $EPI_FAM Family to use in epigraphs $EPI_FT Font to use in epigraphs @@ -818,8 +872,9 @@ $TITLE_SIZE_CHANGE ps in/decrease of title in doc header* $USERDEF_HDRFTR_RECTO User defined header/footer recto string $USERDEF_HDRFTR_VERSO User defined header/footer verso string - *relative to #DOC_PT_SIZE -**relative to overall ps of headers as set by HEADER_SIZE + *relative to #DOC_PT_SIZE + **relative to overall ps of headers as set by HEADER_SIZE +***relative to overall ps of endnotes +++PREPROCESSOR KEYWORDS+++ diff --git a/contrib/mom/momdoc/toc.html b/contrib/mom/momdoc/toc.html index 62404177..e3dccf17 100644 --- a/contrib/mom/momdoc/toc.html +++ b/contrib/mom/momdoc/toc.html @@ -154,7 +154,8 @@ <li><a href="docelement.html#QUOTE_INTRO">5.4.8 Quotes</a> -- line for line poetic quotes <li><a href="docelement.html#BLOCKQUOTE_INTRO">5.4.9 Blockquotes</a> -- cited material <li><a href="docelement.html#FOOTNOTE_INTRO">5.4.10 Footnotes</a> - <li><a href="docelement.html#FINIS_INTRO">5.4.11 Document termination</a> -- FINIS + <li><a href="docelement.html#ENDNOTE_INTRO">5.4.11 Endnotes</a> + <li><a href="docelement.html#FINIS_INTRO">5.4.12 Document termination</a> -- FINIS </ul> <li><a href="headfootpage.html#HEADFOOTPAGE"><strong>5.5 DOCUMENT HEADERS AND FOOTERS</strong></a> <ul> diff --git a/contrib/mom/om.tmac b/contrib/mom/om.tmac index bc041a51..4f9839f2 100644 --- a/contrib/mom/om.tmac +++ b/contrib/mom/om.tmac @@ -23,7 +23,11 @@ .\" . . -\# Version 1.1.2a +\# Version 1.1.3 +\# ------------- +\# +.if (\n[.x]\n[.y] < 118) \ +. ab You need GNU troff version 1.18 or higher to run this version of mom! \# \# Inasmuch as possible, macros that turn a feature on or off follow \# a similar style. Invoking the macro without an argument turns @@ -73,8 +77,8 @@ \# \# ==================================================================== \# -\# END MACRO -\# --------- +\# END MACRO FOR LETTERS +\# --------------------- \# *Arguments: \# none \# *Function: @@ -187,7 +191,7 @@ . nr #T_MARGIN_SET 1 . if !\\n[#DOCS] \{\ . PRINT \& -. sp |\\n[#T_MARGIN]u-1v +. sp |\\n[#T_MARGIN]u-1v . \} . wh 0i DO_T_MARGIN .END @@ -233,14 +237,14 @@ . el \{ .R_MARGIN \\$4 \} . if !'\\$5'' \{ .T_MARGIN \\$5 \} . if !'\\$6'' \{ .B_MARGIN \\$6 \} -.END +.END \# \# ===================================================================== \# \# +++PAGE CONTROL+++ \# \# Generic macros for breaking pages. -\# +\# \# DO_T_MARGIN \# ----------- \# *Argument: @@ -414,7 +418,7 @@ . nr #AUTO_LEAD 1 . nr #AUTOLEAD_VALUE (p;\\$1) . ie \\n[#NUM_ARGS]=2 \{\ -. if '\\$2'FACTOR' \{ +. if '\\$2'FACTOR' \{\ . nr #AUTOLEAD_FACTOR 1 . vs \\n[#PT_SIZE]u*\\n[#AUTOLEAD_VALUE]u/1000u . \} @@ -438,6 +442,11 @@ .ds PREV \EfP .ds S \Es \# +\# ADDITIONAL STRINGS +\# ------------------ +.ds RULE \El'\En(.lu' +\# +\# \# ===================================================================== \# \# +++KERNING+++ @@ -454,7 +463,7 @@ . kern . nr #KERN 1 . \} -. el \{ +. el \{\ . kern 0 . nr #KERN 0 . \} @@ -474,15 +483,13 @@ \# \# N.B.--the amount of inline kerning supplied by \*[BU#] or \# \*[FU#] is added to or subtracted from any kerning that already -\# takes place between two characters when automatice kerning is +\# takes place between two characters when automatic kerning is \# turned on. \# -\# Owing to some stupidities of groff, it is not possible -\# pass arguments to macros that are executed with inline -\# escapes, nor thence to evaluate conditional expressions. -\# Consequently, each pseudo-escape \[BU#] must be defined -\# separately with ".char". I'd have prefered something like -\# this +\# In groff v. 1.17.2, it is not possible to pass arguments to macros that +\# are executed with inline escapes, nor thence to evaluate conditional +\# expressions. Consequently, each pseudo-escape \[BU#] must be defined +\# separately with ".char". I'd have prefered something like this \# \# .de BU \# \c @@ -1042,7 +1049,8 @@ \# \# Sadly, EL is only a fake. It will work in all instances EXCEPT \# when the line to be EL'd is the last line before a footer trap. -\# +\# Use TRAP OFF/TRAP to circumvent this. +\# .MAC EL END . br . sp -1v @@ -1289,7 +1297,7 @@ \# TAB SET \# ------- \# *Arguments: -\# <#> ident(ipPcm) length(ipPcm) [L | R | C | J [QUAD]] +\# <#> ident(ipPcm) length(ipPcm) [L | R | C | J [QUAD]] \# *Function: \# Creates macros TAB<#> and TAB <#>, where # is any arbitrary number. \# TAB# is a typesetting tab (i.e. a tab defined as an indent @@ -1340,7 +1348,7 @@ \# \# Tabs themselves are user-invoked using the TAB macro with a numeric \# argument, e.g. TAB 1. -\# +\# \# Generally, in order not to get confused, it's a good idea \# to make sure all indents are off before setting tabs. \# @@ -1403,7 +1411,7 @@ \# *Notes: \# If the tabs being aligned fall too close to the footer \# trap, the line entered after .TN will appear on the next page. -\# +\# .MAC TN END . br . nr #NEXT_TAB \\n[#CURRENT_TAB]+1 @@ -1492,29 +1500,37 @@ . char X _X . char Y _Y . char Z _Z -. char À _À -. char  _ -. char Á _Á -. char Ä _Ä -. char Å _Å -. char È _È -. char Ê _Ê -. char É _É -. char Ë _Ë -. char Ì _Ì -. char Î _Î -. char Í _Í -. char Ï _Ï -. char Ñ _Ñ -. char Ò _Ò -. char Ô _Ô -. char Ó _Ó -. char Ö _Ö -. char Ø _Ø -. char Ù _Ù -. char Û _Û -. char Ú _Ú -. char Ü _Ü +. char \[`A] _\[`A] +. char \[^A] _\[^A] +. char \['A] _\['A] +. char \[:A] _\[:A] +. char \[oA] _\[oA] +. char \[~A] _\[~A] +. char \[AE] _\[AE] +. char \[`E] _\[`E] +. char \[^E] _\[^E] +. char \['E] _\['E] +. char \[:E] _\[:E] +. char \[`I] _\[`I] +. char \[^I] _\[^I] +. char \['I] _\['I] +. char \[:I] _\[:I] +. char \[`O] _\[`O] +. char \[^O] _\[^O] +. char \['O] _\['O] +. char \[:O] _\[:O] +. char \[~O] _\[~O] +. char \[/O] _\[/O] +. char \[`U] _\[`U] +. char \[^U] _\[^U] +. char \['U] _\['U] +. char \[:U] _\[:U] +. char \[,C] _\[,C] +. char \[-D] _\[-D] +. char \[~N] _\[~N] +. char \[TP] _\[TP] +. char \['Y] _\['Y] +. char \[:Y] _\[:Y] . char a _a . char b _b . char c _c @@ -1541,30 +1557,38 @@ . char x _x . char y _y . char z _z -. char à _à -. char â _â -. char á _á -. char ä _ä -. char å _å -. char è _è -. char ê _ê -. char é _é -. char ë _ë -. char ì _ì -. char î _î -. char í _í -. char ï _ï -. char ñ _ñ -. char ò _ò -. char ô _ô -. char ó _ó -. char ö _ö -. char ø _ø -. char ß _ß -. char ù _ù -. char û _û -. char ú _ú -. char ü _ü +. char \[`a] _\[`a] +. char \[^a] _\[^a] +. char \['a] _\['a] +. char \[:a] _\[:a] +. char \[oa] _\[oa] +. char \[~a] _\[~a] +. char \[ae] _\[ae] +. char \[`e] _\[`e] +. char \[^e] _\[^e] +. char \['e] _\['e] +. char \[:e] _\[:e] +. char \[`i] _\[`i] +. char \[^i] _\[^i] +. char \['i] _\['i] +. char \[:i] _\[:i] +. char \[`o] _\[`o] +. char \[^o] _\[^o] +. char \['o] _\['o] +. char \[:o] _\[:o] +. char \[~o] _\[~o] +. char \[/o] _\[/o] +. char \[`u] _\[`u] +. char \[^u] _\[^u] +. char \['u] _\['u] +. char \[:u] _\[:u] +. char \[,c] _\[,c] +. char \[Sd] _\[Sd] +. char \[~n] _\[~n] +. char \[Tp] _\[Tp] +. char \['y] _\['y] +. char \[:y] _\[:y] +. char \[ss] _\[ss] . char ' _' . char 1 _1 . char 2 _2 @@ -1580,9 +1604,13 @@ . el \{\ . nr #UNDERLINE_ON 0 . rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ - À  Á Ä Å È Ê É Ë Ì Î Í Ï Ñ Ò Ô Ó Ö Ø Ù Û Ú Ü \ a b c d e f g h i j k l m n o p q r s t u v w x y z \ - à â á ä å è ê é ë ì î í ï ñ ò ô ó ö ø ß ù û ú ü ' \ + \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \ + \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \ + \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \ + \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \ + \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \ + \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \ 1 2 3 4 5 6 7 8 9 0 . \} .END @@ -1599,7 +1627,7 @@ \# Intended to be called with inline escapes \*[UL] (underline \# on) and \*[ULX] (underline off). Only works when the font family \# is COURIER, to simulate typewriter-style underlining of italic -\# passages. +\# passages. \# .MAC UL END \c\R'#UNDERLINE_ON 1' @@ -1629,29 +1657,37 @@ . char X _X . char Y _Y . char Z _Z -. char À _À -. char  _ -. char Á _Á -. char Ä _Ä -. char Å _Å -. char È _È -. char Ê _Ê -. char É _É -. char Ë _Ë -. char Ì _Ì -. char Î _Î -. char Í _Í -. char Ï _Ï -. char Ñ _Ñ -. char Ò _Ò -. char Ô _Ô -. char Ó _Ó -. char Ö _Ö -. char Ø _Ø -. char Ù _Ù -. char Û _Û -. char Ú _Ú -. char Ü _Ü +. char \[`A] _\[`A] +. char \[^A] _\[^A] +. char \['A] _\['A] +. char \[:A] _\[:A] +. char \[oA] _\[oA] +. char \[~A] _\[~A] +. char \[AE] _\[AE] +. char \[`E] _\[`E] +. char \[^E] _\[^E] +. char \['E] _\['E] +. char \[:E] _\[:E] +. char \[`I] _\[`I] +. char \[^I] _\[^I] +. char \['I] _\['I] +. char \[:I] _\[:I] +. char \[`O] _\[`O] +. char \[^O] _\[^O] +. char \['O] _\['O] +. char \[:O] _\[:O] +. char \[~O] _\[~O] +. char \[/O] _\[/O] +. char \[`U] _\[`U] +. char \[^U] _\[^U] +. char \['U] _\['U] +. char \[:U] _\[:U] +. char \[,C] _\[,C] +. char \[-D] _\[-D] +. char \[~N] _\[~N] +. char \[TP] _\[TP] +. char \['Y] _\['Y] +. char \[:Y] _\[:Y] . char a _a . char b _b . char c _c @@ -1678,30 +1714,38 @@ . char x _x . char y _y . char z _z -. char à _à -. char â _â -. char á _á -. char ä _ä -. char å _å -. char è _è -. char ê _ê -. char é _é -. char ë _ë -. char ì _ì -. char î _î -. char í _í -. char ï _ï -. char ñ _ñ -. char ò _ò -. char ô _ô -. char ó _ó -. char ö _ö -. char ø _ø -. char ß _ß -. char ù _ù -. char û _û -. char ú _ú -. char ü _ü +. char \[`a] _\[`a] +. char \[^a] _\[^a] +. char \['a] _\['a] +. char \[:a] _\[:a] +. char \[oa] _\[oa] +. char \[~a] _\[~a] +. char \[ae] _\[ae] +. char \[`e] _\[`e] +. char \[^e] _\[^e] +. char \['e] _\['e] +. char \[:e] _\[:e] +. char \[`i] _\[`i] +. char \[^i] _\[^i] +. char \['i] _\['i] +. char \[:i] _\[:i] +. char \[`o] _\[`o] +. char \[^o] _\[^o] +. char \['o] _\['o] +. char \[:o] _\[:o] +. char \[~o] _\[~o] +. char \[/o] _\[/o] +. char \[`u] _\[`u] +. char \[^u] _\[^u] +. char \['u] _\['u] +. char \[:u] _\[:u] +. char \[,c] _\[,c] +. char \[Sd] _\[Sd] +. char \[~n] _\[~n] +. char \[Tp] _\[Tp] +. char \['y] _\['y] +. char \[:y] _\[:y] +. char \[ss] _\[ss] . char ' _' . char 1 _1 . char 2 _2 @@ -1719,9 +1763,13 @@ .MAC ULX END \c\R'#UNDERLINE_ON 0' . rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ - À  Á Ä Å È Ê É Ë Ì Î Í Ï Ñ Ò Ô Ó Ö Ø Ù Û Ú Ü \ a b c d e f g h i j k l m n o p q r s t u v w x y z \ - à â á ä å è ê é ë ì î í ï ñ ò ô ó ö ø ß ù û ú ü ' \ + \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \ + \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \ + \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \ + \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \ + \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \ + \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \ 1 2 3 4 5 6 7 8 9 0 .END \# @@ -1996,26 +2044,33 @@ .MAC PAD END . if !d$PAD_MARKER \{ .ds $PAD_MARKER # \} . char \\*[$PAD_MARKER] \R'#PAD_COUNT \En[#PAD_COUNT]+1' +. ds $FAMILY_FOR_PAD \\n[.fam] +. nr #FONT_FOR_PAD \\n(.f +. nr #SIZE_FOR_PAD \\n[.ps] . ds $PAD_STRING \\$1 . as $PAD_STRING \Ekp . di PAD_STRING -\\*[$PAD_STRING] +. fam \\*[$FAMILY_FOR_PAD] +\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] . br . di . char \\*[$PAD_MARKER] \R'#SPACE_TO_END \En(.l-\Enp'\R'#PAD_SPACE \En[#SPACE_TO_END]/\En[#PAD_COUNT]' . di PAD_STRING -\\*[$PAD_STRING] +. fam \\*[$FAMILY_FOR_PAD] +\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] . br . di . char \\*[$PAD_MARKER] \h'\En[#PAD_SPACE]u' . ie \\n[#SILENT] \{\ . SILENT -\\*[$PAD_STRING] +. fam \\*[$FAMILY_FOR_PAD] +\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] . br . SILENT OFF . \} . el \{\ -\\*[$PAD_STRING] +. fam \\*[$FAMILY_FOR_PAD] +\\f\\n[#FONT_FOR_PAD]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] . br . \} . rr #PAD_COUNT @@ -2179,8 +2234,8 @@ . if '\\$3'EXT' \{ \E*[EXTX]\c \} . rt \\nxu . FAM \\*[$RESTORE_FAM] -. FT \\n[#RESTORE_FT] -. ps \\n[#RESTORE_PT_SIZE]u +. FT \\n[#RESTORE_FT] +. ps \\n[#RESTORE_PT_SIZE]u . CONDENSE \\*[$RESTORE_COND] . EXTEND \\*[$RESTORE_EXT] . ie \\n(.u \{ .wh \\n(.du+\\n[#DC_HEIGHT]u-1v DROPCAP_OFF \} @@ -2277,14 +2332,14 @@ \# and hanging. Each is set/invoked with a different macro. \# Indent macros begin with the letter "I", hence .IL means "indent left," \# .IR means "indent right," and so on. -\# +\# \# The first time any of the indent macros is used, it requires an \# argument--the size of the indent in ipPcm. The size may also \# be entered using the \w'#' function--very useful for numbered \# lists using HI). The unit of measure is required. Subsequent \# invocations don't require the argument; the indent measure remains the \# same until it's changed by invoking the macro with an argument again. -\# +\# \# If no indents are in effect, the arguments passed to indent macros are \# measured from the left and right margins of the page. If a left indent \# or a right indent is already in effect, the arguments passed to @@ -2306,7 +2361,7 @@ \# ...some text... \# .IL \# ...some text... -\# +\# \# The first .IL 2P indents text 2P from the left margin. The second \# .IL 2P indents text by an additional 2P, i.e. 4P from the left margin. \# .IX turns the indent off. The last .IL (which has no argument) @@ -2315,7 +2370,7 @@ \# margin, i.e. 4P. If you wanted the last .IL to indent just 2P, \# you'd either have to reset the .IL prior to .IX (.IL -2P), or pass \# the last .IL the argument 2P. -\# +\# \# To reverse the sense of an indent added to an indent, you may use \# negative values. \# @@ -2335,7 +2390,7 @@ \# the user wishes to clear the values, the I<LRB>X macros should be \# invoked with the single argument CLEAR. IX CLEAR clears out \# the values stored for all indent styles. -\# +\# \# Indents *must* be turned off before settting string tabs \# inside PAD. Generally, in order not to get confused, it's a \# good idea to turn all indents off before setting any tabs. @@ -2484,7 +2539,7 @@ . br . in 0 . rr #INDENT_LEFT_ACTIVE -. if '\\$1'CLEAR' \{ +. if '\\$1'CLEAR' \{\ . rr #L_INDENT . rr #INDENT_STYLE_LEFT . \} @@ -2610,7 +2665,7 @@ \# ===================================================================== \# \# +++MULTIPLE COLUMNS+++ -\# +\# \# MULTIPLE COLUMNS ON \# ------------------- \# *Arguments: @@ -2760,6 +2815,7 @@ . tr ñ\[~N] . tr þ\[TP] . tr ý\['Y] +. tr ÿ\[:Y] . nr #CAPS_ON 1 . \} . el \{\ @@ -2794,6 +2850,7 @@ . tr ñ\[~n] . tr þ\[Tp] . tr ý\['y] +. tr ÿ\[:y] . rr #CAPS_ON . \} .END @@ -3100,7 +3157,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# Sets registers that are used to determine what to put \# in the default header, and how to number pages. \# *Notes: -\# DOCTYPE must come before COPYSTYLE. +\# DOCTYPE must come before COPYSTYLE. \# .MAC COPYSTYLE END . ds $COPY_STYLE \\$1 @@ -3147,19 +3204,34 @@ y\\R'#DESCENDER \\n[.cdp]' . el \{ .PAGENUM_STYLE roman \} . if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ . ie \\n[#DRAFT_WITH_PAGENUM] \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] +. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} +. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \} . \} . el \{\ . ie !\\n[#REVISION] \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ - \\*[$DRAFT_STRING] \\n[#DRAFT] +. ie '\\*[$CHAPTER]'' \{\ +. ds $HDRFTR_CENTER \ + \\*[$CHAPTER_STRING], \ + \\*[$DRAFT_STRING] \\n[#DRAFT] +. \} +. el \{\ +. ds $HDRFTR_CENTER \ + \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ + \\*[$DRAFT_STRING] \\n[#DRAFT] +. \} . \} . el \{\ +. ie '\\*[$CHAPTER]'' \{\ +. el \{\ + \\*[$CHAPTER_STRING], \ + \\*[$DRAFT_STRING] \\n[#DRAFT], \ + \\*[$REVISION_STRING] \\n[#REVISION] +. \} . ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ - \\*[$DRAFT_STRING] \\n[#DRAFT], \ - \\*[$REVISION_STRING] \\n[#REVISION] + \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ + \\*[$DRAFT_STRING] \\n[#DRAFT], \ + \\*[$REVISION_STRING] \\n[#REVISION] +. \} . \} . \} . \} @@ -3168,7 +3240,8 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ . ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} . el \{ .PAGENUM_STYLE DIGIT \} -. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] +. ie '\\*[$CHAPTER]'' \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \} +. el \{ .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} . \} . \} . \} @@ -3197,7 +3270,7 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . \} . el \{\ -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{ +. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ . ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} . el \{ .PAGENUM_STYLE DIGIT \} . ds $HDRFTR_CENTER \\*[$DOC_TYPE] @@ -3270,7 +3343,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# DOCUMENT TYPE \# ------------- \# *Argument: -\# DEFAULT | CHAPTER | NAMED "<whatever> | LETTER +\# DEFAULT | CHAPTER | NAMED "<whatever> | LETTER \# *Function: \# Creates strings and sets registers for document types. \# *Notes: @@ -3472,7 +3545,8 @@ y\\R'#DESCENDER \\n[.cdp]' . ds $PP_FT \\*[$FONT] \# Counters . nr #PP 0 -. nr #FN_NUMBER 0 1 +. nr #FN_NUMBER 0 1 +. nr #EN_NUMBER 0 1 . nr #FN_COUNT_FOR_COLS 0 1 . RESET_HEAD_NUMBER . RESET_SUBHEAD_NUMBER @@ -3505,6 +3579,27 @@ y\\R'#DESCENDER \\n[.cdp]' . if !r#FN_RULE \{ .FOOTNOTE_RULE \} . if !r#FN_MARKERS \{ .FOOTNOTE_MARKERS \} . if !r#FN_MARKER_STYLE \{ .FOOTNOTE_MARKER_STYLE STAR \} +. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \} +. if !d$EN_FN \{ .ENDNOTE_FONT R \} +. if !d$EN_QUAD \{ .ENDNOTE_QUAD \\*[$DOC_QUAD] \} +. if !d$EN_STRING \{ .ENDNOTE_STRING "ENDNOTES" \} +. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$DOC_FAM] \} +. if !d$EN_STRING_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \} +. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \} +. if !d$EN_TITLE \{\ +. ie \\n[#DOC_TYPE]=2 \{\ +. ie '\\*[$CHAPTER]'' \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING]" \} +. el \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]" \} +. \} +. el \{ .ENDNOTE_TITLE "\\*[$TITLE]" \} +. \} +. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAM \\*[$DOC_FAM] \} +. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \} +. if !r#EN_TITLE_UNDERSCORE \{ .ENDNOTE_TITLE_UNDERSCORE \} +. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$DOC_FAM] \} +. if !r#EN_NUMBERS_ALIGN_LEFT \{\ +. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \} +. \} \# String defaults for both PRINTSTYLEs . if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \} . if \\n[#USER_DEF_HDRFTR_LEFT]=0 \{ .ds $HDRFTR_LEFT \\*[$AUTHOR_1] \} @@ -3526,7 +3621,8 @@ y\\R'#DESCENDER \\n[.cdp]' . ie \\n[#UNDERLINE_SLANT]=1 \{ .UNDERLINE_SLANT \} . el \{ .UNDERLINE_SLANT OFF \} . \} -. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \} +. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \} +. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT \\n[#PP_INDENT] \} . \} \# Defaults for printstyle TYPESET . if \\n[#PRINT_STYLE]=2 \{\ @@ -3564,8 +3660,6 @@ y\\R'#DESCENDER \\n[.cdp]' . if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -2 \} . \} . if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -.5 \} -. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P \} -. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p \} . if !d$HEAD_FAM \{ .HEAD_FAMILY \\*[$DOC_FAM] \} . if !d$HEAD_FT \{ .HEAD_FONT B \} . if !d$HEAD_SIZE_CHANGE \{ .HEAD_SIZE +1 \} @@ -3592,8 +3686,19 @@ y\\R'#DESCENDER \\n[.cdp]' . if !d$EPI_QUAD \{ .EPIGRAPH_QUAD \\*[$DOC_QUAD] \} . if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 3 \} . if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 3p \} +. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P \} +. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p \} . if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE -2 \} . if !r#FN_AUTOLEAD \{ .FOOTNOTE_AUTOLEAD 2 \} +. if !r#EN_PS \{ .ENDNOTE_PT_SIZE \\n[#DOC_PT_SIZE]u \} +. if !r#EN_LEAD \{ .ENDNOTE_LEAD 13.5p \} +. if !d$EN_STRING_FT \{ .ENDNOTE_STRING_FONT B \} +. if !d$EN_STRING_SIZE_CHANGE \{ .ENDNOTE_STRING_SIZE +1 \} +. if !d$EN_TITLE_FT \{ .ENDNOTE_TITLE_FONT B \} +. if !d$EN_TITLE_SIZE_CHANGE \{ .ENDNOTE_TITLE_SIZE 0 \} +. if !d$EN_NUMBER_FT \{ .ENDNOTE_NUMBER_FONT B \} +. if !$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE 0 \} +. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \} . \} . TRAPS . if \\n[#PRINT_STYLE]=1 \{ .nr #IGNORE 1 \} @@ -3616,7 +3721,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# *Notes: \# The .PRINT \& (zero-width character) is required to get the \# subsequent .sp request to work as advertised. -\# +\# \# The overall document line length, family, and point-size \# are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for \# use in the HEADER and FOOTER macros. @@ -3679,7 +3784,7 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#PRINT_STYLE]=1 \{\ . fam C . ft R -. ps 12 +. ps 12 . ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} . el \{ .vs \\n[#DOC_LEAD]u \} . CAPS @@ -3756,7 +3861,7 @@ y\\R'#DESCENDER \\n[.cdp]' . \\n+[#DOCHEADER_LINES] . \} . if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#AUTHOR_LINES]=1 \{ +. if \\n[#AUTHOR_LINES]=1 \{\ . ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \} . el \{ .RLD \\n[#DOC_LEAD]u \} . \} @@ -3788,10 +3893,14 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . if \\n[#PRINT_STYLE]=1 \{\ . CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] +. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \} +. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} . CAPS OFF . \} -. if \\n[#PRINT_STYLE]=2 \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} +. if \\n[#PRINT_STYLE]=2 \{\ +. ie '\\*[$CHAPTER]'' \{ .PRINT \\*[$CHAPTER_STRING] \} +. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} +. \} . ev . \} \# Named @@ -3806,7 +3915,7 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#PRINT_STYLE]=1 \{\ . fam C . ft R -. ps 12 +. ps 12 . ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} . el \{ .vs \\n[#DOC_LEAD]u \} . CAPS @@ -3883,7 +3992,7 @@ y\\R'#DESCENDER \\n[.cdp]' . \\n+[#DOCHEADER_LINES] . \} . if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#AUTHOR_LINES]=1 \{ +. if \\n[#AUTHOR_LINES]=1 \{\ . ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \} . el \{ .RLD \\n[#DOC_LEAD]u \} . \} @@ -3905,7 +4014,7 @@ y\\R'#DESCENDER \\n[.cdp]' . ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \} . el \{ .RLD \\n[#DOC_LEAD]u \} . \} -. el \{ +. el \{\ . ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \} . el \{ .RLD \\n[#DOC_LEAD]u \} . \} @@ -3997,7 +4106,7 @@ y\\R'#DESCENDER \\n[.cdp]' .MAC DOCHEADER END . ie '\\$1'' \{ .nr #DOC_HEADER 1 \} . el \{\ -. if \\$2 \{ .nr #ADVANCE_FROM_TOP (\\$2) \} +. if !'\\$2'' \{ .nr #ADVANCE_FROM_TOP (\\$2) \} . nr #DOC_HEADER 0 . \} .END @@ -5681,7 +5790,7 @@ y\\R'#DESCENDER \\n[.cdp]' . DOC_LEFT_MARGIN \\n[#DOC_R_MARGIN]u . DOC_RIGHT_MARGIN \\n[#DOC_LR_MARGIN_TMP]u . \} -. ev HEADER +. ev HEADER . if \\n[#PRINT_STYLE]=1 \{ .vs 0 \} . if \\n[#PRINT_STYLE]=2 \{ .LS 0 \} . sp |\\n[#HEADER_MARGIN]u-1v @@ -5689,7 +5798,7 @@ y\\R'#DESCENDER \\n[.cdp]' . ta \\n(.lu . if \\n[#PRINT_STYLE]=2 \{\ . FAMILY \\*[$HDRFTR_FAM] -. FT R +. FT R . PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE] . \} . if \\n[#PRINT_STYLE]=1 \{\ @@ -5725,7 +5834,6 @@ y\\R'#DESCENDER \\n[.cdp]' . po \\n[#L_MARGIN]u . if \\n[#RECTO_VERSO] \{\ . nr #L_MARGIN +\\n[#L_MARGIN_DIFF] -. po \\n[#L_MARGIN]u . \} . if \\n[#CAPS_WAS_ON] \{\ . CAPS @@ -5859,8 +5967,7 @@ y\\R'#DESCENDER \\n[.cdp]' .MAC FOOTER END . ev PAGE_BOTTOM . nr #L_MARGIN_DIFF \\n[#L_MARGIN]-\\n[#DOC_L_MARGIN] -. nr #RESTORE_OFFSET \\n(.o -. if !\\n[#FN_DEFER] \{\ \"i.e. no defer (do not defer footnote processing to next page or column) +. if !\\n[#FN_DEFER] \{\ . nr #DIVER_DEPTH 0 . if \\n[#FN_COUNT] \{\ . sp |\\n[#PAGE_LENGTH]u-(\\n[#B_MARGIN]u+\\n[#FN_DEPTH]u) @@ -5929,7 +6036,7 @@ y\\R'#DESCENDER \\n[.cdp]' . ll \\n[#DOC_L_LENGTH]u . ta \\n(.lu . FAMILY \\*[$HDRFTR_FAM] -. FT R +. FT R . PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE] . if \\n[#PRINT_STYLE]=1 \{\ . fam C @@ -6214,7 +6321,7 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #ARG_NUM 0 1 . nr #HEAD 1 . ev HEAD -. ll \\n[#L_LENGTH]u +. ll \\n[#L_LENGTH]u . ta \\n(.lu . if \\n[#COLUMNS] \{\ . ll \\n[#COL_L_LENGTH]u @@ -6256,7 +6363,7 @@ y\\R'#DESCENDER \\n[.cdp]' . ie \\n[#PP_SPACE] \{\ . ie \\n[#END_QUOTE] \{ . \} . el \{\ -. if !\\n[#LINEBREAK] \{ +. if !\\n[#LINEBREAK] \{\ . if \\n[#HEAD_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} . \} . \} @@ -6403,7 +6510,7 @@ y\\R'#DESCENDER \\n[.cdp]' . if r#QUOTE \{ .rr #QUOTE \} . if r#Q_AT_TOP \{ .rr #Q_AT_TOP \} . ev SUBHEAD -. ll \\n[#L_LENGTH]u +. ll \\n[#L_LENGTH]u . ta \\n(.lu . if \\n[#COLUMNS] \{\ . ll \\n[#COL_L_LENGTH]u @@ -6609,7 +6716,7 @@ y\\R'#DESCENDER \\n[.cdp]' .MAC PARAHEAD END . if \\n[#SLANT_ON] \{\ . nr #SLANT_WAS_ON 1 -. \\*[SLANTX]\c +\E*[SLANTX] . \} . ie \\n[#PP]=1 \{\ . if \\n[#INDENT_FIRST_PARAS] \{\ @@ -6653,7 +6760,7 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#SLANT_WAS_ON] \{\ . if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \} . if \\n[#SLANT_MEANS_SLANT] \{\ -. \\*[SLANT]\c +\E*[SLANT]\c . \} . rr #SLANT_WAS_ON . \} @@ -6690,7 +6797,7 @@ y\\R'#DESCENDER \\n[.cdp]' . PT_SIZE \\n[#DOC_PT_SIZE]u . if \\n[#SLANT_WAS_ON] \{\ . rr #SLANT_WAS_ON 1 -. \\*[SLANT]\c +\E*[SLANT]\c . \} . \} . rr #NUMBERED @@ -6794,7 +6901,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# *Notes: \# Default for printstyle TYPEWRITE is 1/2-inch. Default for \# printstyle TYPESET is 2 ems. The defaults are set in -\# ydocs_printstyle, not in ydocs_defaults. +\# PRINTSTYLE, not DEFAULTS. \# .MAC PARA_INDENT END . nr #PP_INDENT (\\$1) @@ -6886,10 +6993,15 @@ y\\R'#DESCENDER \\n[.cdp]' . rr #PP_ACTIVE . if r#Q_AT_TOP \{ .rr #Q_AT_TOP \} . if \\n[#PP_STYLE]=1 \{\ +. if \\n[#ENDNOTE] \{\ +. nr #RESET_PARA_SPACE \\n[#PP_SPACE] +. ie \\n[#EN_PP_SPACE] \{ .PARA_SPACE \} +. el \{ .PARA_SPACE OFF \} +. \} . br -. po \\n[#L_MARGIN]u +. if !\\n[#ENDNOTE] \{ .po \\n[#L_MARGIN]u \} . if \\n[#COLUMNS] \{\ -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u +. if !\\n[#ENDNOTE] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \} . \} . if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \} . ie \\n[#PRINT_STYLE]=1 \{\ @@ -6904,22 +7016,37 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . \} . el \{\ -. FAMILY \\*[$DOC_FAM] -. FT \\*[$PP_FT] -. PT_SIZE \\n[#DOC_PT_SIZE]u -. LS \\n[#DOC_LEAD]u -. QUAD \\*[$DOC_QUAD] +. ie \\n[#ENDNOTE] \{\ +. FAMILY \\*[$EN_FAM] +. FT \\*[$EN_FT] +. PT_SIZE \\n[#EN_PS]u +. LS \\n[#DOC_LEAD]u +. QUAD \\*[$EN_QUAD] +. \} +. el \{\ +. FAMILY \\*[$DOC_FAM] +. FT \\*[$PP_FT] +. PT_SIZE \\n[#DOC_PT_SIZE]u +. LS \\n[#DOC_LEAD]u +. QUAD \\*[$DOC_QUAD] +. \} . \} . ie \\n[#PP]=0 \{\ . if \\n[#INDENT_FIRST_PARAS] \{\ . ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \} . el \{ .ti \\n[#PP_INDENT]u \} +. if '\\n(.z'END_NOTES' \{\ +. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u +. \} . \} . if r#END_QUOTE \{\ . if \\n[#END_QUOTE] \{\ . if !\\n[#LINEBREAK] \{\ . ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \} . el \{ .ti \\n[#PP_INDENT]u \} +. if '\\n(.z'END_NOTES' \{\ +. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u +. \} . \} . \} . \} @@ -6936,6 +7063,9 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . ie \\n[#INDENT_ACTIVE] \{ .ti \\n[#INDENT]u+\\n[#PP_INDENT]u \} . el \{ .ti \\n[#PP_INDENT]u \} +. if '\\n(.z'END_NOTES' \{\ +. ti \\n[#EN_PP_INDENT]u+\\n[#EN_TEXT_INDENT]u +. \} . \} . if r#START \{ .rr #START \} . if r#QUOTE \{ .rr #QUOTE \} @@ -6944,6 +7074,10 @@ y\\R'#DESCENDER \\n[.cdp]' . if r#EPIGRAPH \{ .rr #EPIGRAPH \} . if r#Q_FITS \{ .rr #Q_FITS \} . if r#LINEBREAK \{ .rr #LINEBREAK \} +. if \\n[#ENDNOTE] \{\ +. ie \\n[#RESET_PARA_SPACE] \{ .PARA_SPACE \} +. el \{ .PARA_SPACE OFF \} +. \} . if \\n[#CONDENSE] \{\ \E*[COND]\c . \} @@ -6953,9 +7087,9 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #PP +1 . \} . if \\n[#PP_STYLE]=2 \{\ -\!. br +\!. br . if \\n[#BROKEN_QUOTE] \{\ -. ie \\n(nl=\\n[#PAGE_TOP] \{ .nr #Q_PP 1\} +. ie \\n(nl=\\n[#PAGE_TOP] \{ .nr #Q_PP 1 \} . el \{ .nr #Q_PP 0 \} . rr #BROKEN_QUOTE . \} @@ -6963,6 +7097,10 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#INDENT_FIRST_PARAS] \{\ . ti \\n[#PP_INDENT]u/2u . \} +. if \\n[#ENDNOTE] \{\ +. ie \\n[#INDENT_FIRSTS] \{ .ti \\n[#PP_INDENT]u/2u \} +. el \{ .ti 0 \} +. \} . \} . el \{\ . ti \\n[#PP_INDENT]u/2u @@ -7085,7 +7223,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# *Notes: \# Owing to the need to bottom align TYPESET pages, quoted text gets \# diverted so its depth can be measured (in DO_QUOTE) for determining -\# how much space to put before and after. +\# how much space to put before and after. \# .MAC QUOTE END . br @@ -7118,7 +7256,6 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #Q_TOP \\n(nl . if \\n[#PRINT_STYLE]=1 \{\ . if \\n[#UNDERLINE_QUOTES] \{\ -\#. UNDERLINE . FT I . \} . \} @@ -7198,7 +7335,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# *Notes: \# Owing to the need to bottom align TYPESET pages, quoted text gets \# diverted so its depth can be measured (in DO_QUOTE) for determining -\# how much space to put before and after. +\# how much space to put before and after. \# \# .PP after blockquote is optional if there's only one para, \# but REQUIRED if there's more than one. @@ -7212,10 +7349,26 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #Q_PP 0 . di B_QUOTE . ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. if \\n[#ENDNOTE] \{\ +. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\ +. ll \\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. \} +. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\ +. ll \\n[#L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. \} +. \} . ta \\n(.lu . CHECK_INDENT . if \\n[#COLUMNS] \{\ . ll \\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. if \\n[#ENDNOTE] \{\ +. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\ +. ll \\n[#RESET_L_LENGTH]u-\\n[#EN_TEXT_INDENT]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. \} +. if \\n[#EN_NUMBERS_ALIGN_LEFT] \{\ +. ll \\n[#COL_L_LENGTH]u-(\\n[#EN_PP_INDENT]u*(\\n[#Q_OFFSET_VALUE]u*2u)) +. \} +. \} . ta \\n(.lu . \} . if \\n[#PRINT_STYLE]=1 \{\ @@ -7231,13 +7384,24 @@ y\\R'#DESCENDER \\n[.cdp]' . FT \\*[$BQUOTE_FT] . PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$BQUOTE_SIZE_CHANGE] . LS \\n[#DOC_LEAD]u +. if \\n[#ENDNOTE] \{\ +. PT_SIZE \\n[#EN_PS]u\\*[$BQUOTE_SIZE_CHANGE] +. \} . QUAD \\*[$BQUOTE_QUAD] . HY . \} . nr #Q_TOP \\n(nl . if \\n[#INDENT_FIRST_PARAS] \{\ -. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#PP_INDENT]u/2u \} -. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#PP_INDENT]u/2u \} +. ie !\\n[#ENDNOTE] \{\ +. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#PP_INDENT]u/2u \} +. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#PP_INDENT]u/2u \} +. \} +. el \{\ +. if \\n[#INDENT_FIRSTS]=1 \{\ +. if \\n[#PRINT_STYLE]=1 \{ .ti \\n[#EN_PP_INDENT]u/2u \} +. if \\n[#PRINT_STYLE]=2 \{ .ti \\n[#EN_PP_INDENT]u/2u \} +. \} +. \} . \} . \} . el \{ .DO_QUOTE \} @@ -7262,6 +7426,10 @@ y\\R'#DESCENDER \\n[.cdp]' . REMOVE_INDENT . ev \# **Change *1 to *2 in next line to prevent orphans after quotes +. if \\n[#ENDNOTE] \{\ +. nr #RESET_QUOTE_SPACING \\n[#FULLSPACE_QUOTES] +. ALWAYS_FULLSPACE_QUOTES +. \} . nr #Q_DEPTH \\n[#DIVER_DEPTH]+(\\n[#LEAD]*1) . if \\n[#PRINT_STYLE]=1 \{\ . if \\n[#START]=1 \{ . \} @@ -7277,9 +7445,7 @@ y\\R'#DESCENDER \\n[.cdp]' . ie \\n[#HEAD]>0 \{ . \} . el \{\ . ie \\n[#START] \{ . \} -. el \{\ -. if !\\n[#LINEBREAK] \{ .ALD \\n[#DOC_LEAD]u \} -. \} +. el \{ .ALD \\n[#DOC_LEAD]u \} . \} . \} . el \{\ @@ -7289,7 +7455,9 @@ y\\R'#DESCENDER \\n[.cdp]' . el \{\ . ie \\n[#START] \{ . \} . el \{\ -. ie \\n[#FULLSPACE_QUOTES] \{ .ALD \\n[#DOC_LEAD]u \} +. ie \\n[#FULLSPACE_QUOTES] \{\ +. ALD \\n[#DOC_LEAD]u +. \} . el \{ .ALD \\n[#DOC_LEAD]u/2u \} . \} . \} @@ -7299,13 +7467,18 @@ y\\R'#DESCENDER \\n[.cdp]' . ie r#HEAD \{\ . if \\n[#HEAD]=1 \{ . \} . \} -. el \{ .ALD \\n[#DOC_LEAD]u \} +. el \{ .ALD \\n[#EN_LEAD]u \} . \} . \} . \} . nr #Q_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE]) -. if \\n[#COLUMNS] \{ .nr #Q_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE]) \} -. po \\n[#Q_OFFSET]u +. if \\n[#COLUMNS] \{\ +. nr #Q_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE]) +. \} +. if !\\n[#ENDNOTE] \{ .po \\n[#Q_OFFSET]u \} +. if \\n[#ENDNOTE] \{\ +. in +\\n[#EN_PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u +. \} . if \\n[#QUOTE]=1 \{\ . nf . P_QUOTE @@ -7343,19 +7516,37 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . \} . \} +. if \\n[#ENDNOTE] \{ .nr #FULLSPACE_QUOTES \\n[#RESET_QUOTE_SPACING] \} . if r#HEAD \{ .rr #HEAD \} . if r#EPIGRAPH \{ .rr #EPIGRAPH \} . rr #Q_PP . rr #LINEBREAK . nr #PP_STYLE 1 . nr #END_QUOTE 1 -. po \\n[#L_MARGIN]u -. if \\n[#COLUMNS] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \} -. nr #RESET_PP_INDENT \\n[#PP_INDENT] -. PARA_INDENT 0 -. PP -. PARA_INDENT \\n[#RESET_PP_INDENT] -. QUAD \\*[$DOC_QUAD] +. if !\\n[#ENDNOTE] \{ .po \\n[#L_MARGIN]u \} +. if \\n[#ENDNOTE] \{\ +. in \\n[#EN_TEXT_INDENT]u +. \} +. if \\n[#COLUMNS] \{\ +. if !\\n[#ENDNOTE] \{ .po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u \} +. if \\n[#ENDNOTE] \{\ +. in \\n[#EN_TEXT_INDENT]u +. \} +. \} +. ie !\\n[#ENDNOTE] \{\ +. nr #RESET_PP_INDENT \\n[#PP_INDENT] +. PARA_INDENT 0 +. PP +. PARA_INDENT \\n[#RESET_PP_INDENT]u +. QUAD \\*[$DOC_QUAD] +. \} +. el \{\ +. nr #RESET_EN_PP_INDENT \\n[#EN_PP_INDENT] +. ENDNOTE_PARA_INDENT 0 +. PP +. ENDNOTE_PARA_INDENT \\n[#RESET_EN_PP_INDENT]u +. QUAD \\*[EN_QUAD] +. \} .END \# \# ==================================================================== @@ -7722,7 +7913,7 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #FN_MARKER_STYLE 1 . \} . if '\\$1'NUMBER' \{\ -. nr #FN_MARKER_STYLE 2 +. nr #FN_MARKER_STYLE 2 . \} .END \# @@ -7826,6 +8017,12 @@ y\\R'#DESCENDER \\n[.cdp]' . if \\n[#FN_MARKERS] \{\ . if \\n[#CONDENSE] \{ \*[CONDX]\c \} . if \\n[#EXTEND] \{ \*[EXTX]\c \} +. if \\n[#PRINT_STYLE]=1 \{\ +. if \\n[#UNDERLINE_ON] \{\ +. nr #UNDERLINE_WAS_ON 1 +. UNDERLINE OFF +. \} +. \} . if !\\n[#NO_FN_MARKER] \{\ . if \\n[#FN_MARKER_STYLE]=1 \{\ . ie \\n[#FN_COUNT_FOR_COLS] \{\ @@ -7969,6 +8166,12 @@ y\\R'#DESCENDER \\n[.cdp]' . br . di . in 0 \"Turn off indent possibly set by FOOTNOTE INDENT... +. if \\n[#PRINT_STYLE]=1 \{\ +. if \\n[#UNDERLINE_WAS_ON] \{\ +. UNDERLINE +. rr #UNDERLINE_WAS_ON +. \} +. \} . ev . rr #FN_R_INDENT . rr #FN_BR_INDENT @@ -8002,11 +8205,6 @@ y\\R'#DESCENDER \\n[.cdp]' . \} . \} . nr #NO_FN_MARKER 0 -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#SLANT_ON] \{\ -. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \} -. \} -. \} .END \# \# @@ -8058,6 +8256,616 @@ y\\R'#DESCENDER \\n[.cdp]' \# \# ==================================================================== \# +\# +++ENDNOTES+++ +\# +\# When endnotes are output, the spacing between the notes is always 1 +\# extra linespace. This can have bottom margin consequences. If this +\# doesn't bother you, don't worry about it. If it does bother you, and +\# you want to adjust the spacing between any two endnotes (as they're +\# output), make the spacing adjustments (.ALD/.RLD) at the *end* of +\# endnotes (i.e. just before .ENDNOTE OFF), not at the top. +\# +\# Endnotes must be output manually with .ENDNOTES. This allows user +\# the flexibility to output endnotes at the end of each collated +\# document, or to output them at the end of the entire document. +\# +\# ENDNOTE FAMILY +\# -------------- +\# *Argument: +\# <family to use in endnotes> +\# *Function: +\# Creates or modifies string $EN_FAM. +\# *Notes: +\# Default is same as running text in body of document. +\# +.MAC ENDNOTE_FAMILY END +. ds $EN_FAM \\$1 +.END +\# +\# +\# ENDNOTE FONT +\# ------------ +\# *Argument: +\# <font to use in endnotes> +\# *Function: +\# Creates or modifies string $EN_FT. +\# *Notes: +\# Default is roman. +\# +.MAC ENDNOTE_FONT END +. ds $EN_FT \\$1 +.END +\# +\# +\# ENDNOTE POINT SIZE +\# ------------------ +\# *Argument: +\# <base point size for endnotes> +\# *Function: +\# Creates or modifies register #EN_PS. +\# *Notes: +\# Default is same as running text in body of document. +\# +\# This size control macro differs from other size control macros +\# in that it sets an absolute point size, not a relative one. This +\# is because a) endnotes always appear separate from the body of +\# a document and therefore don't need to be relative to the body +\# of the document, and b) there are quite a few elements of the +\# endnotes page(s) that need to be relative to the base point size +\# of that page. If the base endnote point size were relative to +\# the body of the document (i.e. a _SIZE macro taking a +|- value) +\# getting the rest of the endnote elements sized properly could +\# become very confusing. +\# +.MAC ENDNOTE_PT_SIZE END +. nr #EN_PS (p;\\$1) +.END +\# +\# +\# ENDNOTE LEAD +\# ------------ +\# *Argument: +\# <base leading to use in endnotes> +\# *Function: +\# Creates or modifies register #EN_LEAD. +\# *Notes: +\# Default is 13.5 points for TYPESET; 24 for TYPEWRITE. +\# +.MAC ENDNOTE_LEAD END +. nr #EN_LEAD (p;\\$1) +.END +\# +\# +\# ENDNOTE QUAD +\# ------------ +\# *Argument: +\# LEFT | L | CENTER | C | RIGHT | R | JUSTIFY | J +\# *Function: +\# Creates or modifies string $EN_QUAD. +\# *Notes: +\# Default is justified for TYPESET, left for TYPEWRITE. +\# +.MAC ENDNOTE_QUAD END +. ds $EN_QUAD \\$1 +.END +\# +\# +\# ENDNOTE STRING +\# -------------- +\# *Argument: +\# <title for endnotes page> +\# *Function: +\# Creates or modifies string $EN_STRING. +\# *Notes: +\# Default is "ENDNOTES" +\# +.MAC ENDNOTE_STRING END +. ds $EN_STRING \\$1 +.END +\# +\# +\# ENDNOTE STRING FAMILY +\# --------------------- +\# *Argument: +\# <family to use for endnote string> +\# *Function: +\# Creates or modifies string $EN_STRING_FAM. +\# *Notes: +\# Default is same as running text in body of document. +\# +.MAC ENDNOTE_STRING_FAMILY END +. ds $EN_STRING_FAM \\$1 +.END +\# +\# +\# ENDNOTE STRING FONT +\# ------------------- +\# *Argument: +\# <font to use for endnote string> +\# *Function: +\# Creates or modifies string $EN_FT. +\# *Notes: +\# Default is BOLD for TYPEWRITE; roman for TYPESET +\# +.MAC ENDNOTE_STRING_FONT END +. ds $EN_STRING_FT \\$1 +.END +\# +\# +\# ENDNOTE STRING SIZE +\# ------------------- +\# *Argument: +\# <+|- number of points by which to in/decrease endnote string +\# (relative to base endnote size)> +\# *Function: +\# Creates or modifies string $EN_STRING_SIZE_CHANGE. +\# *Notes: +\# Default is +1 for TYPESET. +\# +.MAC ENDNOTE_STRING_SIZE END \"Default for TYPESET is +1 +. ds $EN_STRING_SIZE_CHANGE \\$1 +.END +\# +\# +\# ENDNOTE STRING QUAD +\# ------------------- +\# *Argument: +\# LEFT | L | CENTER | C | RIGHT | R +\# *Function: +\# Creates or modifies string $EN_STRING_QUAD. +\# *Notes: +\# Default is centered. +\# +.MAC ENDNOTE_STRING_QUAD END +. ds $EN_STRING_QUAD \\$1 +.END +\# +\# +\# ENDNOTE STRING UNDERSCORE +\# ------------------------- +\# *Arguments: +\# toggle | 2 +\# *Function: +\# Turns underscoring of endnote main title on or off. If the argument +\# is the digit "2", turns on double-underscoring. +\# *Notes: +\# Default is double-underscored. +\# +.MAC ENDNOTE_STRING_UNDERSCORE END +. ie '\\$1'' \{ .nr #EN_STRING_UNDERSCORE 1 \} +. el \{\ +. ie '\\$1'2' \{ .nr #EN_STRING_UNDERSCORE 2 \} +. el \{ .rr #EN_STRING_UNDERSCORE \} +. \} +.END +\# +\# +\# ENDNOTE TITLE +\# ------------- +\# *Argument: +\# <string that appears before the first endnote pertaining to any document> +\# *Function: +\# Creates string $EN_TITLE_STRING. +\# *Notes: +\# Default is the document title, or, if doc is a chapter, "Chapter #" +\# +.MAC ENDNOTE_TITLE END +. ds $EN_TITLE \\$1 +.END +\# +\# +\# ENDNOTE TITLE FAMILY +\# -------------------- +\# *Argument: +\# <family to use for endnote title> +\# *Function: +\# Creates string $EN_TITLE_FAM. +\# *Notes: +\# Default is same as running text of document. +\# +.MAC ENDNOTE_TITLE_FAMILY END +. ds $EN_TITLE_FAM \\$1 +.END +\# +\# +\# ENDNOTE TITLE FONT +\# ------------------ +\# *Argument: +\# <font to use for endnote title> +\# *Function: +\# Creates string $EN_TITLE_FT. +\# *Notes: +\# Default is bold for TYPESET; roman for TYPEWRITE. +\# +.MAC ENDNOTE_TITLE_FONT END +. ds $EN_TITLE_FT \\$1 +.END +\# +\# +\# ENDNOTE TITLE SIZE +\# ------------------ +\# *Argument: +\# <+|- number of points by which to in/decrease endnote title +\# (relative to base endnote size)> +\# *Function: +\# Creates string $EN_TITLE_SIZE_CHANGE. +\# *Notes: +\# Default is 0 (i.e. title same size as text of endnotes). +\# +.MAC ENDNOTE_TITLE_SIZE END +. ds $EN_TITLE_SIZE_CHANGE \\$1 +.END +\# +\# +\# ENDNOTE TITLE QUAD +\# ------------------ +\# *Argument: +\# <quad direction of endnote title> +\# *Function: +\# Creates string $EN_TITLE_QUAD. +\# *Notes: +\# Default is left. +\# +.MAC ENDNOTE_TITLE_QUAD END +. ds $EN_TITLE_QUAD \\$1 +.END +\# +\# +\# ENDNOTE TITLE UNDERSCORE +\# ------------------------ +\# *Argument: +\# toggle +\# *Function: +\# Creates or removes register #EN_TITLE_UNDERSCORE. +\# *Notes: +\# Default is to underscore the endnote titles. +\# +.MAC ENDNOTE_TITLE_UNDERSCORE END +. ie '\\$1'' \{ .nr #EN_TITLE_UNDERSCORE 1 \} +. el \{ .rr #EN_TITLE_UNDERSCORE \} +.END +\# +\# +\# ENDNOTE NUMBER FAMILY +\# --------------------- +\# *Argument: +\# <family to use for endnote numbers on endnotes page> +\# *Function: +\# Creates string $EN_NUMBER_FAM. +\# *Notes: +\# Default is same as running text of document. +\# +\# Family, font, and size of endnote numbers applies only to the +\# numbers as they appear on the endnotes page(s). The superscript +\# numbers that appear in running text are unaffected. +\# +.MAC ENDNOTE_NUMBER_FAMILY END +. ds $EN_NUMBER_FAM \\$1 +.END +\# +\# +\# ENDNOTE NUMBER FONT +\# ------------------- +\# *Argument: +\# <font to use for endnote numbers on endnotes page> +\# *Function: +\# Creates string $EN_NUMBER_FT. +\# *Notes: +\# Default is bold for TYPESET; roman for TYPEWRITE. +\# +\# Family, font, and size of endnote numbers applies only to the +\# numbers as they appear on the endnotes page(s). The superscript +\# numbers that appear in running text are unaffected. +\# +.MAC ENDNOTE_NUMBER_FONT END \"Default for TYPESET is bold +. ds $EN_NUMBER_FT \\$1 +.END +\# +\# +\# ENDNOTE NUMBER SIZE +\# ------------------- +\# *Argument: +\# <+|- number of points by which to in/decrease endnote numbers +\# (relative to base endnote size)> +\# *Function: +\# Creates string $EN_NUMBER_SIZE_CHANGE. +\# *Notes: +\# Default is 0. +\# +\# Family, font, and size of endnote numbers applies only to the +\# numbers as they appear on the endnotes page(s). The superscript +\# numbers that appear in running text are unaffected. +\# +.MAC ENDNOTE_NUMBER_SIZE END \"Default for TYPESET is 0 +. ds $EN_NUMBER_SIZE_CHANGE \\$1 +.END +\# +\# +\# ENDNOTE NUMBERS ALIGN RIGHT +\# --------------------------- +\# *Argument: +\# <max. number of digit placeholders that will appear in endnotes> +\# *Function: +\# Toggles register #EN_NUMBERS_ALIGN_RIGHT on; creates register +\# #EN_NUMBER_PLACEHOLDERS. +\# *Notes: +\# Default is for footnote numbers to be right aligned to 2 placeholders. +\# +.MAC ENDNOTE_NUMBERS_ALIGN_RIGHT END +. rr #EN_NUMBERS_ALIGN_LEFT +. nr #EN_NUMBERS_ALIGN_RIGHT 1 +. nr #EN_NUMBER_PLACEHOLDERS \\$1 +.END +\# +\# +\# ENDNOTE NUMBERS ALIGN LEFT +\# -------------------------- +\# *Argument: +\# none +\# *Function: +\# Toggles register #EN_NUMBERS_ALIGN_LEFT on. +\# *Notes: +\# Default is for footnote numbers to be right aligned to 2 placeholders +\# (i.e. not left aligned). +\# +.MAC ENDNOTE_NUMBERS_ALIGN_LEFT END +. rr #EN_NUMBERS_ALIGN_RIGHT +. nr #EN_NUMBERS_ALIGN_LEFT 1 +.END +\# +\# +\# ENDNOTE PARAGRAPH INDENT +\# ------------------------ +\# *Argument: +\# <first line indent of paras subsequent to 1st in endnotes> +\# *Function: +\# Creates register #EN_PP_INDENT for use in .PP. +\# *Notes: +\# Requires a unit of measure. +\# +\# Default is 1.5m for TYPESET; same indent as PARA_INDENT for TYPEWRITE. +\# +.MAC ENDNOTE_PARA_INDENT END +. nr #EN_PP_INDENT (\\$1) +.END +\# +\# +\# ENDNOTE PARAGRAPH SPACE +\# ----------------------- +\# *Argument: +\# toggle +\# *Function: +\# Creates toggle register #EN_PP_SPACE for use in .PP. +\# *Notes: +\# Like PARA_SPACE. Default is not to space endnote paras. +\# +.MAC ENDNOTE_PARA_SPACE END +. ie '\\$1'' \{ .nr #EN_PP_SPACE 1 \} +. el \{ .rr #EN_PP_SPACE \} +.END +\# +\# +\# ENDNOTE +\# ------- +\# *Argument: +\# toggle +\# *Function: +\# Places superscript endnote number in text, then collects and +\# processes endnote in diversion END_NOTES. +\# *Notes: +\# \c must be appended to the word immediately preceding .ENDNOTE. +\# +.MAC ENDNOTE END +. ie '\\$1'' \{\ +. nr #ENDNOTE 1 +. if \\n[#CONDENSE] \{ \*[CONDX]\c \} +. if \\n[#EXTEND] \{ \*[EXTX]\c \} +. if \\n[#PRINT_STYLE]=1 \{\ +. if \\n[#UNDERLINE_ON] \{\ +. nr #UNDERLINE_WAS_ON 1 +. UNDERLINE OFF +. \} +. if \\n[#SLANT_ON] \{\ +. nr #SLANT_WAS_ON 1 +\*[SLANTX]\c +. \} +. PRINT "\s-2\v'-\\n[#DOC_LEAD]u/5u'\\n+[#EN_NUMBER]\v'+\\n[#DOC_LEAD]u/5u'\s+2" +. \} +. if \\n[#PRINT_STYLE]=2 \{ .PRINT "\*[SUP]\\n+[#EN_NUMBER]\*[SUPX]" \} +. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD] +. nr #PP_STYLE_PREV \\n[#PP_STYLE] +. nr #PP_STYLE 1 +. if \\n[#INDENT_FIRST_PARAS] \{ .nr #INDENT_FIRSTS 1 \} +. INDENT_FIRST_PARAS +. ev EN +. da END_NOTES +. nr #NO_TRAP_RESET 1 +. if \\n[#PRINT_STYLE]=2 \{ .DOC_LEAD \\n[#EN_LEAD]u ADJUST \} +. rr #NO_TRAP_RESET +. vs \\n[#DOC_LEAD]u +. LL \\n[#DOC_L_LENGTH]u +. ta \\n(.lu +. if \\n[#COLUMNS] \{\ +. LL \\n[#COL_L_LENGTH]u +. ta \\n(.lu +. \} +. if \\n[#EN_NUMBER]=1 \{\ +\!. ne 3 +. if !'\\*[$EN_STRING]'' \{ .sp \} +. if \\n[#PRINT_STYLE]=1 \{\ +. fam C +. ft R +. ps 12 +. \} +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_TITLE_FAM] +. FT \\*[$EN_TITLE_FT] +. PT_SIZE \\n[#EN_PS]u\\*[$EN_TITLE_SIZE_CHANGE] +. \} +. if !'\\*[$EN_TITLE]'' \{\ +. if '\\*[$EN_TITLE_QUAD]'L' \{ .LEFT \} +. if '\\*[$EN_TITLE_QUAD]'LEFT' \{ .LEFT \} +. if '\\*[$EN_TITLE_QUAD]'C' \{ .CENTER \} +. if '\\*[$EN_TITLE_QUAD]'CENTER' \{ .CENTER \} +. if '\\*[$EN_TITLE_QUAD]'CENTRE' \{ .CENTER \} +. if '\\*[$EN_TITLE_QUAD]'R' \{ .RIGHT \} +. if '\\*[$EN_TITLE_QUAD]'RIGHT' \{ .RIGHT \} +. ie \\n[#EN_TITLE_UNDERSCORE] \{\ +. UNDERSCORE "\\*[$EN_TITLE] +. \} +. el \{\ +. PRINT "\\*[$EN_TITLE] +. \} +. \} +. \} +. ie \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\ +. ie \\n[#EN_NUMBER]=1 \{\ +. if !'\\*[$EN_TITLE]'' \{ .sp \} +. \} +. el \{ .sp \} +\!. TRAP OFF +. if \\n[#PRINT_STYLE]=1 \{\ +. fam C +. ft R +. ps 12 +. \} +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_NUMBER_FAM] +. FT \\*[$EN_NUMBER_FT] +. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE] +. \} +. nr #RESET_L_LENGTH \\n(.l +. nr #EN_NUMBER_L_LENGTH \w'\0'*\\n[#EN_NUMBER_PLACEHOLDERS]+\w'.' +. ll \\n[#EN_NUMBER_L_LENGTH]u +. RIGHT +\En[#EN_NUMBER]. +. if \\n[#PRINT_STYLE]=1 \{\ +. fam C +. ft R +. ps 12 +. \} +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_FAM] +. FT \\*[$EN_FT] +. PT_SIZE \\n[#EN_PS]u +. \} +. EL +. ll \\n[#RESET_L_LENGTH]u +. in \\n[#EN_NUMBER_L_LENGTH]u+\w'.\0'u +. nr #EN_TEXT_INDENT \\n(.i +. QUAD \\*[$EN_QUAD] +\!. TRAP +. \} +. el \{\ +. ie \\n[#EN_NUMBER]=1 \{\ +. if !'\\*[$EN_TITLE]'' \{ .sp \} +. \} +. el \{ .sp \} +. if \\n[#PRINT_STYLE]=1 \{\ +. fam C +. ft R +. ps 12 +. \} +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_NUMBER_FAM] +. FT \\*[$EN_NUMBER_FT] +. PT_SIZE \\n[#EN_PS]u\\*[$EN_NUMBER_SIZE_CHANGE] +. \} +. QUAD \\*[$EN_QUAD] +\En[#EN_NUMBER].\0\c +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_FAM] +. FT \\*[$EN_FT] +. PT_SIZE \\n[#EN_PS]u +. \} +. \} +. \} +. el \{\ +. br +. if \\n[#EN_NUMBERS_ALIGN_RIGHT] \{\ +. in 0 +. \} +. di +. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u +. nr #PP_STYLE \\n[#PP_STYLE_PREV] +. if !\\n[#INDENT_FIRSTS] \{ .INDENT_FIRST_PARAS OFF \} +. rr #INDENT_FIRSTS +. rr #ENDNOTE +. ev +. if \\n[#PRINT_STYLE]=1 \{\ +. if \\n[#UNDERLINE_WAS_ON] \{\ +. rr #UNDERLINE_WAS_ON +. UNDERLINE +. \} +. \} +. if \\n[#SLANT_WAS_ON] \{\ +. rr #SLANT_WAS_ON +\*[SLANT]\c +. \} +. \} +.END +\# +\# +\# ENDNOTES +\# -------- +\# *Arguments: +\# none +\# *Function: +\# Sets new document leading from #EN_LEAD, breaks to a new page, +\# sets up an endnotes page based on registers and strings associated +\# with endnotes, then outputs diversion END_NOTES. +\# +.MAC ENDNOTES END +. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD] +. if \\n[#PRINT_STYLE]=2 \{ .DOC_LEAD \\n[#EN_LEAD]u ADJUST \} +. if \\n[#DOC_TYPE]=2 \{ .HDRFTR_CENTER \} +. NEWPAGE +. if \\n[#SLANT_ON] \{\ +\*[SLANTX]\c +. \} +. if !'\\*[$EN_STRING]'' \{\ +. if \\n[#PRINT_STYLE]=1 \{\ +. fam C +. ft R +. ps 12 +. \} +. if \\n[#PRINT_STYLE]=2 \{\ +. FAMILY \\*[$EN_STRING_FAM] +. FT \\*[$EN_STRING_FT] +. PT_SIZE \\n[#EN_PS]u\\*[$EN_STRING_SIZE_CHANGE] +. \} +. if '\\*[$EN_STRING_QUAD]'L' \{ .LEFT \} +. if '\\*[$EN_STRING_QUAD]'LEFT' \{ .LEFT \} +. if '\\*[$EN_STRING_QUAD]'C' \{ .CENTER \} +. if '\\*[$EN_STRING_QUAD]'CENTER' \{ .CENTER \} +. if '\\*[$EN_STRING_QUAD]'CENTRE' \{ .CENTER \} +. if '\\*[$EN_STRING_QUAD]'R' \{ .RIGHT \} +. if '\\*[$EN_STRING_QUAD]'RIGHT' \{ .RIGHT \} +. EL +. ie \\n[#EN_STRING_UNDERSCORE] \{\ +. ie \\n[#EN_STRING_UNDERSCORE]=2 \{\ +. UNDERSCORE2 "\\*[$EN_STRING] +. \} +. el \{\ +. UNDERSCORE "\\*[$EN_STRING] +. \} +. \} +. el \{\ +. PRINT "\\*[$EN_STRING] +. \} +. \} +. ev EN +. nf +. vs \\n[#DOC_LEAD]u +. END_NOTES +. br +. ev +. rm END_NOTES +. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u +.END +\# +\# ==================================================================== +\# \# +++COLUMNS+++ \# \# COLUMNS @@ -8130,7 +8938,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# \# N.B.--the START macro *must* be used after COLLATE (and any other \# macros that alter mom's behaviour). -\# +\# .MAC COLLATE END . nr #COLLATE 1 . nr #HEADER_STATE \\n[#HEADERS_ON] @@ -8144,13 +8952,17 @@ y\\R'#DESCENDER \\n[.cdp]' . LL \\n[#DOC_L_LENGTH]u . QUAD $DOC_QUAD . LS \\n[#DOC_LEAD]u +\*[SLANTX] +\*[CONDX] +\*[EXTX] . NEWPAGE . rr #PAGENUM_STYLE_SET +. rm $EN_TITLE .END \# \# \# SET TRAPS FOR HEADERS/FOOTERS/FOOTNOTES -\# --------------------------------------- +\# --------------------------------------- \# *Arguments: \# <none> \# *Function: @@ -8163,12 +8975,14 @@ y\\R'#DESCENDER \\n[.cdp]' \# .MAC TRAPS END \# *Remove all header/footer traps -. ch DO_T_MARGIN -. ch DO_B_MARGIN -. ch HEADER -. ch FOOTER +. if !\\n[#NO_TRAP_RESET] \{\ +. ch DO_T_MARGIN +. ch DO_B_MARGIN +. ch HEADER +. ch FOOTER \# *Plant header trap -. wh 0 HEADER +. wh 0 HEADER +. \} \# *Adjust lead so last line of text falls on B_MARGIN,... . ie \\n[#ADJ_DOC_LEAD] \{\ . nr #LINES_PER_PAGE 0 1 @@ -8188,13 +9002,15 @@ y\\R'#DESCENDER \\n[.cdp]' . nr #B_MARGIN \\n[#PAGE_LENGTH]-(\\n[#T_MARGIN]+(\\n[#DOC_LEAD]*\\n[#LINES_PER_PAGE])) . \} \# *Set footer and footnote overflow traps -. nr #FN_COUNT 0 1 -. nr #SPACE_REMAINING 0 -. nr #FN_DEPTH 0 -. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u -. wh 12i FOOTER -. wh -\\n[#B_MARGIN]u FN_OVERFLOW_TRAP -. ch FOOTER -\\n[#B_MARGIN]u +. if !\\n[#NO_TRAP_RESET] \{\ +. nr #FN_COUNT 0 1 +. nr #SPACE_REMAINING 0 +. nr #FN_DEPTH 0 +. nr #VARIABLE_FOOTER_POS 0-\\n[#B_MARGIN]u +. wh 12i FOOTER +. wh -\\n[#B_MARGIN]u FN_OVERFLOW_TRAP +. ch FOOTER -\\n[#B_MARGIN]u +. \} .END \# \# @@ -8264,7 +9080,7 @@ y\\R'#DESCENDER \\n[.cdp]' \# .MAC REMOVE_INDENT END . in 0 -. ll \\n[#L_LENGTH]u +. ll \\n[#L_LENGTH]u . ta \\n(.lu .END \# @@ -8388,4 +9204,3 @@ y\\R'#DESCENDER \\n[.cdp]' \# .ALIAS COL_BREAK COL_NEXT .ALIAS PRINT_FOOTNOTE_RULE FOOTNOTE_RULE -\# |