/contrib/groff/contrib/mom/momdoc/typemacdoc.html
https://bitbucket.org/freebsd/freebsd-head/ · HTML · 235 lines · 205 code · 30 blank · 0 comment · 0 complexity · 23f6376eae4b9eab81920f399e2f16f9 MD5 · raw file
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
- <title>Mom -- Typesetting macros in document processing</title>
- </head>
- <body bgcolor="#dfdfdf">
- <!====================================================================>
- <a href="docelement.html#TOP">Next</a>
- <a href="docprocessing.html#TOP">Prev</a>
- <a href="toc.html">Back to Table of Contents</a>
- <p>
- <a name="TOP"></a>
- <a name="TYPESETTING">
- <h1 align="center"><u>USING TYPESETTING MACROS DURING DOCUMENT PROCESSING</u></h1>
- </a>
- During document processing, most of the
- <a href="typesetting.html#MACROS_TYPESETTING">typesetting macros</a>
- affect type in the document globally. For example, if you turn kerning
- off, pairwise kerning is disabled not only in paragraphs, but
- also in headers, footers, quotes, and so on.
- <p>
- Typesetting macros that alter margins and line lengths affect
- <a href="definitions.html#TERMS_RUNNING">running text</a>
- globally (or at least try to), but leave headers/footers and footnotes
- alone. (To indent footnotes, see the full explanation of the
- <a href="docelement.html#FOOTNOTE">FOOTNOTE</a>
- macro.)
- <p>
- <strong>Mom</strong>'s tabs
- (both
- <a href="typesetting.html#TYPESETTING_TABS">typesetting tabs</a>
- and
- <a href="typesetting.html#STRING_TABS">string tabs</a>)
- behave as expected in running text during document processing. Tab
- structures that do not exceed the line length of running text are
- preserved sensibly from page to page, and, if
- <a href="docprocessing.html#COLUMNS">COLUMNS</a>
- are enabled, from column to column.
- <p>
- Some typesetting macros, however, when used during document
- processing, behave in special ways. These are the macros that deal
- with the basic parameters of type style: horizontal and vertical
- margins, line length,
- <a href="definitions.html#TERMS_FAMILY">family</a>,
- <a href="definitions.html#TERMS_FONT">font</a>,
- <a href="definitions.html#TERMS_PS">point size</a>,
- <a href="definitions.html#TERMS_LEADING">leading</a>,
- and
- <a href="definitions.html#TERMS_QUAD">quad</a>.
- <p>
- <strong>Mom</strong> assumes that any changes to these parameters
- stem from a temporary need to set type in a style different from that
- provided by <strong>mom</strong>'s
- <a href="docelement.html#INDEX_DOCELEMENT">document element tags</a>.
- In other words, you need to do a bit of creative typesetting in the
- middle of a document.
- <p>
- The following lists those typesetting macros whose behaviour during
- document processing requires some explanation.
- (Please refer to
- <a href="#TB_MARGINS">Top and bottom margins in document processing</a>
- for information on how <strong>mom</strong> interprets
- <a href="typesetting.html#T_MARGIN">T_MARGIN</a>
- and
- <a href="typesetting.html#B_MARGIN">B_MARGIN</a>
- in document processing. Additionally, see
- <a href="#ADD_SPACE">ADD_SPACE</a>
- if you encounter the problem of trying to get <strong>mom</strong>
- to put space at the tops of pages after the first.)
- <pre>
- MACRO EFFECT DURING DOCUMENT PROCESSING
- ----- ---------------------------------
- L_MARGIN *The left margin of all running text
- assumes the new value.
- *The line length remains unaltered.
- *The header and footer left margin
- remain at the current document default.
- (You won't use this often by itself. Most
- likely, you'll use it in combination with
- R_MARGIN or LL.)
- R_MARGIN *The right margin of all running text
- assumes the new value. In other words,
- the line length is altered.
- *The header and footer right margin
- remain at the current document default.
- LL *The line length of all running text
- is set to the new value.
- *The header and footer line length remain
- at the current document default.
- FAMILY *Changes family for the duration of the
- current tag only. As soon as another document
- element tag is invoked, the family reverts to
- the current default for the new tag.
- FT *Changes font for the duration of the
- current tag only. As soon as another document
- element tag is entered, the font reverts
- to the current default for the new tag.
- N.B. -- \*[SLANT] and \*[BOLDER] affect
- paragraph text, and remain in effect for all
- paragraphs until turned off. If you want to
- use them in a macro that takes a string
- argument, include the escape in the string.
- \*[COND] and \*[EXT] behave similarly.
- PT_SIZE *Changes point size for the duration of the
- current tag only. As soon as another document
- element tag is entered, the point size reverts
- to the current document default for the new
- tag.
- LS *Changes line space for the duration of the
- current tag only. As soon as another document
- element tag is entered, the line space reverts to
- the current document default for the new
- tag.
- Using LS to temporarily change leading within a
- document will almost certainly result in a bottom
- margin that doesn't align with the bottom margin
- of subsequent pages. You'll need to use the SHIM
- macro to get mom back on track when you're ready
- to return to the document's default leading.
- QUAD *Changes quad for the duration of the
- current tag only. As soon as another document
- element tag is entered, the quad reverts to
- the current document default for the new
- tag.
- N.B. -- Line-for-line quadding macros
- (LEFT, CENTER, RIGHT) are also temporary,
- overridden by the QUAD value of any subsequent
- document element tag.
- </pre>
- <hr>
- <!=====================================================================>
- <a name="TB_MARGINS">
- <h2><u>Top and bottom margins in document processing</u></h2>
- </a>
- Normally, <strong>mom</strong> establishes the top and bottom margins
- of
- <a href="definitions.html#TERMS_RUNNING">running text</a>
- in documents from the values of <strong>HEADER_MARGIN +
- HEADER_GAP</strong> and <strong>FOOTER_MARGIN + FOOTER_GAP</strong>
- respectively. However, if you invoke
- <a href="typesetting.html#T_MARGIN">T_MARGIN</a>
- or
- <a href="typesetting.html#B_MARGIN">B_MARGIN</a>
- either before or after
- <a href="docelement.html#START">START</a>,
- they set the top and bottom margins of running text irrespective
- of <strong>HEADER_GAP</strong> and <strong>FOOTER_GAP</strong>.
- <p>
- Put another way, in document processing, <strong>T_MARGIN</strong>
- and <strong>B_MARGIN</strong> set the top and bottom margins of
- running text, but have no effect on the placement of
- <a href="definitions.html#TERMS_HEADER">headers</a>,
- <a href="definitions.html#TERMS_FOOTER">footers</a>,
- or page numbers.
- <a name="ADD_SPACE">
- <h2><u>ADD_SPACE</u></h2>
- </a>
- <p>
- Occasionally, you may want to insert space before the start of
- <a href="definitions.html#TERMS_RUNNING">running text</a>
- on pages after the first.
- <p>
- You might have tried using
- <a href="typesetting.html#ALD">ALD</a>
- or
- <a href="typesetting.html#SPACE">SPACE</a>
- and found it did nothing. This is because <strong>mom</strong>
- normally inhibits any extra space before the start of running text
- on pages after the first.
- <p>
- If you need the space, you must use the macro,
- <strong>ADD_SPACE</strong>, in conjuction with
- <a href="typesetting.html#NEWPAGE">NEWPAGE</a>.
- <strong>ADD_SPACE</strong> takes as its single argument the
- distance you want <strong>mom</strong> to advance from the normal
- baseline position at the top of the page. A
- <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a>
- is required.
- <p>
- For example, say you wanted to insert 2 inches of space before the
- start of running text on a page other than the first. You'd
- accomplish it with
- <p>
- <pre>
- .NEWPAGE
- .ADD_SPACE 2i
- </pre>
- which would terminate your current page, break to a new page,
- print the header (assuming headers are on) and insert 2 inches of
- space before the start of running text.
- <p>
- Since adding space in this way is almost sure to disrupt
- <strong>mom</strong>'s ability to guarantee perfectly flush bottom
- margins, I highly recommend using the
- <a href="docprocessing.html#SHIM">SHIM</a>
- macro immediately after <strong>ADD_SPACE</strong>.
- <p>
- <hr>
- <a href="docelement.html#TOP">Next</a>
- <a href="docprocessing.html#TOP">Prev</a>
- <a href="#TOP">Top</a>
- <a href="toc.html">Back to Table of Contents</a>
- </body>
- </html>