Import of mom
[s-roff.git] / contrib / mom / momdoc / headfootpage.html
blob3e0b7b54d0833981ee461d9fa295d92e6797fae9
1 <html>
2 <head>
3 <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
4 <title>Mom -- Document processing: headers, footers and pagination</title>
5 </head>
6 <body bgcolor="#dfdfdf">
8 <!====================================================================>
10 <a href="rectoverso.html#TOP">Next</a>&nbsp;&nbsp;
11 <a href="docelement.html#TOP">Prev</a>&nbsp;&nbsp;
12 <a href="toc.html">Back to Table of Contents</a>
14 <a name="TOP"></a>
15 <a name="HEADFOOTPAGE">
16 <h2 align="center"><u>DOCUMENT HEADERS, FOOTERS, AND PAGINATION</u></h2>
17 </a>
19 <ul>
20 <li><a href="#HEADFOOTPAGE_INTRO">Introduction -- VERY IMPORTANT; read me!</a>
21 <ul>
22 <li><a href="#PAGINATION_NOTE">An important note on pagination</a>
23 </ul>
24 <li><a href="#DESCRIPTION_GENERAL">General description of headers/footers</a>
25 <li><a href="#HEADER_STYLE">Default specs for headers/footers</a>
26 <li><a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>
27 <li><a href="#HEADFOOT_MANAGEMENT">Managing headers/footers</a>
28 <ul>
29 <li><a href="#HEADERS">HEADERS</a> -- on or off
30 <li><a href="#FOOTERS">FOOTERS</a> -- on or off
31 <li><a href="#FOOTER_ON_FIRST_PAGE">FOOTER_ON_FIRST_PAGE</a>
32 </ul>
33 <li><a href="#HEADFOOT_CONTROL">Control macros for headers/footers</a>
34 <ul>
35 <li><a href="#HDRFTR_STRINGS">Header/footer strings</a>
36 <li><a href="#HDRFTR_STYLE">Header/footer style</a>
37 <ul>
38 <li><a href="#HDRFTR_STYLE_GLOBAL">Global style control</a>
39 <li><a href="#HDRFTR_STYLE_PART">Part-by-part style control</a>
40 </ul>
41 <li><a href="#HDRFTR_VERTICAL">Vertical placement and spacing</a>
42 <ul>
43 <li><a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>
44 <li><a href="#HDRFTR_GAP">HEADER_GAP</a>
45 </ul>
46 <li><a href="#HDRFTR_SEPARATOR">The header/footer separator rule</a>
47 <ul>
48 <li><a href="#HDRFTR_RULE">HEADER_RULE</a> -- on or off
49 <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a> -- distance of rule from header/footer
50 </ul>
51 </ul>
52 <li><a href="#PAGINATION">Pagination</a>
53 </ul>
55 <a name="HEADFOOTPAGE_INTRO">
56 <h2><u>Introduction</u></h2>
57 </a>
59 <p>
60 <a href="definitions.html#TERMS_HEADER">Headers</a>
61 and
62 <a href="definitions.html#TERMS_FOOTER">footers</a>,
63 as defined in the section
64 <a href="definitions.html#TERMS_MOM">Mom's Document Processing Terms</a>,
65 are those parts of a document that contain information about the document
66 itself which appear in the margins either above or below
67 <a href="definitions.html#TERMS_RUNNING">running text</a>.
68 They are, in all respects but two, identical. The differences are:
69 <p>
70 <ol>
71 <li>headers appear in the margin <em>above</em> running text while
72 footers appear in the margin <em>beneath</em> running text;
73 <li>the (optional) rule that separates headers from running
74 text appears <em>below</em> the header while
75 the (optional) rule that separates footers from running
76 text appears <em>above</em> the footer.
77 </ol>
78 <a name="HEADERFOOTER"></a>
79 <p>
80 Because headers and footers are virtually identical, this
81 documentation addresses itself only to headers. In all cases,
82 unless otherwise noted, descriptions of headers
83 describe footers as well.
84 <p>
85 Furthermore, any
86 <a href="definitions.html#TERMS_CONTROLMACRO">control macro</a>
87 that begins with <strong>HEADER_</strong> may be used to control
88 footers, simply by replacing <strong>HEADER_</strong> with
89 <strong>FOOTER_</strong>.
90 <p>
91 <strong>Author's note:</strong> Left to their own devices (i.e. if
92 you're happy with the way <strong>mom</strong> does things by default),
93 headers are something you never have to worry about. You can skip
94 reading this section entirely. But if you want to change them, be
95 advised that headers have more macros to control their appearance than
96 any other document element. The text of this documentation becomes
97 correspondingly dense at this point.
98 <a name="PAGINATION_NOTE"></a>
99 <p>
100 <strong>NOTE:</strong> While the single page number that
101 <strong>mom</strong> generates in either the top or bottom margin
102 above or below running text is technically a kind of header/footer,
103 <strong>mom</strong> and this documentation treat it as a
104 separate page element.
106 <a name="DESCRIPTION_GENERAL"><h3><u>General description of headers/footers</u></h3></a>
108 Headers comprise three distinct parts: a left part, a center part,
109 and a right part. Each part contains text (a &quot;string&quot;)
110 that identifies some aspect of the document as a whole.
112 The left part (&quot;header left&quot;) lines up with the document's
113 left margin. The center part (&quot;header center&quot;) is
114 centered on the document's line length. The right part (&quot;header
115 right&quot;) lines up with the document's right margin. Not all parts
116 need contain a string, and if you don't want headers at all, you can
117 turn them off completely.
119 <strong>A note to groff experts:</strong> Although
120 <strong>mom</strong>'s headers resemble the three-part titles generated
121 by <code>.tl</code>, they're in no way related to it, nor based
122 upon it. <code>.tl</code> is not used at all in <strong>mom</strong>.
124 Normally, <strong>mom</strong> fills headers with strings appropriate
125 to the document type selected with
126 <a href="docprocessing.html#DOCTYPE">DOCTYPE</a>.
127 You can, however, supply whatever strings you like -- including page
128 numbers -- to go in any part of headers. What's more, you can set the
129 family, font, size and capitalisation style (caps or caps/lower-case)
130 for each header part individually.
132 By default, <strong>mom</strong> prints a horizontal rule beneath
133 headers to separate them visually from running text. In the case of
134 footers, the rule is <em>above</em> running text. You can increase
135 or decrease the space between the header and the rule if you like (with
136 <a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a>),
137 or remove it completely.
139 <a name="HEADER_STYLE"><h3><u>Default specs for headers/footers</u></h3></a>
141 <strong>Mom</strong> makes small type adjustments to each part of
142 the header (left, center, right) to achieve an aesthetically
143 pleasing result. The defaults are listed below. (The strings
144 <strong>mom</strong> puts by default in each part are explained in
145 <a href="docprocessing.html#DOCTYPE">DOCTYPE</a>.)
147 <strong>NOTE:</strong> Except for capitalization (all caps or
148 caps/lower-case), these defaults apply only to
149 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>.
151 <pre>
152 TYPE SPEC HEADER LEFT HEADER CENTER HEADER RIGHT
153 --------- ----------- ------------- ------------
154 Family document default document default document default
155 Font roman italic roman
156 All caps no no yes
157 Size* -.5 (points) -.5 (points) -2 (points)
158 (-2 if all caps) (-2 if all caps) (-.5 if not all caps)
160 *Relative to the point size of type in paragraphs
161 </pre>
163 You can, of course, change any of the defaults using the appropriate
164 control macros. And should you wish to design headers from the ground
165 up, <strong>mom</strong> has a special macro,
166 <a href="#HDRFTR_PLAIN">HEADER_PLAIN</a>,
167 that removes all type adjustments to headers. The straightforward
168 type specs for paragraphs are used instead, providing a simple
169 reference point for any alterations you want to make to the family,
170 font, size and capitalisation style of any header part.
171 <a name="VERTICAL_SPACING"><h3><u>Vertical placement and spacing of headers/footers</u></h3></a>
173 As explained in the section on
174 <a href="typedocmac.html">typesetting macros in document processing</a>,
175 the top and bottom margins of a <strong>mom</strong> document
176 are the vertical start and end positions of
177 <a href="definitions.html#TERMS_RUNNING">running text</a>,
178 not the vertical positions of headers or footers, which, by definition,
179 appear in the margin <em>above</em> (or below) running text.
181 The vertical placement of headers
182 is controlled by the macro
183 <a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>,
184 which establishes the
185 <a href="definitions.html">baseline</a>
186 position of headers relative to the <em>top</em> edge of the page.
187 The header rule, whose position is relative to the header itself,
188 is controlled by a separate macro.
189 <strong>FOOTER_MARGIN</strong> establishes the baseline position of
190 footers relative to the <em>bottom</em> edge of the page.
192 <a href="#HDRFTR_GAP">HEADER_GAP</a> establishes
193 the distance between headers and the <em>start</em> of running text (effectively
194 making <strong>HEADER_MARGIN + HEADER_GAP</strong> the top margin of
195 running text unless you give <strong>mom</strong> a literal top margin
196 (with
197 <a href="typesetting.html#T_MARGIN">T_MARGIN</a>),
198 in which case she ignores <strong>HEADER_GAP</strong> and starts
199 running text at whatever top margin you gave.
200 <strong>FOOTER_GAP</strong> and
201 <a href="typesetting.html#B_MARGIN">B_MARGIN</a>
202 work similarly, except they determine where running text
203 <em>ends</em> on the page.
205 Confused? <strong>Mom</strong> apologizes. It's really quite
206 simple. By default, <strong>mom</strong> sets headers 4-1/2
207 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>
208 down from the top of the page and starts running text 3 picas (the
209 <strong>HEADER_GAP</strong>) beneath that, which means the
210 effective top margin of running text is 7-1/2 picas (visually approx. 1
211 inch). If you give <strong>mom</strong> a literal top margin (with
212 <a href="typesetting.html#T_MARGIN">T_MARGIN</a>),
213 she ignores the <strong>HEADER_GAP</strong> and starts running
214 text at whatever top margin you gave.
216 Footers are treated the same way, the only difference being the
217 default distances. <strong>Mom</strong> sets footers 3 picas up from
218 the bottom of the page, and interrupts the processing of running text 3
219 picas (the <strong>FOOTER_GAP</strong>) above that (again, visually
220 approx. 1 inch). If you give <strong>mom</strong> a literal bottom
221 margin (with <a
222 href="typesetting.html#B_MARGIN">B_MARGIN</a>), she ignores the
223 <strong>FOOTER_GAP</strong> and interrupts the processing of running
224 text at whatever bottom margin you gave.
226 If <strong>mom</strong> is paginating your document (she
227 does, by default, at the bottom of each page), the vertical
228 spacing and placement of page numbers, whether at the top
229 or the bottom of the page, is managed exactly as if the
230 page numbers were headers (or footers), and are controlled
231 by the same macros. See
232 <a href="#PAGINATION">Pagination control</a>.
233 <br>
234 <hr>
236 <!========================================================================>
238 <a name="HEADFOOT_MANAGEMENT">
239 <h2><u>Managing headers/footers</u></h2>
240 </a>
243 The following are the basic macros for turning
244 <a href="definitions.html#TERMS_HEADER">headers</a>
246 <a href="definitions.html#TERMS_FOOTER">footers</a>
247 on or off. They should be invoked prior to
248 <a href="docprocessing.html#START">START</a>.
250 By default, <strong>mom</strong> prints page headers. If you turn
251 them off, she will begin
252 <a href="definitions.html#TERMS_RUNNING">running text</a>
253 on each page with a default top margin of 6
254 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>
255 unless you have requested a different top margin (with
256 <a href="typesetting.html#T_MARGIN">T_MARGIN</a>)
257 prior to
258 <a href="docprocessing.html#START">START</a>.
260 Please note that headers and footers are mutually exclusive. If
261 headers are on, footers (but NOT bottom-of-page numbering) are
262 automatically turned off. Equally, if footers are on, headers
263 (but NOT top-of-page numbering) are automatically turned off. Thus, if
264 you'd prefer footers in a document, you need only invoke
265 <a href="#FOOTERS">FOOTERS</a>;
266 there's no need to turn headers off first.
267 <br>
269 <!---HEADERS--->
271 <hr width="66%" align="left">
273 <a name="HEADERS"></a>
274 Macro: <strong>HEADERS</strong> <var>toggle</var>
277 <a href="definitions.html#TERMS_HEADER">Page headers</a>
278 are on by default. If you don't want them, turn them off by
279 invoking <strong>HEADERS</strong> with any argument
280 (<strong>OFF, QUIT, END, X...</strong>), e.g.
282 <pre>
283 .HEADERS OFF
284 </pre>
286 <strong>NOTE:</strong> <strong>HEADERS</strong> automatically
287 disables
288 <a href="definitions.html#TERMS_FOOTER">footers</a>
289 (you can't have both), but not the page numbers that normally
290 appear at the bottom of the page.
292 <strong>ADDITIONAL NOTE:</strong> If <strong>HEADERS</strong>
293 are <strong>OFF</strong>, <strong>mom</strong>'s normal top
294 margin for
295 <a href="definitions.html#TERMS_RUNNING">running text</a>
296 (7.5
297 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>)
298 changes to 6 picas (visually approx. 1 inch). This does NOT apply
299 to the situation where footers have been explicitly turned on
300 (with
301 <a href="#FOOTERS">FOOTERS</a>).
302 Explicitly invoking footers moves page numbering to the
303 top of the page, where its placement and spacing are the same as
304 for headers. (I.e. the top margin of running text remains 7.5
305 picas.)
306 <br>
308 <!---FOOTERS--->
310 <hr width="66%" align="left">
312 <a name="FOOTERS"></a>
313 Macro: <strong>FOOTERS</strong> <var>toggle</var>
316 <a href="definitions.html#TERMS_FOOTER">Page footers</a>
317 are off by default. If you want them instead of
318 <a href="definitions.html#TERMS_HEADER">headers</a>
319 (you can't have both), turn them on by invoking
320 <strong>FOOTERS</strong> without an argument, e.g.
322 <pre>
323 .FOOTERS
324 </pre>
327 <strong>FOOTERS</strong> automatically disables headers, and
328 <strong>mom</strong> shifts the placement of page numbers from their
329 normal position at page bottom to the top of the page.
331 <strong>NOTE:</strong> By default, when footers are on,
332 <strong>mom</strong> does not print a page number on the first
333 page of a document, nor on first pages after
334 <a href="rectoverso.html#COLLATE">COLLATE</a>.
335 If you don't want this behaviour, you can change it with
336 <a href="#PAGENUM_ON_FIRST_PAGE">PAGENUM_ON_FIRST_PAGE</a>.
337 <br>
339 <!---FOOTER_ON_FIRST_PAGE--->
341 <hr width="66%" align="left">
343 <a name="FOOTER_ON_FIRST_PAGE"></a>
344 Macro: <strong>FOOTER_ON_FIRST_PAGE</strong> <var>toggle</var>
347 If you invoke
348 <a href="#FOOTERS">FOOTERS</a>,
349 <strong>mom</strong>, by default, does not print a footer on the
350 first page of the document. (The
351 <a href="definitions.html">docheader</a>
352 on page makes it redundant.) However, should you wish a footer on
353 page 1, invoke <strong>FOOTER_ON_FIRST_PAGE</strong> without any argument.
354 <br>
355 <hr>
357 <a name="HEADFOOT_CONTROL">
358 <h2><u>Control macros for headers/footers</u></h2>
359 </a>
361 Virtually every part of headers (see the paragraph on how
362 <a href="#HEADERFOOTER">&quot;headers&quot; means &quot;footers&quot;</a>
363 in the
364 <a href="#HEADFOOTPAGE_INTRO">introduction to headers/footers</a>)
365 can be designed to your own specifications.
367 <a name="INDEX_REFERENCE">
368 <h3><u>Header/footer control macros</u></h3>
369 </a>
371 <ul>
372 <li><a href="#HDRFTR_STRINGS"><strong>STRINGS</strong></a>
373 <ul>
374 <li><a href="#HDRFTR_LEFT">HEADER_LEFT</a>
375 <li><a href="#HDRFTR_CENTER">HEADER_CENTER</a>
376 <li><a href="#HDRFTR_RIGHT">HEADER_RIGHT</a>
377 <li><a href="#PAGE_NUMBER_SYMBOL">Replacing header left, center or right with the page number</a>
378 <li><a href="#PAGE_NUMBER_INCL">Including the page number in header left, center or right</a>
379 </ul>
380 <li><a href="#HDRFTR_STYLE"><strong>STYLE</strong></a>
381 <ul>
382 <li><a href="#HDRFTR_STYLE_GLOBAL"><strong>Global changes</strong></a>
383 <li><a href="#HDRFTR_GLOBAL_FAMILY">HEADER_FAMILY</a>&nbsp;-- family for entire header
384 <li><a href="#HDRFTR_GLOBAL_SIZE">HEADER_SIZE</a>&nbsp;&nbsp;&nbsp;-- size for entire header
385 <li><a href="HDRFTR_PLAIN">HDRFTR_PLAIN</a>&nbsp;&nbsp;-- disable default adjustments to header parts
386 </ul>
387 <ul>
388 <li><a href="#HDRFTR_STYLE_PART"><strong>Part-by-part changes</strong></a>
389 <li><a href="#_FAMILY">_FAMILY</a>&nbsp;-- left, center or right family
390 <li><a href="#_FONT">_FONT</a>&nbsp;&nbsp;&nbsp;-- left, center or right font
391 <li><a href="#_SIZE">_SIZE</a>&nbsp;&nbsp;&nbsp;-- left, center or right size
392 <li><a href="#_CAPS">_CAPS</a>&nbsp;&nbsp;&nbsp;-- left, center or right all caps
393 </ul>
394 <li><a href="#HDRFTR_VERTICAL"><strong>VERTICAL PLACEMENT AND SPACING</strong></a>
395 <ul>
396 <li><a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>
397 <li><a href="#HDRFTR_GAP">HEADER_GAP</a>
398 </ul>
399 <li><a href="#HDRFTR_SEPARATOR"><strong>SEPARATOR RULE</strong></a>
400 <ul>
401 <li><a href="#HDRFTR_RULE">HEADER_RULE</a>
402 <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a>
403 </ul>
404 </ul>
406 <!---HDRFTR_STRINGS--->
408 <hr width="66%" align="left">
409 <a name="HDRFTR_STRINGS"><h3><u>Header/footer strings</u></h3></a>
411 <a name="HDRFTR_LEFT">
412 Macro: <strong>HEADER_LEFT</strong> <var>&quot;&lt;text of header left&gt;&quot; | #</var>
413 </a>
414 <br>
415 <a name="HDRFTR_CENTER">
416 Macro: <strong>HEADER_CENTER</strong> <var>&quot;&lt;text of header center&gt;&quot; | #</var>
417 </a>
418 <br>
419 <a name="HDRFTR_RIGHT">
420 Macro: <strong>HEADER_RIGHT</strong> <var>&quot;&lt;text of header right&gt;&quot; | #</var>
421 </a>
424 To change the text (the &quot;string&quot;) of the left, center,
425 or right part of headers, invoke the appopriate macro above with
426 the string you want. For example, <strong>mom</strong>, by default,
427 prints the document's author in the header-left position. If your
428 document has, say, two authors, and you want both their names to
429 appear header-left, change <strong>HEADER_LEFT</strong> like this:
431 <pre>
432 .HEADER_LEFT "R. Stallman, E. Raymond"
433 </pre>
435 Because the arguments to <strong>HEADER_LEFT, _CENTER,</strong>
436 and <strong>_RIGHT</strong> are
437 <a href="definitions.html#TERMS_STRINGARGUMENT">string arguments</a>,
438 they must be enclosed in double-quotes.
440 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
441 with <strong>FOOTER_</strong> to change the strings in footers.
442 <br>
444 <a name="PAGE_NUMBER_SYMBOL">
445 <h3><u>Replacing header-left, -center or -right with the page number</u></h3>
446 </a>
447 If you would like the current page number to appear
448 header-left, -center, or -right <em>instead</em> of a text
449 string, invoke the appropriate macro, above, with the single
450 argument <code>#</code> (the &quot;number&quot; or
451 &quot;pound&quot; sign). Do <strong>NOT</strong> use
452 double-quotes. For example,
454 <pre>
455 .HEADER_CENTER #
456 </pre>
458 will print the current page number in the center part of
459 headers.
461 <a name="PAGE_NUMBER_INCL">
462 <h3><u>Including the page number in header-left, -center or -right</u></h3>
463 </a>
464 If you would like to <em>include</em> the current page number in
465 the string you pass to <strong>HEADER_LEFT, _CENTER,</strong> or
466 <strong>_RIGHT</strong>, use the special
467 <a href="definitions.html#TERMS_INLINES">inline escape</a>
468 <code>\*[PAGE#]</code> in the string argument.
470 For example, say you have a document that's ten pages long, and
471 you want header-right to say "page &lt;whichever&gt; of 10",
472 invoke <strong>HEADER_RIGHT</strong> as follows:
474 <pre>
475 .HEADER_RIGHT "page \*[PAGE#] of 10"
476 </pre>
478 Header-right of page two will read &quot;page 2 of 10&quot;,
479 header-right of page three will read &quot;page 3 of 10&quot;,
480 and so on.
481 <br>
482 <hr>
484 <!---HDRFTR_STYLE--->
486 <a name="HDRFTR_STYLE"><h3><u>Header/footer style</u></h3></a>
489 <a name="HDRFTR_STYLE_GLOBAL"><strong>Global changes</strong></a>
491 The following macros allow you to make changes that affect all
492 parts of the header at once.
494 <ul>
495 <li><a href="#HDRFTR_GLOBAL_FAMILY">HEADER_FAMILY</a>
496 <li><a href="#HDRFTR_GLOBAL_SIZE">HEADER_SIZE</a>
497 <li><a href="#HDRFTR_PLAIN">HEADER_PLAIN</a>
498 </ul>
500 <hr width="33%" align="left">
502 <a name="HDRFTR_GLOBAL_FAMILY">
503 Macro: <strong>HEADER_FAMILY</strong> <var>&lt;family&gt;</var>
504 </a>
507 By default, <strong>mom</strong> uses the default document family
508 for headers. If you would like her to use another
509 <a href="definitions.html#TERMS_FAMILY">family</a>
510 in headers, invoke <strong>HEADER_FAMILY</strong> with the identifier
511 for the family you want. The argument is the same as for the
512 typesetting macro
513 <a href="typesetting.html#FAMILY">FAMILY</a>.
515 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
516 with <strong>FOOTER_</strong> to change the footer family.
517 <br>
519 <hr width="33%" align="left">
521 <a name="HDRFTR_GLOBAL_SIZE">
522 Macro: <strong>HEADER_SIZE</strong> <var>&lt;+|-number of points&gt;</var>
523 <br>
524 <em>*Argument is relative to the point size of type in paragraphs</em>
525 </a>
528 By default, <strong>mom</strong> makes small adjustments to the size
529 of each part of a header to achieve an aesthetically pleasing result.
530 If you'd like her to continue to do so, but would like the overall
531 appearance of headers to be a little smaller or a little larger,
532 invoke <strong>HEADER_SIZE</strong> with + or - the number of
533 <a href="definitions.html#TERMS_PICASPOINTS">points</a>
534 (fractions allowed) by which you want her to in/decrease the size
535 of headers. For example,
537 <pre>
538 .HEADER_SIZE +.75
539 </pre>
541 increases the size of every part of a header by 3/4 of a point while
542 respecting <strong>mom</strong>'s own little size changes.
545 <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
546 for an explanation of how control macros ending in
547 <strong>_SIZE</strong> work.
549 Normally, macros that control headers have no effect on
550 <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>.
551 <strong>HEADER_SIZE</strong> is an exception. While all parts of a
552 header in <strong>PRINTSTYLE TYPEWRITE</strong> are the same size, you
553 can use <strong>HEADER_SIZE</strong> to reduce the header's point size.
554 You'll most likely require this when the
555 <a href="docprocessing.html#COPYSTYLE">COPYSTYLE</a>
556 is <strong>DRAFT</strong>, since portions of the header may overprint
557 if, say, the title of your document is very long.
559 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
560 with <strong>FOOTER_</strong> to change the footer size.
561 <br>
563 <hr width="33%" align="left">
565 <a name="HDRFTR_PLAIN">
566 Macro: <strong>HEADER_PLAIN</strong>
567 </a>
570 By default, <strong>mom</strong> makes adjustments to the font,
571 size, and capitalization style of each part of headers to achieve
572 an aesthetically pleasing look. Should you wish to design your own
573 headers from the ground up without worrying how changes to the various
574 elements of header style interact with <strong>mom</strong>'s defaults,
575 invoke <strong>HEADER_PLAIN</strong> by itself, with no argument.
576 <strong>Mom</strong> will disable her default behaviour for headers,
577 and reset all elements of header style to the same family, font,
578 and point size as she uses in text paragraphs.
580 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
581 with <strong>FOOTER_</strong> to disable <strong>mom</strong>'s
582 default behaviour for the various elements of footer style.
583 <br>
585 <hr width="66%" align="left">
587 <a name="HDRFTR_STYLE_PART"><strong>Part by part changes</strong></a>
589 <strong>NOTE:</strong> When using the following control macros,
590 replace &quot;&lt;POSITION&gt;&quot; by <strong>LEFT, CENTER,</strong>
591 or <strong>RIGHT</strong> as appropriate.
593 <ul>
594 <li><a href="_FAMILY">HEADER_&lt;POSITION&gt;_FAMILY</a>
595 <li><a href="_FONT">HEADER_&lt;POSITION&gt;_FONT</a>
596 <li><a href="_SIZE">HEADER_&lt;POSITION&gt;_SIZE</a>
597 <li><a href="_CAPS">HEADER_&lt;POSITION&gt;_CAPS</a>
598 </ul>
600 <hr width="33%" align="left">
602 <a name="_FAMILY">
603 Macro: <strong>HEADER_&lt;POSITION&gt;_FAMILY</strong> <var>&lt;family&gt;</var>
604 </a>
606 Use <strong>HEADER_&lt;POSITION&gt;_FAMILY</strong> to change the
607 <a href="definitions.html#TERMS_FAMILY">family</a>
608 of any part of headers. See
609 <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
610 for an explanation of how control macros ending in
611 <strong>_FAMILY</strong> work.
613 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
614 with <strong>FOOTER_</strong> to change a footer part's family.
615 <br>
617 <hr width="33%" align="left">
619 <a name="_FONT">
620 Macro: <strong>HEADER_&lt;POSITION&gt;_FONT</strong> <var>&lt;font&gt;</var>
621 </a>
623 Use <strong>HEADER_&lt;POSITION&gt;_FONT</strong> to change the
624 <a href="definitions.html#TERMS_FONT">font</a>
625 of any part of headers. See
626 <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
627 for an explanation of how control macros ending in
628 <strong>_FONT</strong> work.
630 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
631 with <strong>FOOTER_</strong> to change a footer part's font.
632 <br>
634 <hr width="33%" align="left">
636 <a name="_SIZE">
637 Macro: <strong>HEADER_&lt;POSITION&gt;_SIZE</strong> <var>&lt;+|-number of points&gt;</var>
638 </a>
640 Use <strong>HEADER_&lt;POSITION&gt;_SIZE</strong> to change the size of any
641 part of headers (relative to the point size of type in
642 paragraphs). See
643 <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
644 for an explanation of how control macros ending in
645 <strong>_SIZE</strong> work.
647 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
648 with <strong>FOOTER_</strong> to change a footer part's size.
649 <br>
651 <hr width="33%" align="left">
653 <a name="_CAPS">
654 Macro: <strong>HEADER_&lt;POSITION&gt;_CAPS</strong> <var>toggle</var>
655 </a>
657 <strong>HEADER_&lt;POSITION&gt;_CAPS</strong> is a
658 <a href="definitions.html#TERMS_TOGGLE">toggle macro</a>.
659 If you want any part of headers to be set in all caps,
660 regardless of the capitalization of that part's string as given
661 to the
662 <a href="docprocessing.html#REFERENCE_MACROS">reference macros</a>
663 or as defined by you with the
664 <a href="#HDRFTR_STRINGS">header string control macros</a>,
665 simply invoke this macro (using the appropriate position) with no
666 argument. If you wish to turn capitalization off (say, for the
667 header-right string that <strong>mom</strong> capitalizes by
668 default), invoke the argument with any argument (e.g. <strong>OFF,
669 QUIT, END, X...</strong>).
671 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
672 with <strong>FOOTER_</strong> to change a footer part's
673 capitalization style.
674 <br>
675 <hr>
677 <!---HDRFTR_VERTICAL--->
679 <a name="HDRFTR_VERTICAL">
680 <h2><u>Header/footer vertical placement and spacing</u></h2>
681 </a>
685 <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>
686 for an explanation of how <strong>mom</strong> deals with
687 headers, footers, and top/bottom page margins.
688 <br>
690 <!---HDRFTR_MARGIN--->
692 <hr width="66%" align="left">
694 <a name="HDRFTR_MARGIN"></a>
695 Macro: <strong>HEADER_MARGIN</strong> <var>&lt;distance to baseline of header&gt;</var>
696 <br>
697 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
700 Use <strong>HEADER_MARGIN</strong> to set the distance from the
701 top edge of the page to the
702 <a href="definitions.html#TERMS_BASELINE">baseline</a>
703 of type in headers. A unit of measure is required, and decimal
704 fractions are allowed.
706 <strong>Mom</strong>'s default header margin is 4-1/2
707 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>,
708 but if you want a different margin, say, 1/2-inch, do
710 <pre>
711 .HEADER_MARGIN .5i
712 </pre>
714 If your document uses
715 <a href="definitions.html#TERMS_FOOTER">footers</a>,
716 replace <strong>HEADER_</strong>, above, with
717 <strong>FOOTER_</strong>. The argument to
718 <strong>FOOTER_MARGIN</strong> is the distance from the bottom
719 edge of the page to the baseline of type in footers.
721 <strong>Mom</strong>'s default footer margin is 3
722 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>.
724 <strong>NOTE:</strong> <strong>Mom</strong> uses
725 <strong>HEADER_MARGIN</strong> and
726 <strong>FOOTER_MARGIN</strong> to establish the baseline
727 position of page numbers in addition to headers and footers.
729 By default, page numbers appear at the bottom of the page, therefore
730 if you want the default position (bottom), but want to change the
731 baseline placement, use <strong>FOOTER_MARGIN</strong>. Conversely,
732 if page numbers are at the top of the page, either because you turned
733 <a href="#FOOTERS">FOOTERS</a>
734 on or because you instructed <strong>mom</strong> to put them
735 there with
736 <a href="#PAGENUM_POS">PAGENUM_POS</a>,
737 you'd use <strong>HEADER_MARGIN</strong> to change their
738 baseline placement.
739 <br>
741 <!---HDRFTR_GAP--->
743 <hr width="66%" align="left">
745 <a name="HDRFTR_GAP"></a>
746 Macro: <strong>HEADER_GAP</strong> <var>&lt;distance from header to start of running text&gt;</var>
747 <br>
748 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
751 Use <strong>HEADER_GAP</strong> to set the distance from the
752 <a href="definitions.html#TERMS_BASELINE">baseline</a>
753 of type in headers to the start of
754 <a href="definitions.html#TERMS_RUNNING">running text</a>.
755 A unit of measure is required, and decimal fractions are allowed.
757 As explained in
758 <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>,
759 <strong>HEADER_MARGIN + HEADER_GAP</strong> determine the
760 default vertical starting position of running text on the page
761 UNLESS you have given <strong>mom</strong> your own top margin
762 (with
763 <a href="typesetting.html#T_MARGIN">T_MARGIN</a>). If you give
764 a top margin, <strong>mom</strong> ignores
765 <strong>HEADER_GAP</strong>; running text starts at your stated
766 top margin.
769 <strong>Mom</strong>'s default header gap is 3
770 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>,
771 but if you want a different gap, say, 2 centimeters, do
773 <pre>
774 .HEADER_GAP 2c
775 </pre>
777 If your document uses
778 <a href="definitions.html#TERMS_FOOTER">footers</a>,
779 replace <strong>HEADER_</strong>, above, with
780 <strong>FOOTER_</strong>. The argument to
781 <strong>FOOTER_GAP</strong> is the distance from the
782 baseline of type in footers to the last baseline of running text
783 on the page.
785 As explained in
786 <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>,
787 <strong>FOOTER_MARGIN + FOOTER_GAP</strong> determine the
788 default vertical end position of running text on the page
789 UNLESS you have given <strong>mom</strong> a bottom margin
790 (with
791 <a href="typesetting.html#B_MARGIN">B_MARGIN</a>). If you give
792 a bottom margin, <strong>mom</strong> ignores
793 <strong>FOOTER_GAP</strong>; running text ends at your stated
794 bottom margin.
796 <strong>Mom</strong>'s default footer gap is 3
797 <a href="definitions.html#TERMS_PICASPOINTS">picas</a>.
799 <strong>NOTE:</strong> <strong>Mom</strong> uses
800 <strong>HEADER_GAP</strong> and
801 <strong>FOOTER_GAP</strong> to establish the start and end baseline
802 positions of running text with respect to both headers and footers
803 AND page numbers. If you wish to change the gap between
804 the last line of running text and a bottom page number, use
805 <strong>FOOTER_GAP</strong>. If page numbers are at the top of the
806 page, change the gap between the number and the first line of running
807 text with <strong>HEADER_GAP</strong>.
808 <br>
809 <hr>
811 <!---HDRFTR_SEPARATOR--->
813 <a name="HDRFTR_SEPARATOR">
814 <h2><u>Header/footer separator rule</u></h2>
815 </a>
818 The header/footer separator rule is a modest horizontal rule,
819 set slightly below the header (or above the footer), that runs
820 the length of the
821 <a href="definitions.html#TERMS_HEADER">header</a>
822 and helps separate it visually from
823 <a href="definitions.html#TERMS_RUNNING">running text</a>. If
824 you don't want the rule, you can turn it off. If you want it,
825 but at a different vertical position relative to the header (or
826 footer), you can alter its placement.
828 <ul>
829 <li><a href="#HDRFTR_RULE">HEADER_RULE</a> -- on or off
830 <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a> -- distance of rule from header
831 </ul
833 <!---HDRFTR_RULE--->
835 <hr width="66%" align="left">
837 <a name="HDRFTR_RULE"></a>
838 Macro: <strong>HEADER_RULE</strong> <var>toggle</var>
841 By default, <strong>mom</strong> prints a header separator rule
842 underneath headers (or above footers). If you don't want the
843 rule, turn it off by invoking <strong>HEADER_RULE</strong> with any
844 argument (<strong>OFF, QUIT, END, X...</strong>), e.g.
846 <pre>
847 .HEADER_RULE OFF
848 </pre>
850 To turn the rule (back) on, invoke <strong>HEADER_RULE</strong>
851 without any argument.
853 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
854 with <strong>FOOTER_</strong> to enable/disable the printing of
855 the footer separator rule. (Most likely, if you're using
856 <a href="#FOOTERS">FOOTERS</a>, you'll want it off.)
857 <br>
859 <!---HDRFTR_RULE_GAP--->
861 <hr width="66%" align="left">
863 <a name="HDRFTR_RULE_GAP"></a>
864 Macro: <strong>HEADER_RULE_GAP</strong> <var>distance of rule beneath header</var>
865 <br>
866 <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
869 <strong>HEADER_RULE_GAP</strong> is the distance from the
870 <a href="definitions.html#TERMS_BASELINE">baseline</a>
871 of type in headers to the rule underneath. A unit of measure is
872 required, and decimal fractions are allowed. Please note that
873 <strong>HEADER_RULE_GAP</strong> has no effect on
874 <a href="#HEADER_GAP">HEADER_GAP</a>
875 (i.e. <strong>HEADER_RULE_GAP</strong> is NOT added to
876 <strong>HEADER_GAP</strong> when <strong>mom</strong> calculates
877 the space between headers and the start of
878 <a href="definitions.html#TERMS_RUNNING">running text</a>.
880 By default, the header rule gap is 4
881 <a href="definitions.html#TERMS_PICASPOINTS">points</a>.
882 If you'd like to change it to, say, 1/4
883 <a href="definitions.html#TERMS_EM">em</a>, do
885 <pre>
886 .HEADER_RULE_GAP .25m
887 </pre>
889 <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
890 with <strong>FOOTER_</strong> if you're using
891 <a href="definitions.html#TERMS_FOOTER">footers</a>
892 and want to change the separator rule gap. In footers, the gap
893 is measured from the top of the tallest
894 <a href="definitions.html#TERMS_ASCENDER">ascender</a>
895 in the footer.
896 <br>
897 <hr>
899 <a name="PAGINATION">
900 <h2><u>Pagination</u></h2>
901 </a>
904 By default, <strong>mom</strong> paginates documents. Page numbers
905 appear in the bottom margin of the page, centered between two hyphens.
906 As with all elements of <strong>mom</strong>'s document processing,
907 most aspects of pagination style can be altered to suit your taste
908 with control macros.
909 <br>
911 <a name="INDEX_PAGINATION">
912 <h3><u>Pagination macros list</u></h3>
913 </a>
915 <ul>
916 <li><a href="#PAGINATE">PAGINATE</a> -- pagination on or off
917 <li><a href="#PAGENUMBER">PAGENUMBER</a> -- user-defined (starting) page number
918 <li><a href="#PAGENUM_STYLE">PAGENUM_STYLE</a> -- digits, roman numerals, etc
919 <li><a href="#PAGENUM_ON_FIRST_PAGE">PAGENUM_ON_FIRST_PAGE</a> -- applies only when footers are enabled
920 <li><a href="#PAGINATE_CONTROL">Control macros</a>
921 </ul>
922 <br>
924 <!---PAGINATE--->
926 <hr width="66%" align="left">
928 <a name="PAGINATE"></a>
929 Macro: <strong>PAGINATE</strong> <var>toggle</var>
930 <br>
931 Alias: <strong>PAGINATION</strong>
934 By default, <strong>mom</strong> paginates documents (in the bottom
935 margin). If you'd prefer she not paginate, turn pagination off
936 by invoking <strong>PAGINATE</strong> with any argument (<strong>OFF,
937 NO, QUIT, END, X...</strong>), e.g.
939 <pre>
940 .PAGINATE NO
941 </pre>
943 To (re)start pagination, invoke <strong>PAGINATE</strong>
944 without any argument.
945 <br>
947 <!---PAGENUMBER--->
949 <hr width="66%" align="left">
951 <a name="PAGENUMBER"></a>
952 Macro: <strong>PAGENUMBER</strong> <var>&lt;number&gt;</var>
955 As is to be expected, pagination of documents begins at page 1.
956 If you'd prefer that <strong>mom</strong> begin with a different
957 number on the first page of a document, invoke
958 <strong>PAGENUMBER</strong> with the number you want.
960 <strong>PAGENUMBER</strong> need not be used only to give
961 <strong>mom</strong> a "first page" number. It can be used at
962 any time to tell <strong>mom</strong> what number you want a
963 page to have. Subsequent page numbers will, of course, be
964 incremented by 1 from that number.
965 <br>
967 <!---PAGENUM_STYLE--->
969 <hr width="66%" align="left">
971 <a name="PAGENUM_STYLE"></a>
972 Macro: <strong>PAGENUM_STYLE</strong> <var>DIGIT | ROMAN | roman | ALPHA | alpha</var>
975 <strong>PAGENUM_STYLE</strong> lets you tell
976 <strong>mom</strong> what kind of page numbering you want.
978 <table valign="baseline" summary="pagenumstyle">
979 <tr><td>DIGIT<td align="center" width="15">=<td>arabic digits (1, 2, 3...)
980 <tr><td>ROMAN<td align="center" width="15">=<td>upper case roman numerals (I, II, III...)
981 <tr><td>roman<td align="center" width="15">=<td>lower case roman numerals (i, ii, iii...)
982 <tr><td>ALPHA<td align="center" width="15">=<td>upper case letters (A, B, C...)
983 <tr><td>alpha<td align="center" width="15">=<td>lower case letters (a, b, c...)</td></tr>
984 </table>
985 <br>
987 <!---PAGENUM_ON_FIRST_PAGE--->
989 <hr width="66%" align="left">
991 <a name="PAGENUM_ON_FIRST_PAGE"></a>
992 Macro: <strong>PAGENUM_ON_FIRST_PAGE</strong> <var>toggle</var>
995 This macro applies only if you've enabled
996 <a href="#FOOTERS">FOOTERS</a>.
997 If <strong>FOOTERS</strong> are on, <strong>mom</strong> automatically
998 places page numbers at the tops of pages except on
999 the first page of a document (or on first pages after
1000 <a href="rectoverso.html#COLLATE">COLLATE</a>). If you'd
1001 like the page number to appear on &quot;first&quot; pages when
1002 footers are on, invoke <strong>PAGENUM_ON_FIRST_PAGE</strong> with
1003 no argument. Any other argument turns the feature off (<strong>OFF,
1004 QUIT, END, X...</strong>).
1006 As with most of the <a
1007 href="definitions.html#TERMS_CONTROLMACRO">control macros</a>,
1008 <strong>PAGENUM_ON_FIRST_PAGE</strong> can be invoked at any time,
1009 meaning that if you don't want a page number on the very first
1010 page of a document, but do want one on pages that appear after
1011 <strong>COLLATE</strong>, omit it before the first
1012 <a href="docprocessing.html#START">START</a>
1013 of the document, then invoke it either just before or after your
1014 first <strong>COLLATE</strong>.
1015 <br>
1016 <hr>
1018 <!---PAGINATE_CONTROL--->
1020 <a name="PAGINATE_CONTROL"><h3><u>Pagination control macros</u></h3></a>
1022 <ol>
1023 <li><a href="#PAGINATE_GENERAL">Family/font/size</a>
1024 <li><a href="#PAGENUM_POS">Page number position (vertical and horizontal)</a>
1025 <li><a href="#PAGENUM_HYPHENS">Enclose page numbers with hyphens (on or off)</a>
1026 </ol>
1027 <br>
1028 <a name="PAGINATE_GENERAL"><h3><u>1. Page number family/font/size</u></h3></a>
1031 <a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
1033 <pre>
1034 .PAGENUM_FAMILY default = prevailing document family; default is Times Roman
1035 .PAGENUM_FONT default = roman
1036 .PAGENUM_SIZE default = 0 (i.e. same size as paragraph text)
1037 </pre>
1039 <a name="PAGENUM_POS"><h3><u>2. Page number position</u></h3></a>
1041 Macro: <strong>PAGENUM_POS</strong> <var>TOP | BOTTOM&nbsp;&nbsp;LEFT | CENTER | RIGHT</var>
1044 Use <strong>PAGENUM_POS</strong> to change the default position of
1045 automatic page numbering. <strong>PAGENUM_POS</strong> requires
1046 <em>two</em> arguments: a vertical position (TOP or BOTTOM) and a
1047 horizontal position (LEFT or CENTER or RIGHT).
1049 For example, if you turn both
1050 <a href="definitions.html#TERMS_HEADER">headers</a>
1052 <a href="definitions.html#TERMS_FOOTER">footers</a>
1053 off (with <code>.HEADERS OFF</code> and <code>.FOOTERS
1054 OFF</code)) and you want <strong>mom</strong> to number your
1055 pages at the top right position, enter
1057 <pre>
1058 .PAGENUM_POS TOP RIGHT
1059 </pre>
1061 <a name="#PAGENUM_HYPHENS"><h3><u>3. Enclose page numbers with hyphens (on or off)</u></h3></a>
1062 By default, <strong>mom</strong> encloses page numbers between hyphens.
1063 If you don't want this behaviour, invoke the macro
1064 <strong>PAGENUM_HYPHENS</strong> with any argument (<strong>OFF, QUIT, END, X...</strong>),
1065 like this:
1067 <pre>
1068 .PAGENUM_HYPHENS OFF
1069 </pre>
1071 If, for some reason, you want to turn page number hyphens back
1072 on, invoke the macro without an argument.
1075 <hr>
1076 <a href="rectoverso.html#TOP">Next</a>&nbsp;&nbsp;
1077 <a href="docelement.html#TOP">Prev</a>&nbsp;&nbsp;
1078 <a href="#TOP">Top</a>&nbsp;&nbsp;
1079 <a href="toc.html">Back to Table of Contents</a>
1080 </body>
1081 </html>