headfootpage.html revision 1.1 1 1.1 christos <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 1.1 christos <html>
3 1.1 christos <head>
4 1.1 christos <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
5 1.1 christos <title>Mom -- Document processing: headers, footers and pagination</title>
6 1.1 christos </head>
7 1.1 christos <body bgcolor="#dfdfdf">
8 1.1 christos
9 1.1 christos <!====================================================================>
10 1.1 christos
11 1.1 christos <a href="rectoverso.html#TOP">Next</a>
12 1.1 christos <a href="docelement.html#TOP">Prev</a>
13 1.1 christos <a href="toc.html">Back to Table of Contents</a>
14 1.1 christos <p>
15 1.1 christos
16 1.1 christos <a name="TOP"></a>
17 1.1 christos <a name="HEADFOOTPAGE">
18 1.1 christos <h1 align="center"><u>PAGE HEADERS, FOOTERS, AND PAGINATION</u></h1>
19 1.1 christos </a>
20 1.1 christos
21 1.1 christos <ul>
22 1.1 christos <li><a href="#HEADFOOTPAGE_INTRO">Introduction -- VERY IMPORTANT; read me!</a>
23 1.1 christos <ul>
24 1.1 christos <li><a href="#PAGINATION_NOTE">An important note on pagination</a>
25 1.1 christos </ul>
26 1.1 christos <li><a href="#DESCRIPTION_GENERAL">General description of headers/footers</a>
27 1.1 christos <li><a href="#HEADER_STYLE">Default specs for headers/footers</a>
28 1.1 christos <li><a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>
29 1.1 christos <li><a href="#HEADFOOT_MANAGEMENT">Managing headers/footers</a> -- see also <a href="#HEADFOOT_TOC">Control macros for headers/footers</a>
30 1.1 christos <ul>
31 1.1 christos <li><a href="#HEADERS">HEADERS</a> -- on or off
32 1.1 christos <li><a href="#FOOTERS">FOOTERS</a> -- on or off
33 1.1 christos <li><a href="#FOOTER_ON_FIRST_PAGE">FOOTER_ON_FIRST_PAGE</a>
34 1.1 christos <li><a href="#USERDEF_HDRFTR">User-defined, single string recto/verso headers/footers</a>
35 1.1 christos <ul>
36 1.1 christos <li><a href="#USERDEF_HDRFTR_INTRO">Introduction</a>
37 1.1 christos <li><a href="#HDRFTR_RECTOVERSO">HEADER_RECTO, HEADER_VERSO</a>
38 1.1 christos </ul>
39 1.1 christos </ul>
40 1.1 christos <a name="HEADFOOT_TOC"></a>
41 1.1 christos <li><a href="#HEADFOOT_CONTROL">Control macros for headers/footers</a>
42 1.1 christos <ul>
43 1.1 christos <li><a href="#HDRFTR_STRINGS">Header/footer strings</a>
44 1.1 christos <ul>
45 1.1 christos <li><a href="#RESERVED_STRINGS">Using mom's "reserved" strings in header/footer definitions</a>
46 1.1 christos </ul>
47 1.1 christos <li><a href="#HDRFTR_STYLE">Header/footer style</a>
48 1.1 christos <ul>
49 1.1 christos <li><a href="#HDRFTR_STYLE_GLOBAL">Global style control</a>
50 1.1 christos <li><a href="#HDRFTR_STYLE_PART">Part-by-part style control</a>
51 1.1 christos </ul>
52 1.1 christos <li><a href="#HDRFTR_VERTICAL">Vertical placement and spacing of headers/footers</a>
53 1.1 christos <ul>
54 1.1 christos <li><a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>
55 1.1 christos <li><a href="#HDRFTR_GAP">HEADER_GAP</a>
56 1.1 christos </ul>
57 1.1 christos <li><a href="#HDRFTR_SEPARATOR">The header/footer separator rule</a>
58 1.1 christos <ul>
59 1.1 christos <li><a href="#HDRFTR_RULE">HEADER_RULE</a> -- on or off
60 1.1 christos <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a> -- distance of rule from header/footer
61 1.1 christos <li><a href="#HDRFTR_RULE_COLOR">HEADER_RULE_COLOR</a> -- colour of the header/footer rule
62 1.1 christos </ul>
63 1.1 christos </ul>
64 1.1 christos <li><a href="#PAGINATION">Pagination</a>
65 1.1 christos <ul>
66 1.1 christos <li><a href="#INDEX_PAGINATION">Pagination control macros</a>
67 1.1 christos </ul>
68 1.1 christos </ul>
69 1.1 christos
70 1.1 christos <a name="HEADFOOTPAGE_INTRO">
71 1.1 christos <h2><u>Introduction</u></h2>
72 1.1 christos </a>
73 1.1 christos
74 1.1 christos <a href="definitions.html#TERMS_HEADER">Headers</a>
75 1.1 christos and
76 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>,
77 1.1 christos as defined in the section
78 1.1 christos <a href="definitions.html#TERMS_MOM">Mom's Document Processing Terms</a>,
79 1.1 christos are those parts of a document that contain information about the document
80 1.1 christos itself which appear in the margins either above or below
81 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>.
82 1.1 christos They are, in all respects but two, identical. The differences are:
83 1.1 christos <p>
84 1.1 christos <ol>
85 1.1 christos <li>headers appear in the margin <em>above</em> running text while
86 1.1 christos footers appear in the margin <em>beneath</em> running text;
87 1.1 christos <li>the (optional) rule that separates headers from running
88 1.1 christos text appears <em>below</em> the header while
89 1.1 christos the (optional) rule that separates footers from running
90 1.1 christos text appears <em>above</em> the footer.
91 1.1 christos </ol>
92 1.1 christos <a name="HEADERFOOTER"></a>
93 1.1 christos <p>
94 1.1 christos Because headers and footers are virtually identical, this
95 1.1 christos documentation addresses itself only to headers. In all cases,
96 1.1 christos unless otherwise noted, descriptions of headers
97 1.1 christos describe footers as well.
98 1.1 christos <p>
99 1.1 christos Furthermore, any
100 1.1 christos <a href="definitions.html#TERMS_CONTROLMACRO">control macro</a>
101 1.1 christos that begins with <strong>HEADER_</strong> may be used to control
102 1.1 christos footers, simply by replacing <strong>HEADER_</strong> with
103 1.1 christos <strong>FOOTER_</strong>.
104 1.1 christos <p>
105 1.1 christos <strong>Author's note:</strong> Left to their own devices (i.e. if
106 1.1 christos you're happy with the way <strong>mom</strong> does things by default),
107 1.1 christos headers are something you never have to worry about. You can skip
108 1.1 christos reading this section entirely. But if you want to change them, be
109 1.1 christos advised that headers have more macros to control their appearance than
110 1.1 christos any other document element. The text of this documentation becomes
111 1.1 christos correspondingly dense at this point.
112 1.1 christos <a name="PAGINATION_NOTE"></a>
113 1.1 christos <p>
114 1.1 christos <strong>NOTE:</strong> While the single page number that
115 1.1 christos <strong>mom</strong> generates in either the top or bottom margin
116 1.1 christos above or below running text is technically a kind of header/footer,
117 1.1 christos <strong>mom</strong> and this documentation treat it as a
118 1.1 christos separate page element.
119 1.1 christos <p>
120 1.1 christos
121 1.1 christos <a name="DESCRIPTION_GENERAL"><h3><u>General description of headers/footers</u></h3></a>
122 1.1 christos <p>
123 1.1 christos Headers comprise three distinct parts: a left part, a centre part,
124 1.1 christos and a right part. Each part contains text (a "string")
125 1.1 christos that identifies some aspect of the document as a whole.
126 1.1 christos <p>
127 1.1 christos The left part ("header left") lines up with the document's
128 1.1 christos left margin. The centre part ("header centre") is
129 1.1 christos centred on the document's line length. The right part ("header
130 1.1 christos right") lines up with the document's right margin. Not all parts
131 1.1 christos need contain a string, and if you don't want headers at all, you can
132 1.1 christos turn them off completely.
133 1.1 christos <p>
134 1.1 christos <strong>A note to groff experts:</strong> Although
135 1.1 christos <strong>mom</strong>'s headers resemble the three-part titles generated
136 1.1 christos by <code>.tl</code>, they're in no way related to it, nor based
137 1.1 christos upon it. <code>.tl</code> is not used at all in <strong>mom</strong>.
138 1.1 christos <p>
139 1.1 christos Normally, <strong>mom</strong> fills headers with strings appropriate
140 1.1 christos to the document type selected with
141 1.1 christos <a href="docprocessing.html#DOCTYPE">DOCTYPE</a>.
142 1.1 christos You can, however, supply whatever strings you like -- including page
143 1.1 christos numbers -- to go in any part of headers. What's more, you can set the
144 1.1 christos family, font, size and capitalization style (caps or caps/lower-case)
145 1.1 christos for each header part individually.
146 1.1 christos <p>
147 1.1 christos By default, <strong>mom</strong> prints a horizontal rule beneath
148 1.1 christos headers to separate them visually from running text. In the case of
149 1.1 christos footers, the rule is <em>above</em> running text. You can increase
150 1.1 christos or decrease the space between the header and the rule if you like (with
151 1.1 christos <a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a>),
152 1.1 christos or remove it completely.
153 1.1 christos <p>
154 1.1 christos
155 1.1 christos <a name="HEADER_STYLE"><h3><u>Default specs for headers/footers</u></h3></a>
156 1.1 christos <p>
157 1.1 christos <strong>Mom</strong> makes small type adjustments to each part of
158 1.1 christos the header (left, centre, right) to achieve an aesthetically
159 1.1 christos pleasing result. The defaults are listed below. (The strings
160 1.1 christos <strong>mom</strong> puts by default in each part are explained in
161 1.1 christos <a href="docprocessing.html#DOCTYPE">DOCTYPE</a>.)
162 1.1 christos <p>
163 1.1 christos <strong>NOTE:</strong> Except for capitalization (all caps or
164 1.1 christos caps/lower-case), these defaults apply only to
165 1.1 christos <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPESET</a>.
166 1.1 christos <p>
167 1.1 christos <pre>
168 1.1 christos TYPE SPEC HEADER LEFT HEADER CENTER HEADER RIGHT
169 1.1 christos --------- ----------- ------------- ------------
170 1.1 christos Family document default document default document default
171 1.1 christos Font roman italic roman
172 1.1 christos Colour (black) (black) (black)
173 1.1 christos All caps no no yes
174 1.1 christos Size* -.5 (points) -.5 (points) -2 (points)
175 1.1 christos (-2 if all caps) (-2 if all caps) (-.5 if not all caps)
176 1.1 christos
177 1.1 christos *Relative to the point size of type in paragraphs
178 1.1 christos </pre>
179 1.1 christos
180 1.1 christos You can, of course, change any of the defaults using the appropriate
181 1.1 christos control macros. And should you wish to design headers from the ground
182 1.1 christos up, <strong>mom</strong> has a special macro,
183 1.1 christos <a href="#HDRFTR_PLAIN">HEADER_PLAIN</a>,
184 1.1 christos that removes all type adjustments to headers. The straightforward
185 1.1 christos type specs for paragraphs are used instead, providing a simple
186 1.1 christos reference point for any alterations you want to make to the family,
187 1.1 christos font, size and capitalization style of any header part.
188 1.1 christos <p>
189 1.1 christos
190 1.1 christos <a name="VERTICAL_SPACING"><h3><u>Vertical placement and spacing of headers/footers</u></h3></a>
191 1.1 christos <p>
192 1.1 christos As explained in the section on
193 1.1 christos <a href="typedocmac.html">typesetting macros in document processing</a>,
194 1.1 christos the top and bottom margins of a <strong>mom</strong> document
195 1.1 christos are the vertical start and end positions of
196 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>,
197 1.1 christos not the vertical positions of headers or footers, which, by definition,
198 1.1 christos appear in the margins <em>above</em> (or below) running text.
199 1.1 christos <p>
200 1.1 christos The vertical placement of headers
201 1.1 christos is controlled by the macro
202 1.1 christos <a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>,
203 1.1 christos which establishes the
204 1.1 christos <a href="definitions.html">baseline</a>
205 1.1 christos position of headers relative to the <em>top</em> edge of the page.
206 1.1 christos The header rule, whose position is relative to the header itself,
207 1.1 christos is controlled by a separate macro.
208 1.1 christos <strong>FOOTER_MARGIN</strong> establishes the baseline position of
209 1.1 christos footers relative to the <em>bottom</em> edge of the page.
210 1.1 christos <p>
211 1.1 christos <a href="#HDRFTR_GAP">HEADER_GAP</a> establishes
212 1.1 christos the distance between headers and the <em>start</em> of running text (effectively
213 1.1 christos making <strong>HEADER_MARGIN + HEADER_GAP</strong> the top margin of
214 1.1 christos running text unless you give <strong>mom</strong> a literal top margin
215 1.1 christos (with
216 1.1 christos <a href="typesetting.html#T_MARGIN">T_MARGIN</a>),
217 1.1 christos in which case she ignores <strong>HEADER_GAP</strong> and starts
218 1.1 christos running text at whatever top margin you gave.
219 1.1 christos <strong>FOOTER_GAP</strong> and
220 1.1 christos <a href="typesetting.html#B_MARGIN">B_MARGIN</a>
221 1.1 christos work similarly, except they determine where running text
222 1.1 christos <em>ends</em> on the page. (See
223 1.1 christos <a href="#FOOTER_MARGIN">FOOTER MARGIN AND BOTTOM MARGIN -- VERY IMPORTANT!</a>
224 1.1 christos for a warning about possible conflicts between the footer margin
225 1.1 christos and the bottom margin.)
226 1.1 christos <p>
227 1.1 christos Confused? <strong>Mom</strong> apologizes. It's really quite
228 1.1 christos simple. By default, <strong>mom</strong> sets headers 4-1/2
229 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>
230 1.1 christos down from the top of the page and starts running text 3 picas (the
231 1.1 christos <strong>HEADER_GAP</strong>) beneath that, which means the
232 1.1 christos effective top margin of running text is 7-1/2 picas (visually approx. 1
233 1.1 christos inch). If you give <strong>mom</strong> a literal top margin (with
234 1.1 christos <a href="typesetting.html#T_MARGIN">T_MARGIN</a>),
235 1.1 christos she ignores the <strong>HEADER_GAP</strong> and starts running
236 1.1 christos text at whatever top margin you gave.
237 1.1 christos <p>
238 1.1 christos Footers are treated the same way, the only difference being the
239 1.1 christos default distances. <strong>Mom</strong> sets footers 3 picas up from
240 1.1 christos the bottom of the page, and interrupts the processing of running text 3
241 1.1 christos picas (the <strong>FOOTER_GAP</strong>) above that (again, visually
242 1.1 christos approx. 1 inch). If you give <strong>mom</strong> a literal bottom
243 1.1 christos margin (with <a
244 1.1 christos href="typesetting.html#B_MARGIN">B_MARGIN</a>), she ignores the
245 1.1 christos <strong>FOOTER_GAP</strong> and interrupts the processing of running
246 1.1 christos text at whatever bottom margin you gave.
247 1.1 christos <p>
248 1.1 christos If <strong>mom</strong> is paginating your document (she
249 1.1 christos does, by default, at the bottom of each page), the vertical
250 1.1 christos spacing and placement of page numbers, whether at the top
251 1.1 christos or the bottom of the page, is managed exactly as if the
252 1.1 christos page numbers were headers (or footers), and are controlled
253 1.1 christos by the same macros. See
254 1.1 christos <a href="#PAGINATION">Pagination control</a>.
255 1.1 christos <p>
256 1.1 christos <hr>
257 1.1 christos
258 1.1 christos <!========================================================================>
259 1.1 christos
260 1.1 christos <a name="HEADFOOT_MANAGEMENT">
261 1.1 christos <h2><u>Managing headers/footers</u></h2>
262 1.1 christos </a>
263 1.1 christos
264 1.1 christos <p>
265 1.1 christos The following are the basic macros for turning
266 1.1 christos <a href="definitions.html#TERMS_HEADER">headers</a>
267 1.1 christos or
268 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>
269 1.1 christos on or off. They should be invoked prior to
270 1.1 christos <a href="docprocessing.html#START">START</a>.
271 1.1 christos <p>
272 1.1 christos By default, <strong>mom</strong> prints page headers. If you turn
273 1.1 christos them off, she will begin
274 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>
275 1.1 christos on each page with a default top margin of 6
276 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>
277 1.1 christos unless you have requested a different top margin (with
278 1.1 christos <a href="typesetting.html#T_MARGIN">T_MARGIN</a>)
279 1.1 christos prior to
280 1.1 christos <a href="docprocessing.html#START">START</a>.
281 1.1 christos <p>
282 1.1 christos Please note that headers and footers are mutually exclusive. If
283 1.1 christos headers are on, footers (but NOT bottom-of-page numbering) are
284 1.1 christos automatically turned off. Equally, if footers are on, headers
285 1.1 christos (but NOT top-of-page numbering) are automatically turned off. Thus, if
286 1.1 christos you'd prefer footers in a document, you need only invoke
287 1.1 christos <a href="#FOOTERS">FOOTERS</a>;
288 1.1 christos there's no need to turn headers off first.
289 1.1 christos <p>
290 1.1 christos
291 1.1 christos <!---HEADERS--->
292 1.1 christos
293 1.1 christos <hr width="66%" align="left">
294 1.1 christos <p>
295 1.1 christos <a name="HEADERS"></a>
296 1.1 christos <nobr>Macro: <strong>HEADERS</strong> toggle</nobr>
297 1.1 christos
298 1.1 christos <p>
299 1.1 christos <a href="definitions.html#TERMS_HEADER">Page headers</a>
300 1.1 christos are on by default. If you don't want them, turn them off by
301 1.1 christos invoking <strong>HEADERS</strong> with any argument
302 1.1 christos (<strong>OFF, QUIT, END, X...</strong>), e.g.
303 1.1 christos <p>
304 1.1 christos <pre>
305 1.1 christos .HEADERS OFF
306 1.1 christos </pre>
307 1.1 christos <p>
308 1.1 christos <strong>NOTE:</strong> <strong>HEADERS</strong> automatically
309 1.1 christos disables
310 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>
311 1.1 christos (you can't have both), but not the page numbers that normally
312 1.1 christos appear at the bottom of the page.
313 1.1 christos <p>
314 1.1 christos <strong>ADDITIONAL NOTE:</strong> If <strong>HEADERS</strong>
315 1.1 christos are <strong>OFF</strong>, <strong>mom</strong>'s normal top
316 1.1 christos margin for
317 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>
318 1.1 christos (7.5
319 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>)
320 1.1 christos changes to 6 picas (visually approx. 1 inch). This does NOT apply
321 1.1 christos to the situation where footers have been explicitly turned on
322 1.1 christos (with
323 1.1 christos <a href="#FOOTERS">FOOTERS</a>).
324 1.1 christos Explicitly invoking footers moves page numbering to the
325 1.1 christos top of the page, where its placement and spacing are the same as
326 1.1 christos for headers. (I.e. the top margin of running text remains 7.5
327 1.1 christos picas.)
328 1.1 christos <p>
329 1.1 christos
330 1.1 christos <!---FOOTERS--->
331 1.1 christos
332 1.1 christos <hr width="66%" align="left">
333 1.1 christos <p>
334 1.1 christos <a name="FOOTERS"></a>
335 1.1 christos <nobr>Macro: <strong>FOOTERS</strong> toggle</nobr>
336 1.1 christos
337 1.1 christos <p>
338 1.1 christos <a href="definitions.html#TERMS_FOOTER">Page footers</a>
339 1.1 christos are off by default. If you want them instead of
340 1.1 christos <a href="definitions.html#TERMS_HEADER">headers</a>
341 1.1 christos (you can't have both), turn them on by invoking
342 1.1 christos <strong>FOOTERS</strong> without an argument, e.g.
343 1.1 christos <p>
344 1.1 christos <pre>
345 1.1 christos .FOOTERS
346 1.1 christos </pre>
347 1.1 christos
348 1.1 christos <p>
349 1.1 christos <strong>FOOTERS</strong> automatically disables headers, and
350 1.1 christos <strong>mom</strong> shifts the placement of page numbers from their
351 1.1 christos normal position at page bottom to the top of the page.
352 1.1 christos <p>
353 1.1 christos <strong>NOTE:</strong> By default, when footers are on,
354 1.1 christos <strong>mom</strong> does not print a page number on the first
355 1.1 christos page of a document, nor on first pages after
356 1.1 christos <a href="rectoverso.html#COLLATE">COLLATE</a>.
357 1.1 christos If you don't want this behaviour, you can change it with
358 1.1 christos <a href="#PAGENUM_ON_FIRST_PAGE">PAGENUM_ON_FIRST_PAGE</a>.
359 1.1 christos <p>
360 1.1 christos
361 1.1 christos <!---FOOTER_ON_FIRST_PAGE--->
362 1.1 christos
363 1.1 christos <hr width="66%" align="left">
364 1.1 christos <p>
365 1.1 christos <a name="FOOTER_ON_FIRST_PAGE"></a>
366 1.1 christos <nobr>Macro: <strong>FOOTER_ON_FIRST_PAGE</strong> toggle</nobr>
367 1.1 christos
368 1.1 christos <p>
369 1.1 christos If you invoke
370 1.1 christos <a href="#FOOTERS">FOOTERS</a>,
371 1.1 christos <strong>mom</strong>, by default, does not print a footer on the
372 1.1 christos first page of the document. (The
373 1.1 christos <a href="definitions.html">docheader</a>
374 1.1 christos on page 1 makes it redundant.) However, should you wish a footer on
375 1.1 christos page 1, invoke <strong>FOOTER_ON_FIRST_PAGE</strong> without any argument.
376 1.1 christos <p>
377 1.1 christos <hr>
378 1.1 christos
379 1.1 christos <!---USERDEF_HDRFTR--->
380 1.1 christos
381 1.1 christos <a name="USERDEF_HDRFTR">
382 1.1 christos <h2><u>User-defined, single string recto/verso headers/footers</u></h2>
383 1.1 christos </a>
384 1.1 christos
385 1.1 christos <a name="USERDEF_HDRFTR_INTRO"><h3><u>Introduction</u></h3></a>
386 1.1 christos
387 1.1 christos Sometimes, you'll find you can't get <strong>mom</strong>'s handling
388 1.1 christos of 3-part headers or footers to do exactly what you want in the
389 1.1 christos order you want. This is most likely happen when you want the
390 1.1 christos information contained in the headers/footers split over two pages,
391 1.1 christos as is often the case with recto/verso documents.
392 1.1 christos <p>
393 1.1 christos Say, for example, you want recto page headers to contain a document's
394 1.1 christos author, centred, and verso page headers to contain the document's
395 1.1 christos title, also centred, like this:
396 1.1 christos <p>
397 1.1 christos <pre>
398 1.1 christos +------------------------+ +------------------------+
399 1.1 christos | Author | | Title |
400 1.1 christos | | | |
401 1.1 christos | | | |
402 1.1 christos | | | |
403 1.1 christos | | | |
404 1.1 christos | | | |
405 1.1 christos | | | |
406 1.1 christos | | | |
407 1.1 christos | | | |
408 1.1 christos | | | |
409 1.1 christos | | | |
410 1.1 christos | | | |
411 1.1 christos | | | |
412 1.1 christos | | | |
413 1.1 christos +------------------------+ +------------------------+
414 1.1 christos </pre>
415 1.1 christos
416 1.1 christos With <strong>mom</strong>'s standard 3-part headers, this isn't
417 1.1 christos possible, even when
418 1.1 christos <a href="rectoverso.html#RECTO_VERSO">RECTO_VERSO</a>
419 1.1 christos is enabled. <strong>RECTO_VERSO</strong> switches the left and
420 1.1 christos right parts of headers on alternate pages, but the centre
421 1.1 christos part remains unchanged.
422 1.1 christos <p>
423 1.1 christos Any time you need distinctly different headers on alternate
424 1.1 christos pages, <strong>mom</strong> has macros that let you manually
425 1.1 christos design and determine what goes into headers on recto pages, and
426 1.1 christos what goes into headers on verso pages. The macros are
427 1.1 christos <a href="#HDRFTR_RECTO">HEADER_RECTO</a>
428 1.1 christos and
429 1.1 christos <a href="#HDRFTR_VERSO">HEADER_VERSO</a>.
430 1.1 christos Both allow you to state whether the header is flush left, centred,
431 1.1 christos or flush right, and both take a single
432 1.1 christos <a href="definitions.html#TERMS_STRINGARGUMENT">string argument</a>
433 1.1 christos with which, by combining text and
434 1.1 christos <a href="definitions.html#TERMS_INLINES">inline escapes</a>,
435 1.1 christos you can make the headers come out just about any way you want.
436 1.1 christos Use of the <strong>\*[PAGE#]</strong> escape is permitted in the
437 1.1 christos string argument (see
438 1.1 christos <a href="#PAGE_NUMBER_INCL">Including the page number in header-left, -centre or -right</a>),
439 1.1 christos and as an added bonus, <strong>mom</strong> provides a special
440 1.1 christos mechanism whereby it's possible to "pad" the string as well.
441 1.1 christos <p>
442 1.1 christos
443 1.1 christos <!---HDRFTR_RECTOVERSO--->
444 1.1 christos
445 1.1 christos <hr width="66%" align="left">
446 1.1 christos <p>
447 1.1 christos <a name="HDRFTR_RECTOVERSO"></a>
448 1.1 christos <nobr>Macro: <strong>HEADER_RECTO</strong> LEFT | CENTER | RIGHT "<header recto string>"</nobr>
449 1.1 christos <br>
450 1.1 christos <nobr>Macro: <strong>HEADER_VERSO</strong> LEFT | CENTER | RIGHT "<header verso string>"</nobr>
451 1.1 christos <br>
452 1.1 christos
453 1.1 christos <p>
454 1.1 christos <strong>HEADER_RECTO</strong> and <strong>HEADER_VERSO</strong> behave
455 1.1 christos identically, hence all references to <strong>HEADER_RECTO</strong>
456 1.1 christos in this section also refer to <strong>HEADER_VERSO</strong>.
457 1.1 christos Furthermore, <strong>FOOTER_</strong> can be used instead of
458 1.1 christos <strong>HEADER_</strong> to set up recto/verso footers.
459 1.1 christos <p>
460 1.1 christos The first argument to <strong>HEADER_RECTO</strong> is the
461 1.1 christos direction in which you want the header
462 1.1 christos <a href="definitions.html#TERMS_QUAD">quadded</a>.
463 1.1 christos <strong>L, C</strong> and <strong>R</strong> may be used in
464 1.1 christos place of <strong>LEFT, CENTER</strong> and
465 1.1 christos <strong>RIGHT</strong>. The second argument is a string,
466 1.1 christos surrounded by double-quotes, containing what you want in the
467 1.1 christos header. <strong>HEADER_RECTO</strong> disables <strong>mom</strong>'s
468 1.1 christos normal 3-part headers, therefore anything you want in the
469 1.1 christos headers must be entered by hand in the string, including colours
470 1.1 christos (via the
471 1.1 christos <a href="definitions.html#TERMS_INLINES">inline escape</a>
472 1.1 christos <a href="color.html#COLOR_INLINE">\*[<colorname>]</a>).
473 1.1 christos <p>
474 1.1 christos By default, <strong>HEADER_RECTO</strong> is set at the same
475 1.1 christos size, and in the same family and font, as paragraph text. The
476 1.1 christos control macros
477 1.1 christos <a href="#HDRFTR_GLOBAL_FAMILY">HEADER_FAMILY</a>
478 1.1 christos and
479 1.1 christos <a href="#HDRFTR_GLOBAL_SIZE">HEADER_SIZE</a>
480 1.1 christos may be used to change the default family and size. Changes to
481 1.1 christos the font(s) within the string must be accomplished with the
482 1.1 christos <a href="definitions.html#TERMS_INLINES">inline escapes</a>
483 1.1 christos <strong>\*[ROM], \*[IT], \*[BD], \*[BDI]</strong> and
484 1.1 christos <strong>\*[PREV]</strong> (see
485 1.1 christos <a href="inlines.html#INLINE_FONTS_MOM">Changing fonts</a>).
486 1.1 christos Additional refinements to the style of the header-recto string,
487 1.1 christos including horizontal spacing and/or positioning, can also be made with
488 1.1 christos inline escapes.
489 1.1 christos <p>
490 1.1 christos To include the current page number in the string, use the
491 1.1 christos <strong>\*[PAGE#]</strong> inline.
492 1.1 christos <br>
493 1.1 christos
494 1.1 christos <h3><u>*Padding the HEADER_RECTO/HEADER_VERSO string</u></h3>
495 1.1 christos You can "pad" the header-recto string, a convenience you'll
496 1.1 christos appreciate in circumstances such as the following.
497 1.1 christos <p>
498 1.1 christos <pre>
499 1.1 christos VERSO RECTO
500 1.1 christos +------------------------+ +------------------------+
501 1.1 christos | Author Page# | | Page# Title |
502 1.1 christos | | | |
503 1.1 christos | | | |
504 1.1 christos | | | |
505 1.1 christos | | | |
506 1.1 christos | | | |
507 1.1 christos | | | |
508 1.1 christos | | | |
509 1.1 christos | | | |
510 1.1 christos | | | |
511 1.1 christos | | | |
512 1.1 christos | | | |
513 1.1 christos | | | |
514 1.1 christos | | | |
515 1.1 christos +------------------------+ +------------------------+
516 1.1 christos </pre>
517 1.1 christos
518 1.1 christos To pad the string argument passed to <strong>HEADER_RECTO</strong>,
519 1.1 christos begin and end the string (inside the double-quotes) with the caret
520 1.1 christos character (<kbd>^</kbd>). Enter the pound sign (<kbd>#</kbd>) at any
521 1.1 christos point in the string where you want an equalized amount of whitespace
522 1.1 christos inserted. (If you're unsure what padding is, see
523 1.1 christos <a href="goodies.html#PAD">Insert space into lines</a>.)
524 1.1 christos Note that if you're padding the string, it doesn't matter what
525 1.1 christos quad direction you give <strong>HEADER_RECTO</strong> since
526 1.1 christos padding, by its nature, justifies text to the left and right
527 1.1 christos margins.
528 1.1 christos <p>
529 1.1 christos The situation depicted above is accomplished like this:
530 1.1 christos <p>
531 1.1 christos <pre>
532 1.1 christos .HEADER_RECTO LEFT "^\*[PAGE#]#Title^"
533 1.1 christos .HEADER_VERSO LEFT "^Author#\*[PAGE#]^"
534 1.1 christos </pre>
535 1.1 christos
536 1.1 christos Note that <strong>mom</strong> does not interpret the <kbd>#</kbd>
537 1.1 christos in <strong>\*[PAGE#]</strong> as a padding marker (i.e. as a place
538 1.1 christos to insert whitespace).
539 1.1 christos <p>
540 1.1 christos Also, notice that the argument <strong>LEFT</strong> is used in both
541 1.1 christos cases. When padding a header, it doesn't matter whether you use
542 1.1 christos LEFT, CENTER or RIGHT as the argument.
543 1.1 christos <p>
544 1.1 christos Furthermore, should you need a user-defined header of
545 1.1 christos the sort provided by <strong>HEADER_RECTO</strong> and
546 1.1 christos <strong>HEADER_VERSO</strong> but aren't actually printing
547 1.1 christos recto/verso, you can use <strong>HEADER_RECTO</strong> to design the
548 1.1 christos header that appears at the top of every page.
549 1.1 christos <p>
550 1.1 christos <strong>IMPORTANT:</strong> The
551 1.1 christos <a href="goodies.html#PAD_MARKER">PAD_MARKER</a>
552 1.1 christos macro, which changes the default pad marker (<kbd>#</kbd>) used by
553 1.1 christos <a href="goodies.html#PAD">PAD</a>,
554 1.1 christos has no effect on the pad marker used in the
555 1.1 christos <strong>HEADER_RECTO</strong> string. If you absolutely must
556 1.1 christos have a literal pound sign in your <strong>HEADER_RECTO</strong>
557 1.1 christos string, use the escape sequence for the pound sign
558 1.1 christos (<kbd>\[sh]</kbd>) where you want the pound sign to go.
559 1.1 christos <p>
560 1.1 christos <hr>
561 1.1 christos
562 1.1 christos <a name="HEADFOOT_CONTROL">
563 1.1 christos <h2><u>Control macros for headers/footers</u></h2>
564 1.1 christos </a>
565 1.1 christos Virtually every part of headers (see the paragraph on how
566 1.1 christos <a href="#HEADERFOOTER">"headers" means "footers"</a>
567 1.1 christos in the
568 1.1 christos <a href="#HEADFOOTPAGE_INTRO">introduction to headers/footers</a>)
569 1.1 christos can be designed to your own specifications.
570 1.1 christos <p>
571 1.1 christos
572 1.1 christos <a name="INDEX_REFERENCE">
573 1.1 christos <h3><u>Header/footer control macros</u></h3>
574 1.1 christos </a>
575 1.1 christos
576 1.1 christos <ul>
577 1.1 christos <li><a href="#HDRFTR_STRINGS"><strong>STRINGS</strong></a>
578 1.1 christos <ul>
579 1.1 christos <li><a href="#HDRFTR_LEFT">HEADER_LEFT</a>
580 1.1 christos <li><a href="#HDRFTR_CENTER">HEADER_CENTER</a>
581 1.1 christos <ul>
582 1.1 christos <li><a href="#HDRFTR_CENTER_PAD">HEADER_CENTER_PAD</a> -- stick some space left of right of the centre string
583 1.1 christos </ul>
584 1.1 christos <li><a href="#HDRFTR_RIGHT">HEADER_RIGHT</a>
585 1.1 christos <li><a href="#PAGE_NUMBER_SYMBOL">Replacing header left, centre or right with the page number</a>
586 1.1 christos <li><a href="#PAGE_NUMBER_INCL">Including the page number in header left, centre or right</a>
587 1.1 christos </ul>
588 1.1 christos <li><a href="#HDRFTR_STYLE"><strong>STYLE</strong></a>
589 1.1 christos <ul>
590 1.1 christos <li><a href="#HDRFTR_STYLE_GLOBAL"><strong>Global changes</strong></a>
591 1.1 christos <li><a href="#HDRFTR_GLOBAL_FAMILY">HEADER_FAMILY</a> -- family for entire header
592 1.1 christos <li><a href="#HDRFTR_GLOBAL_SIZE">HEADER_SIZE</a> -- size for entire header
593 1.1 christos <li><a href="#HDRFTR_PLAIN">HEADER_PLAIN</a> -- disable default adjustments to header parts
594 1.1 christos <li><a href="#HDRFTR_COLOR">HEADER_COLOR</a> -- colourize the header
595 1.1 christos </ul>
596 1.1 christos <ul>
597 1.1 christos <li><a href="#HDRFTR_STYLE_PART"><strong>Part-by-part changes</strong></a>
598 1.1 christos <li><a href="#_FAMILY">_FAMILY</a> -- left, centre or right family
599 1.1 christos <li><a href="#_FONT">_FONT</a> -- left, centre or right font
600 1.1 christos <li><a href="#_SIZE">_SIZE</a> -- left, centre or right size
601 1.1 christos <li><a href="#_CAPS">_CAPS</a> -- left, centre or right all caps
602 1.1 christos <li><a href="#_COLOR">_COLOR</a> -- left, centre or right colour
603 1.1 christos </ul>
604 1.1 christos <li><a href="#HDRFTR_VERTICAL"><strong>VERTICAL PLACEMENT AND SPACING</strong></a>
605 1.1 christos <ul>
606 1.1 christos <li><a href="#HDRFTR_MARGIN">HEADER_MARGIN</a>
607 1.1 christos <li><a href="#HDRFTR_GAP">HEADER_GAP</a>
608 1.1 christos </ul>
609 1.1 christos <li><a href="#HDRFTR_SEPARATOR"><strong>SEPARATOR RULE</strong></a>
610 1.1 christos <ul>
611 1.1 christos <li><a href="#HDRFTR_RULE">HEADER_RULE</a>
612 1.1 christos <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a>
613 1.1 christos <li><a href="#HDRFTR_RULE_COLOR">HEADER_RULE_COLOR</a>
614 1.1 christos </ul>
615 1.1 christos </ul>
616 1.1 christos
617 1.1 christos <!---HDRFTR_STRINGS--->
618 1.1 christos
619 1.1 christos <hr width="66%" align="left">
620 1.1 christos <a name="HDRFTR_STRINGS"><h3><u>Header/footer strings</u></h3></a>
621 1.1 christos <p>
622 1.1 christos <a name="HDRFTR_LEFT">
623 1.1 christos <nobr>Macro: <strong>HEADER_LEFT</strong> "<text of header left>" | #</nobr>
624 1.1 christos </a>
625 1.1 christos <br>
626 1.1 christos <a name="HDRFTR_CENTER">
627 1.1 christos <nobr>Macro: <strong>HEADER_CENTER</strong> "<text of header centre>" | #</nobr>
628 1.1 christos </a>
629 1.1 christos <br>
630 1.1 christos <a name="HDRFTR_RIGHT">
631 1.1 christos <nobr>Macro: <strong>HEADER_RIGHT</strong> "<text of header right>" | #</nobr>
632 1.1 christos </a>
633 1.1 christos
634 1.1 christos <p>
635 1.1 christos To change the text (the "string") of the left, centre,
636 1.1 christos or right part of headers, invoke the appropriate macro above with
637 1.1 christos the string you want. For example, <strong>mom</strong>, by default,
638 1.1 christos prints the document's author in the header-left position. If your
639 1.1 christos document has, say, two authors, and you want both their names to
640 1.1 christos appear header-left, change <strong>HEADER_LEFT</strong> like this:
641 1.1 christos <p>
642 1.1 christos <pre>
643 1.1 christos .HEADER_LEFT "R. Stallman, E. Raymond"
644 1.1 christos </pre>
645 1.1 christos
646 1.1 christos Because the arguments to <strong>HEADER_LEFT, _CENTER,</strong>
647 1.1 christos and <strong>_RIGHT</strong> are
648 1.1 christos <a href="definitions.html#TERMS_STRINGARGUMENT">string arguments</a>,
649 1.1 christos they must be enclosed in double-quotes.
650 1.1 christos <p>
651 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
652 1.1 christos with <strong>FOOTER_</strong> to change the strings in footers.
653 1.1 christos
654 1.1 christos <a name="HDRFTR_CENTER_PAD"><h3><u>*Padding the header/footer centre string</u></h3></a>
655 1.1 christos <p>
656 1.1 christos <nobr>Macro: <strong>HEADER_CENTER_PAD</strong> LEFT | RIGHT <amount of space by which to pad centre string left or right></nobr>
657 1.1 christos <br>
658 1.1 christos <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
659 1.1 christos <p>
660 1.1 christos By default, <strong>mom</strong> centres the header centre string
661 1.1 christos literally on the line length in effect for page headers. In some
662 1.1 christos cases, notably when the header left or header right strings are
663 1.1 christos particularly long, the effect isn't pretty. The offendingly long
664 1.1 christos header left or right crowds, or even overprints, the header centre.
665 1.1 christos That's where <strong>HEADER_CENTER_PAD</strong> comes in. With a
666 1.1 christos bit of experimentation (yes, you have to preview the document), you
667 1.1 christos can use <strong>HEADER_CENTER_PAD</strong> to move the header
668 1.1 christos centre string left or right until it looks acceptably centred
669 1.1 christos between the two other strings.
670 1.1 christos <p>
671 1.1 christos For example, say your document is an outline for a novel called "By
672 1.1 christos the Shores of Lake Attica." You've told <strong>mom</strong>
673 1.1 christos you want
674 1.1 christos <p>
675 1.1 christos <a href="docprocessing.html#DOCTYPE">DOCTYPE</a>
676 1.1 christos <halign="center">
677 1.1 christos <strong>NAMED</strong> "Outline"
678 1.1 christos <p>
679 1.1 christos but when you preview your work, you see that "Outline", in the
680 1.1 christos centre of the page header, is uncomfortably close to the title,
681 1.1 christos which is to the right of it. By invoking
682 1.1 christos <p>
683 1.1 christos <pre>
684 1.1 christos .HEADER_CENTER_PAD RIGHT 3P
685 1.1 christos </pre>
686 1.1 christos
687 1.1 christos you can scoot the word "Outline" over three
688 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>
689 1.1 christos to the left (the padding's added to the right of the string)
690 1.1 christos so that your head looks nicely spaced out. Invoking
691 1.1 christos <strong>HEADER_CENTER_PAD</strong> with the <strong>LEFT</strong>
692 1.1 christos argument obviously puts the padding on the left side of the string.
693 1.1 christos <p>
694 1.1 christos Most reassuring of all is that if you use
695 1.1 christos <strong>HEADER_CENTER_PAD</strong> conjunction with
696 1.1 christos <a href="rectoverso.html#RECTO_VERSO">RECTO_VERSO</a>,
697 1.1 christos <strong>mom</strong> will pad the centre string appropriately left
698 1.1 christos OR right, depending on which page you're on, without you having to
699 1.1 christos tell her to do so.
700 1.1 christos <p>
701 1.1 christos
702 1.1 christos <hr width="66%" align="left">
703 1.1 christos <p>
704 1.1 christos <a name="RESERVED_STRINGS"><h3><u>Using mom's "reserved" strings in header/footer definitions</u></h3></a>
705 1.1 christos <p>
706 1.1 christos As pointed out in the author's note in the introduction to
707 1.1 christos headers/footers, headers and footers are something you don't
708 1.1 christos normally have to worry much about. <strong>Mom</strong> usually
709 1.1 christos knows what to do.
710 1.1 christos <p>
711 1.1 christos However, situations do arise where you need to manipulate what goes
712 1.1 christos in the header/footer strings, setting and resetting them as you go
713 1.1 christos along. A case where you might want to do this would be if you want
714 1.1 christos to output endnotes at the end of each document in a series of
715 1.1 christos <a href="rectoverso.html#COLLATE">collated</a>
716 1.1 christos documents, and you want the word "Endnotes" to go in the header
717 1.1 christos centre position of the endnotes, but want, say, the
718 1.1 christos <a href="docprocessing.html#TITLE">TITLE</a>
719 1.1 christos to go back into the centre position for the next output document.
720 1.1 christos <p>
721 1.1 christos In scenarios like the above, <strong>mom</strong> has a number of
722 1.1 christos "reserved" strings that you can plug into the
723 1.1 christos <strong>HEADER_LEFT, _CENTER</strong> and <strong>_RIGHT</strong>
724 1.1 christos macros. They are:
725 1.1 christos <p>
726 1.1 christos <pre>
727 1.1 christos \*[$TITLE] -- the argument passed to .TITLE
728 1.1 christos \*[$DOCTITLE] -- the argument passed to .DOCTITLE
729 1.1 christos \*[$AUTHOR_1] -- the first argument passed to .AUTHOR
730 1.1 christos \*[$CHAPTER_STRING] -- the argument passed to .CHAPTER_STRING,
731 1.1 christos if invoked, otherwise, "Chapter"
732 1.1 christos \*[$CHAPTER] -- the argument (typically a number) passed
733 1.1 christos to .CHAPTER
734 1.1 christos \*[$CHAPTER_TITLE] -- the argument passed to .CHAPTER_TITLE
735 1.1 christos </pre>
736 1.1 christos
737 1.1 christos Returning to the scenario above, first, you'd define a centre
738 1.1 christos string for the endnotes page:
739 1.1 christos <p>
740 1.1 christos <pre>
741 1.1 christos .HEADER_CENTER "Endnotes"
742 1.1 christos </pre>
743 1.1 christos
744 1.1 christos Then, you'd output the endnotes:
745 1.1 christos <p>
746 1.1 christos <pre>
747 1.1 christos .ENDNOTES
748 1.1 christos </pre>
749 1.1 christos
750 1.1 christos Then, you'd prepare <strong>mom</strong> for the next document:
751 1.1 christos <p>
752 1.1 christos <pre>
753 1.1 christos .COLLATE
754 1.1 christos .TITLE "New Doc Title"
755 1.1 christos .AUTHOR "Josephine Blough"
756 1.1 christos </pre>
757 1.1 christos
758 1.1 christos Then, you'd redefine the header centre string using the reserved
759 1.1 christos string \*[$TITLE], like this:
760 1.1 christos <p>
761 1.1 christos <pre>
762 1.1 christos .HEADER_CENTER "\*[$TITLE]"
763 1.1 christos </pre>
764 1.1 christos
765 1.1 christos And last, you'd do:
766 1.1 christos <p>
767 1.1 christos <pre>
768 1.1 christos .START
769 1.1 christos </pre>
770 1.1 christos
771 1.1 christos Voil! Any argument you pass to <strong>TITLE</strong> from here
772 1.1 christos on in (say, for subsequent documents) is back in the header centre
773 1.1 christos position. Here's the whole routine again:
774 1.1 christos <p>
775 1.1 christos <pre>
776 1.1 christos .HEADER_CENTER "Endnotes"
777 1.1 christos .ENDNOTES
778 1.1 christos .COLLATE
779 1.1 christos .TITLE "New Doc Title"
780 1.1 christos .AUTHOR "Josephine Blough"
781 1.1 christos .HEADER_CENTER "\*[$TITLE]"
782 1.1 christos .START
783 1.1 christos </pre>
784 1.1 christos
785 1.1 christos If need be, you can concatenate the strings, as in the following
786 1.1 christos example.
787 1.1 christos <p>
788 1.1 christos <pre>
789 1.1 christos .HEADER_CENTER "\*[$CHAPTER_STRING] \*[$CHAPTER]"
790 1.1 christos </pre>
791 1.1 christos
792 1.1 christos which, assuming a <strong>.CHAPTER_STRING</strong> of
793 1.1 christos "Chapter" and a <strong>.CHAPTER</strong> of
794 1.1 christos "2", would put "Chapter 2" in the header centre
795 1.1 christos position.
796 1.1 christos <p>
797 1.1 christos
798 1.1 christos <a name="PAGE_NUMBER_SYMBOL">
799 1.1 christos <h3><u>*Replacing header-left, -CENTER or -right with the page number</u></h3>
800 1.1 christos </a>
801 1.1 christos <p>
802 1.1 christos If you would like to have the current page number to appear
803 1.1 christos header-left, -center, or -right <em>instead</em> of a text
804 1.1 christos string, invoke the appropriate macro, above, with the single
805 1.1 christos argument <code>#</code> (the "number" or
806 1.1 christos "pound" sign). Do <strong>NOT</strong> use
807 1.1 christos double-quotes. For example,
808 1.1 christos <p>
809 1.1 christos <pre>
810 1.1 christos .HEADER_CENTER #
811 1.1 christos </pre>
812 1.1 christos
813 1.1 christos will print the current page number in the CENTER part of
814 1.1 christos headers.
815 1.1 christos <p>
816 1.1 christos
817 1.1 christos <a name="PAGE_NUMBER_INCL">
818 1.1 christos <h3><u>*Including the page number in header-left, -CENTER or -right</u></h3>
819 1.1 christos </a>
820 1.1 christos <p>
821 1.1 christos If you would like to <em>include</em> the current page number in
822 1.1 christos the string you pass to <strong>HEADER_LEFT, _CENTER,</strong> or
823 1.1 christos <strong>_RIGHT</strong>, use the special
824 1.1 christos <a href="definitions.html#TERMS_INLINES">inline escape</a>
825 1.1 christos <code>\*[PAGE#]</code> in the string argument.
826 1.1 christos <p>
827 1.1 christos For example, say you have a document that's ten pages long, and
828 1.1 christos you want header-right to say "page <whichever> of 10",
829 1.1 christos invoke <strong>HEADER_RIGHT</strong> as follows:
830 1.1 christos <p>
831 1.1 christos <pre>
832 1.1 christos .HEADER_RIGHT "page \*[PAGE#] of 10"
833 1.1 christos </pre>
834 1.1 christos
835 1.1 christos Header-right of page two will read "page 2 of 10",
836 1.1 christos header-right of page three will read "page 3 of 10",
837 1.1 christos and so on.
838 1.1 christos <p>
839 1.1 christos <hr>
840 1.1 christos
841 1.1 christos <!---HDRFTR_STYLE--->
842 1.1 christos
843 1.1 christos <a name="HDRFTR_STYLE"><h3><u>Header/footer style</u></h3></a>
844 1.1 christos
845 1.1 christos <p>
846 1.1 christos <a name="HDRFTR_STYLE_GLOBAL"><strong>Global changes</strong></a>
847 1.1 christos <p>
848 1.1 christos The following macros allow you to make changes that affect all
849 1.1 christos parts of the header at once.
850 1.1 christos <p>
851 1.1 christos Please note that <strong>HEADER_FAMILY</strong> and
852 1.1 christos <strong>HEADER_FONT</strong> have no effect on
853 1.1 christos <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>.
854 1.1 christos <p>
855 1.1 christos <ul>
856 1.1 christos <li><a href="#HDRFTR_GLOBAL_FAMILY">HEADER_FAMILY</a>
857 1.1 christos <li><a href="#HDRFTR_GLOBAL_SIZE">HEADER_SIZE</a>
858 1.1 christos <li><a href="#HDRFTR_PLAIN">HEADER_PLAIN</a>
859 1.1 christos <li><a href="#HDRFTR_COLOR">HEADER_COLOR</a>
860 1.1 christos </ul>
861 1.1 christos
862 1.1 christos <hr width="33%" align="left">
863 1.1 christos <p>
864 1.1 christos <a name="HDRFTR_GLOBAL_FAMILY">
865 1.1 christos <nobr>Macro: <strong>HEADER_FAMILY</strong> <family></nobr>
866 1.1 christos </a>
867 1.1 christos
868 1.1 christos <p>
869 1.1 christos By default, <strong>mom</strong> uses the default document family
870 1.1 christos for headers. If you would like her to use another
871 1.1 christos <a href="definitions.html#TERMS_FAMILY">family</a>
872 1.1 christos in headers, invoke <strong>HEADER_FAMILY</strong> with the identifier
873 1.1 christos for the family you want. The argument is the same as for the
874 1.1 christos typesetting macro
875 1.1 christos <a href="typesetting.html#FAMILY">FAMILY</a>.
876 1.1 christos <p>
877 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
878 1.1 christos with <strong>FOOTER_</strong> to change the footer family.
879 1.1 christos <p>
880 1.1 christos
881 1.1 christos <hr width="33%" align="left">
882 1.1 christos <p>
883 1.1 christos <a name="HDRFTR_GLOBAL_SIZE">
884 1.1 christos <nobr>Macro: <strong>HEADER_SIZE</strong> <+|-number of points></nobr>
885 1.1 christos <br>
886 1.1 christos <em>*Argument is relative to the point size of type in paragraphs</em>
887 1.1 christos </a>
888 1.1 christos
889 1.1 christos <p>
890 1.1 christos By default, <strong>mom</strong> makes small adjustments to the size
891 1.1 christos of each part of a header to achieve an aesthetically pleasing result.
892 1.1 christos If you'd like her to continue to do so, but would like the overall
893 1.1 christos appearance of headers to be a little smaller or a little larger,
894 1.1 christos invoke <strong>HEADER_SIZE</strong> with + or - the number of
895 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">points</a>
896 1.1 christos (fractions allowed) by which you want her to in/decrease the size
897 1.1 christos of headers. For example,
898 1.1 christos <p>
899 1.1 christos <pre>
900 1.1 christos .HEADER_SIZE +.75
901 1.1 christos </pre>
902 1.1 christos
903 1.1 christos increases the size of every part of a header by 3/4 of a point while
904 1.1 christos respecting <strong>mom</strong>'s own little size changes.
905 1.1 christos <p>
906 1.1 christos See
907 1.1 christos <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
908 1.1 christos for an explanation of how control macros ending in
909 1.1 christos <strong>_SIZE</strong> work.
910 1.1 christos <p>
911 1.1 christos <a name="FOOTER_GLOBAL_SIZE"></a>
912 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
913 1.1 christos with <strong>FOOTER_</strong> to change the footer size.
914 1.1 christos <p>
915 1.1 christos <strong>ADDITIONAL NOTE:</strong> Normally, macros that control headers have no
916 1.1 christos effect on
917 1.1 christos <a href="docprocessing.html#PRINTSTYLE">PRINTSTYLE TYPEWRITE</a>.
918 1.1 christos <strong>HEADER_SIZE</strong> is an exception. While all parts of a
919 1.1 christos header in <strong>PRINTSTYLE TYPEWRITE</strong> are always the same
920 1.1 christos size, you can use <strong>HEADER_SIZE</strong> with <strong>PRINTSTYLE
921 1.1 christos TYPEWRITE</strong> to reduce the header's overall point size.
922 1.1 christos You'll most likely require this when the
923 1.1 christos <a href="docprocessing.html#COPYSTYLE">COPYSTYLE</a>
924 1.1 christos is <strong>DRAFT</strong>, since portions of the header may overprint
925 1.1 christos if, say, the title of your document is very long.
926 1.1 christos <p>
927 1.1 christos
928 1.1 christos <hr width="33%" align="left">
929 1.1 christos <p>
930 1.1 christos <a name="HDRFTR_PLAIN">
931 1.1 christos Macro: <strong>HEADER_PLAIN</strong>
932 1.1 christos </a>
933 1.1 christos
934 1.1 christos <p>
935 1.1 christos By default, <strong>mom</strong> makes adjustments to the font,
936 1.1 christos size, and capitalization style of each part of headers to achieve
937 1.1 christos an aesthetically pleasing look. Should you wish to design your own
938 1.1 christos headers from the ground up without worrying how changes to the various
939 1.1 christos elements of header style interact with <strong>mom</strong>'s defaults,
940 1.1 christos invoke <strong>HEADER_PLAIN</strong> by itself, with no argument.
941 1.1 christos <strong>Mom</strong> will disable her default behaviour for headers,
942 1.1 christos and reset all elements of header style to the same family, font,
943 1.1 christos and point size as she uses in paragraphs.
944 1.1 christos <p>
945 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
946 1.1 christos with <strong>FOOTER_</strong> to disable <strong>mom</strong>'s
947 1.1 christos default behaviour for the various elements of footer style.
948 1.1 christos <p>
949 1.1 christos
950 1.1 christos <hr width="33%" align="left">
951 1.1 christos <p>
952 1.1 christos <a name="HDRFTR_COLOR">
953 1.1 christos <nobr>Macro: <strong>HEADER_COLOR</strong> <colorname></nobr>
954 1.1 christos </a>
955 1.1 christos
956 1.1 christos <p>
957 1.1 christos If you want your headers in a colour different from the document
958 1.1 christos default (usually black), invoke <strong>HEADER_COLOR</strong> with
959 1.1 christos the name of a colour pre-defined (or "initialized") with
960 1.1 christos <a href="color.html#NEWCOLOR">NEWCOLOR</a>
961 1.1 christos or
962 1.1 christos <a href="color.html#XCOLOR">XCOLOR</a>.
963 1.1 christos <p>
964 1.1 christos <strong>HEADER_COLOR</strong> will set all the parts of the header
965 1.1 christos AND the header rule in the colour you give it as an argument. If
966 1.1 christos you wish finer control over colour in headers, you can use
967 1.1 christos <a href="#_COLOR">HEADER_<POSITION>_COLOR</a>
968 1.1 christos to colourize each part of the header separately, as well as
969 1.1 christos <a href="#HDRFTR_RULE_COLOR">HEADER_RULE_COLOR</a>
970 1.1 christos to change the colour of the header rule.
971 1.1 christos <p>
972 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
973 1.1 christos with <strong>FOOTER_</strong> to colourize footers.
974 1.1 christos <p>
975 1.1 christos
976 1.1 christos <hr width="66%" align="left">
977 1.1 christos <p>
978 1.1 christos <a name="HDRFTR_STYLE_PART"><strong>Part by part changes</strong></a>
979 1.1 christos <p>
980 1.1 christos <strong>NOTE:</strong> When using the following control macros,
981 1.1 christos replace "<POSITION>" by <strong>LEFT, CENTER,</strong>
982 1.1 christos or <strong>RIGHT</strong> as appropriate.
983 1.1 christos <p>
984 1.1 christos <ul>
985 1.1 christos <li><a href="#_FAMILY">HEADER_<POSITION>_FAMILY</a>
986 1.1 christos <li><a href="#_FONT">HEADER_<POSITION>_FONT</a>
987 1.1 christos <li><a href="#_SIZE">HEADER_<POSITION>_SIZE</a>
988 1.1 christos <li><a href="#_CAPS">HEADER_<POSITION>_CAPS</a>
989 1.1 christos <li><a href="#_COLOR">HEADER_<POSITION>_COLOR</a>
990 1.1 christos </ul>
991 1.1 christos
992 1.1 christos <hr width="33%" align="left">
993 1.1 christos <p>
994 1.1 christos <a name="_FAMILY">
995 1.1 christos <nobr>Macro: <strong>HEADER_<POSITION>_FAMILY</strong> <family></nobr>
996 1.1 christos </a>
997 1.1 christos <p>
998 1.1 christos Use <strong>HEADER_<POSITION>_FAMILY</strong> to change the
999 1.1 christos <a href="definitions.html#TERMS_FAMILY">family</a>
1000 1.1 christos of any part of headers. See
1001 1.1 christos <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
1002 1.1 christos for an explanation of how control macros ending in
1003 1.1 christos <strong>_FAMILY</strong> work.
1004 1.1 christos <p>
1005 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1006 1.1 christos with <strong>FOOTER_</strong> to change a footer part's family.
1007 1.1 christos <p>
1008 1.1 christos
1009 1.1 christos <hr width="33%" align="left">
1010 1.1 christos <p>
1011 1.1 christos <a name="_FONT">
1012 1.1 christos <nobr>Macro: <strong>HEADER_<POSITION>_FONT</strong> <font></nobr>
1013 1.1 christos </a>
1014 1.1 christos <p>
1015 1.1 christos Use <strong>HEADER_<POSITION>_FONT</strong> to change the
1016 1.1 christos <a href="definitions.html#TERMS_FONT">font</a>
1017 1.1 christos of any part of headers. See
1018 1.1 christos <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
1019 1.1 christos for an explanation of how control macros ending in
1020 1.1 christos <strong>_FONT</strong> work.
1021 1.1 christos <p>
1022 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1023 1.1 christos with <strong>FOOTER_</strong> to change a footer part's font.
1024 1.1 christos <p>
1025 1.1 christos
1026 1.1 christos <hr width="33%" align="left">
1027 1.1 christos <p>
1028 1.1 christos <a name="_SIZE">
1029 1.1 christos <nobr>Macro: <strong>HEADER_<POSITION>_SIZE</strong> <+|-number of points></nobr>
1030 1.1 christos </a>
1031 1.1 christos <p>
1032 1.1 christos Use <strong>HEADER_<POSITION>_SIZE</strong> to change the size of any
1033 1.1 christos part of headers (relative to the point size of type in
1034 1.1 christos paragraphs). See
1035 1.1 christos <a href="docelement.html#CONTROL_MACRO_ARGS">Arguments to the control macros</a>
1036 1.1 christos for an explanation of how control macros ending in
1037 1.1 christos <strong>_SIZE</strong> work.
1038 1.1 christos <p>
1039 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1040 1.1 christos with <strong>FOOTER_</strong> to change a footer part's size.
1041 1.1 christos <p>
1042 1.1 christos
1043 1.1 christos <hr width="33%" align="left">
1044 1.1 christos <p>
1045 1.1 christos <a name="_CAPS">
1046 1.1 christos <nobr>Macro: <strong>HEADER_<POSITION>_CAPS</strong> toggle</nobr>
1047 1.1 christos </a>
1048 1.1 christos <p>
1049 1.1 christos <strong>HEADER_<POSITION>_CAPS</strong> is a
1050 1.1 christos <a href="definitions.html#TERMS_TOGGLE">toggle macro</a>.
1051 1.1 christos If you want any part of headers to be set in all caps,
1052 1.1 christos regardless of the capitalization of that part's string as given
1053 1.1 christos to the
1054 1.1 christos <a href="docprocessing.html#REFERENCE_MACROS">reference macros</a>
1055 1.1 christos or as defined by you with the
1056 1.1 christos <a href="#HDRFTR_STRINGS">header string control macros</a>,
1057 1.1 christos simply invoke this macro (using the appropriate position) with no
1058 1.1 christos argument. If you wish to turn capitalization off (say, for the
1059 1.1 christos header-right string that <strong>mom</strong> capitalizes by
1060 1.1 christos default), invoke the argument with any argument (e.g. <strong>OFF,
1061 1.1 christos QUIT, END, X...</strong>).
1062 1.1 christos <p>
1063 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1064 1.1 christos with <strong>FOOTER_</strong> to change a footer part's
1065 1.1 christos capitalization style.
1066 1.1 christos
1067 1.1 christos <p>
1068 1.1 christos <hr width="33%" align="left">
1069 1.1 christos <p>
1070 1.1 christos <a name="_COLOR">
1071 1.1 christos <nobr>Macro: <strong>HEADER_<POSITION>_COLOR</strong> <colorname></nobr>
1072 1.1 christos </a>
1073 1.1 christos <p>
1074 1.1 christos <strong>HEADER_<POSITION>_COLOR</strong> allows you to set a
1075 1.1 christos colour for each of the three possible parts of a page header
1076 1.1 christos separately. For example, say you want the right part of the header
1077 1.1 christos (by default, the document title) in red, this is how you'd get it:
1078 1.1 christos <p>
1079 1.1 christos <pre>
1080 1.1 christos .HEADER_RIGHT_COLOR red
1081 1.1 christos </pre>
1082 1.1 christos
1083 1.1 christos The other parts of the header will be in the default header colour
1084 1.1 christos (usually black, but that can be changed with
1085 1.1 christos <a href="#HDRFTR_COLOR">HEADER_COLOR</a>).
1086 1.1 christos <p>
1087 1.1 christos Remember that you have to define (or "initialize") a
1088 1.1 christos colour with
1089 1.1 christos <a href="color.html#NEWCOLOR">NEWCOLOR</a>
1090 1.1 christos or
1091 1.1 christos <a href="color.html#XCOLOR">XCOLOR</a>
1092 1.1 christos before you can use the colour.
1093 1.1 christos <p>
1094 1.1 christos If you create a
1095 1.1 christos <a href="#USERDEF_HDRFTR">user-defined header</a>
1096 1.1 christos with
1097 1.1 christos <a href="#HDRFTR_RECTO">HEADER_RECTO</a>
1098 1.1 christos or
1099 1.1 christos <a href="#HDRFTR_VERSO">HEADER_VERSO</a>,
1100 1.1 christos and you want various elements within the header to be colourized,
1101 1.1 christos embed the colours in the string passed to <strong>HEADER_RECTO</strong>
1102 1.1 christos or <strong>HEADER_VERSO</strong> with the
1103 1.1 christos <a href="color.html#COLOR_INLINE">\*[<colorname>]</a>
1104 1.1 christos <a href="definitions.html#TERMS_INLINES">inline escape</a>.
1105 1.1 christos <p>
1106 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1107 1.1 christos with <strong>FOOTER_</strong> to set the colours for the various
1108 1.1 christos elements of footers.
1109 1.1 christos <p>
1110 1.1 christos <hr>
1111 1.1 christos
1112 1.1 christos <!---HDRFTR_VERTICAL--->
1113 1.1 christos
1114 1.1 christos <a name="HDRFTR_VERTICAL">
1115 1.1 christos <h2><u>Header/footer vertical placement and spacing</u></h2>
1116 1.1 christos </a>
1117 1.1 christos
1118 1.1 christos <p>
1119 1.1 christos See
1120 1.1 christos <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>
1121 1.1 christos for an explanation of how <strong>mom</strong> deals with
1122 1.1 christos headers, footers, and top/bottom page margins.
1123 1.1 christos <p>
1124 1.1 christos
1125 1.1 christos <!---HDRFTR_MARGIN--->
1126 1.1 christos
1127 1.1 christos <hr width="66%" align="left">
1128 1.1 christos <p>
1129 1.1 christos <a name="HDRFTR_MARGIN"></a>
1130 1.1 christos <nobr>Macro: <strong>HEADER_MARGIN</strong> <distance to baseline of header></nobr>
1131 1.1 christos <br>
1132 1.1 christos <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
1133 1.1 christos
1134 1.1 christos <p>
1135 1.1 christos Use <strong>HEADER_MARGIN</strong> to set the distance from the
1136 1.1 christos top edge of the page to the
1137 1.1 christos <a href="definitions.html#TERMS_BASELINE">baseline</a>
1138 1.1 christos of type in headers. A unit of measure is required, and decimal
1139 1.1 christos fractions are allowed.
1140 1.1 christos <p>
1141 1.1 christos <strong>Mom</strong>'s default header margin is 4-1/2
1142 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>,
1143 1.1 christos but if you want a different margin, say, 1/2-inch, do
1144 1.1 christos <p>
1145 1.1 christos <pre>
1146 1.1 christos .HEADER_MARGIN .5i
1147 1.1 christos </pre>
1148 1.1 christos
1149 1.1 christos If your document uses
1150 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>,
1151 1.1 christos replace <strong>HEADER_</strong>, above, with
1152 1.1 christos <strong>FOOTER_</strong>. The argument to
1153 1.1 christos <strong>FOOTER_MARGIN</strong> is the distance from the bottom
1154 1.1 christos edge of the page to the baseline of type in footers.
1155 1.1 christos <p>
1156 1.1 christos <strong>Mom</strong>'s default footer margin is 3
1157 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>.
1158 1.1 christos
1159 1.1 christos <a name="FOOTER_MARGIN"></a>
1160 1.1 christos <p>
1161 1.1 christos <strong>FOOTER MARGIN AND BOTTOM MARGIN -- VERY IMPORTANT!</strong>
1162 1.1 christos <p>
1163 1.1 christos <strong>Mom</strong> requires a footer margin for proper operation,
1164 1.1 christos hence she sets one, even if you don't. (As stated above, her default
1165 1.1 christos footer margin is 3-picas).
1166 1.1 christos <p>
1167 1.1 christos If you set a bottom margin for your document (with
1168 1.1 christos <a href="typesetting.html#B_MARGIN">B_MARGIN</a>,
1169 1.1 christos prior to
1170 1.1 christos <a href="docprocessing.html#START">START</a>)
1171 1.1 christos and the margin's too close to <strong>mom</strong>'s default
1172 1.1 christos footer margin (or a footer margin you set yourself
1173 1.1 christos with <strong>FOOTER_MARGIN</strong>), <strong>mom</strong> will
1174 1.1 christos not print your footers; additionally, she'll give you a warning
1175 1.1 christos and some advice on standard error. When this happens, you must
1176 1.1 christos reset either <strong>B_MARGIN</strong> or
1177 1.1 christos <strong>FOOTER_MARGIN</strong> so there's an adequate amount of
1178 1.1 christos space for <strong>mom</strong> to print the bottom line of running
1179 1.1 christos text and the footer.
1180 1.1 christos <p>
1181 1.1 christos If you see the warning even when footers and/or bottom-of-page page
1182 1.1 christos numbering are disabled, set a nominal footer margin of 0 prior to
1183 1.1 christos <a href="docprocessing.html#START">START</a>,
1184 1.1 christos as in these examples.
1185 1.1 christos <p>
1186 1.1 christos <strong>Example 1</strong>
1187 1.1 christos <p>
1188 1.1 christos <pre>
1189 1.1 christos <reference macros, etc>
1190 1.1 christos .PAGINATION OFF
1191 1.1 christos .B_MARGIN .25i
1192 1.1 christos .FOOTER_MARGIN O
1193 1.1 christos .START
1194 1.1 christos </pre>
1195 1.1 christos
1196 1.1 christos <strong>Example 2</strong>
1197 1.1 christos <p>
1198 1.1 christos <pre>
1199 1.1 christos <reference macros, etc>
1200 1.1 christos .HEADERS OFF
1201 1.1 christos .PAGENUM_POS TOP RIGHT
1202 1.1 christos .B_MARGIN .25i
1203 1.1 christos .FOOTER_MARGIN O
1204 1.1 christos .START
1205 1.1 christos </pre>
1206 1.1 christos
1207 1.1 christos <h3>A note on header/footer margins and page numbering</h3>
1208 1.1 christos <strong>Mom</strong> uses HEADER_MARGIN</strong> and
1209 1.1 christos <strong>FOOTER_MARGIN</strong> to establish the baseline
1210 1.1 christos position of page numbers in addition to the baseline position of
1211 1.1 christos headers and footers.
1212 1.1 christos <p>
1213 1.1 christos By default, page numbers appear at the bottom of the page, therefore
1214 1.1 christos if you want the default position (bottom), but want to change the
1215 1.1 christos baseline placement, use <strong>FOOTER_MARGIN</strong>. Conversely,
1216 1.1 christos if page numbers are at the top of the page, either because you turned
1217 1.1 christos <a href="#FOOTERS">FOOTERS</a>
1218 1.1 christos on or because you instructed <strong>mom</strong> to put them
1219 1.1 christos there with
1220 1.1 christos <a href="#PAGENUM_POS">PAGENUM_POS</a>,
1221 1.1 christos you'd use <strong>HEADER_MARGIN</strong> to change their
1222 1.1 christos baseline placement.
1223 1.1 christos <p>
1224 1.1 christos
1225 1.1 christos <!---HDRFTR_GAP--->
1226 1.1 christos
1227 1.1 christos <hr width="66%" align="left">
1228 1.1 christos <p>
1229 1.1 christos <a name="HDRFTR_GAP"></a>
1230 1.1 christos <nobr>Macro: <strong>HEADER_GAP</strong> <distance from header to start of running text></nobr>
1231 1.1 christos <br>
1232 1.1 christos <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
1233 1.1 christos
1234 1.1 christos <p>
1235 1.1 christos Use <strong>HEADER_GAP</strong> to set the distance from the
1236 1.1 christos <a href="definitions.html#TERMS_BASELINE">baseline</a>
1237 1.1 christos of type in headers to the start of
1238 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>.
1239 1.1 christos A unit of measure is required, and decimal fractions are allowed.
1240 1.1 christos <p>
1241 1.1 christos As explained in
1242 1.1 christos <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>,
1243 1.1 christos <strong>HEADER_MARGIN + HEADER_GAP</strong> determine the
1244 1.1 christos default vertical starting position of running text on the page
1245 1.1 christos UNLESS you have given <strong>mom</strong> your own top margin
1246 1.1 christos (with
1247 1.1 christos <a href="typesetting.html#T_MARGIN">T_MARGIN</a>). If you give
1248 1.1 christos a top margin, <strong>mom</strong> ignores
1249 1.1 christos <strong>HEADER_GAP</strong>; running text starts at your stated
1250 1.1 christos top margin.
1251 1.1 christos
1252 1.1 christos <p>
1253 1.1 christos <strong>Mom</strong>'s default header gap is 3
1254 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>,
1255 1.1 christos but if you want a different gap, say, 2 centimetres, do
1256 1.1 christos <p>
1257 1.1 christos <pre>
1258 1.1 christos .HEADER_GAP 2c
1259 1.1 christos </pre>
1260 1.1 christos
1261 1.1 christos If your document uses
1262 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>,
1263 1.1 christos replace <strong>HEADER_</strong>, above, with
1264 1.1 christos <strong>FOOTER_</strong>. The argument to
1265 1.1 christos <strong>FOOTER_GAP</strong> is the distance from the
1266 1.1 christos baseline of type in footers to the last baseline of running text
1267 1.1 christos on the page.
1268 1.1 christos <p>
1269 1.1 christos As explained in
1270 1.1 christos <a href="#VERTICAL_SPACING">Vertical placement and spacing of headers/footers</a>,
1271 1.1 christos <strong>FOOTER_MARGIN + FOOTER_GAP</strong> determine the
1272 1.1 christos default vertical end position of running text on the page
1273 1.1 christos UNLESS you have given <strong>mom</strong> a bottom margin
1274 1.1 christos (with
1275 1.1 christos <a href="typesetting.html#B_MARGIN">B_MARGIN</a>). If you give
1276 1.1 christos a bottom margin, <strong>mom</strong> ignores
1277 1.1 christos <strong>FOOTER_GAP</strong>; running text ends at your stated
1278 1.1 christos bottom margin.
1279 1.1 christos <p>
1280 1.1 christos <strong>Mom</strong>'s default footer gap is 3
1281 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">picas</a>.
1282 1.1 christos <p>
1283 1.1 christos <strong>NOTE:</strong> <strong>Mom</strong> uses
1284 1.1 christos <strong>HEADER_GAP</strong> and
1285 1.1 christos <strong>FOOTER_GAP</strong> to establish the start and end baseline
1286 1.1 christos positions of running text with respect to both headers and footers
1287 1.1 christos AND page numbers. If you wish to change the gap between
1288 1.1 christos the last line of running text and a bottom page number, use
1289 1.1 christos <strong>FOOTER_GAP</strong>. If page numbers are at the top of the
1290 1.1 christos page, change the gap between the number and the first line of running
1291 1.1 christos text with <strong>HEADER_GAP</strong>.
1292 1.1 christos <p>
1293 1.1 christos <hr>
1294 1.1 christos
1295 1.1 christos <!---HDRFTR_SEPARATOR--->
1296 1.1 christos
1297 1.1 christos <a name="HDRFTR_SEPARATOR">
1298 1.1 christos <h2><u>Header/footer separator rule</u></h2>
1299 1.1 christos </a>
1300 1.1 christos
1301 1.1 christos <p>
1302 1.1 christos The header/footer separator rule is a modest horizontal rule,
1303 1.1 christos set slightly below the header (or above the footer), that runs
1304 1.1 christos the length of the
1305 1.1 christos <a href="definitions.html#TERMS_HEADER">header</a>
1306 1.1 christos and helps separate it visually from
1307 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>. If
1308 1.1 christos you don't want the rule, you can turn it off. If you want it,
1309 1.1 christos but at a different vertical position relative to the header (or
1310 1.1 christos footer), you can alter its placement.
1311 1.1 christos <p>
1312 1.1 christos <ul>
1313 1.1 christos <li><a href="#HDRFTR_RULE">HEADER_RULE</a> -- on or off
1314 1.1 christos <li><a href="#HDRFTR_RULE_GAP">HEADER_RULE_GAP</a> -- distance of rule from header
1315 1.1 christos </ul>
1316 1.1 christos
1317 1.1 christos <!---HDRFTR_RULE--->
1318 1.1 christos
1319 1.1 christos <hr width="66%" align="left">
1320 1.1 christos <p>
1321 1.1 christos <a name="HDRFTR_RULE"></a>
1322 1.1 christos <nobr>Macro: <strong>HEADER_RULE</strong> toggle</nobr>
1323 1.1 christos
1324 1.1 christos <p>
1325 1.1 christos By default, <strong>mom</strong> prints a header separator rule
1326 1.1 christos underneath headers (or above footers). If you don't want the
1327 1.1 christos rule, turn it off by invoking <strong>HEADER_RULE</strong> with any
1328 1.1 christos argument (<strong>OFF, QUIT, END, X...</strong>), e.g.
1329 1.1 christos <p>
1330 1.1 christos <pre>
1331 1.1 christos .HEADER_RULE OFF
1332 1.1 christos </pre>
1333 1.1 christos
1334 1.1 christos To turn the rule (back) on, invoke <strong>HEADER_RULE</strong>
1335 1.1 christos without any argument.
1336 1.1 christos <p>
1337 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1338 1.1 christos with <strong>FOOTER_</strong> to enable/disable the printing of
1339 1.1 christos the footer separator rule. (Most likely, if you're using
1340 1.1 christos <a href="#FOOTERS">FOOTERS</a>, you'll want it off.)
1341 1.1 christos <p>
1342 1.1 christos
1343 1.1 christos <!---HDRFTR_RULE_GAP--->
1344 1.1 christos
1345 1.1 christos <hr width="66%" align="left">
1346 1.1 christos <p>
1347 1.1 christos <a name="HDRFTR_RULE_GAP"></a>
1348 1.1 christos <nobr>Macro: <strong>HEADER_RULE_GAP</strong> distance of rule beneath header</nobr>
1349 1.1 christos <br>
1350 1.1 christos <em>*Requires a <a href="definitions.html#TERMS_UNITOFMEASURE">unit of measure</a></em>
1351 1.1 christos
1352 1.1 christos <p>
1353 1.1 christos <strong>HEADER_RULE_GAP</strong> is the distance from the
1354 1.1 christos <a href="definitions.html#TERMS_BASELINE">baseline</a>
1355 1.1 christos of type in headers to the rule underneath. A unit of measure is
1356 1.1 christos required, and decimal fractions are allowed. Please note that
1357 1.1 christos <strong>HEADER_RULE_GAP</strong> has no effect on
1358 1.1 christos <a href="#HEADER_GAP">HEADER_GAP</a>
1359 1.1 christos (i.e. <strong>HEADER_RULE_GAP</strong> is NOT added to
1360 1.1 christos <strong>HEADER_GAP</strong> when <strong>mom</strong> calculates
1361 1.1 christos the space between headers and the start of
1362 1.1 christos <a href="definitions.html#TERMS_RUNNING">running text</a>).
1363 1.1 christos <p>
1364 1.1 christos By default, the header rule gap is 4
1365 1.1 christos <a href="definitions.html#TERMS_PICASPOINTS">points</a>.
1366 1.1 christos If you'd like to change it to, say, 1/4
1367 1.1 christos <a href="definitions.html#TERMS_EM">em</a>, do
1368 1.1 christos <p>
1369 1.1 christos <pre>
1370 1.1 christos .HEADER_RULE_GAP .25m
1371 1.1 christos </pre>
1372 1.1 christos
1373 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1374 1.1 christos with <strong>FOOTER_</strong> if you're using
1375 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>
1376 1.1 christos and want to change the separator rule gap. In footers, the gap
1377 1.1 christos is measured from the top of the tallest
1378 1.1 christos <a href="definitions.html#TERMS_ASCENDER">ascender</a>
1379 1.1 christos in the footer.
1380 1.1 christos <p>
1381 1.1 christos <strong>ADDITIONAL NOTE:</strong> When using
1382 1.1 christos <a href="#HDRFTR_RECTOVERSO">FOOTER_RECTO</a>
1383 1.1 christos and
1384 1.1 christos <a href="#HDRFTR_RECTOVERSO">FOOTER_VERSO</a>,
1385 1.1 christos make sure that the default size for footers
1386 1.1 christos (<a href="#FOOTER_GLOBAL_SIZE">FOOTER_SIZE</a>)
1387 1.1 christos is set to the largest size of type that will be used in the
1388 1.1 christos footer or <strong>mom</strong> may not get the rule gap right.
1389 1.1 christos Inline changes to the size of type in
1390 1.1 christos <strong>FOOTER_RECTO</strong> and <strong>FOOTER_VERSO</strong>
1391 1.1 christos should always be negative (smaller) than the default.
1392 1.1 christos <p>
1393 1.1 christos
1394 1.1 christos <!---HDRFTR_RULE_COLOR--->
1395 1.1 christos
1396 1.1 christos <hr width="66%" align="left">
1397 1.1 christos <p>
1398 1.1 christos <a name="HDRFTR_RULE_COLOR"></a>
1399 1.1 christos <nobr>Macro: <strong>HEADER_RULE_COLOR</strong> <colorname></nobr>
1400 1.1 christos
1401 1.1 christos <p>
1402 1.1 christos If you wish to change the colour of the header rule, invoke
1403 1.1 christos <strong>HEADER_RULE_COLOR</strong> with the name of a colour
1404 1.1 christos pre-defined (or "initialized") with
1405 1.1 christos <a href="color.html#NEWCOLOR">NEWCOLOR</a>
1406 1.1 christos or
1407 1.1 christos <a href="color.html#XCOLOR">XCOLOR</a>.
1408 1.1 christos <p>
1409 1.1 christos Please note that <strong>HEADER_RULE_COLOR</strong> overrides the
1410 1.1 christos colour set with
1411 1.1 christos <a href="#HDRFTR_COLOR">HDRFTR_COLOR</a>,
1412 1.1 christos so that it's possible to have the heads entirely in, say, blue (set
1413 1.1 christos with <strong>HEADER_COLOR</strong>), and the header rule in, say,
1414 1.1 christos red.
1415 1.1 christos <p>
1416 1.1 christos <strong>NOTE:</strong> Replace <strong>HEADER_</strong>, above,
1417 1.1 christos with <strong>FOOTER_</strong> to change the colour of the footer
1418 1.1 christos rule.
1419 1.1 christos <p>
1420 1.1 christos <hr>
1421 1.1 christos
1422 1.1 christos <a name="PAGINATION">
1423 1.1 christos <h2><u>Pagination</u></h2>
1424 1.1 christos </a>
1425 1.1 christos
1426 1.1 christos <p>
1427 1.1 christos By default, <strong>mom</strong> paginates documents. Page numbers
1428 1.1 christos appear in the bottom margin of the page, centred between two hyphens.
1429 1.1 christos As with all elements of <strong>mom</strong>'s document processing,
1430 1.1 christos most aspects of pagination style can be altered to suit your taste
1431 1.1 christos with control macros.
1432 1.1 christos <p>
1433 1.1 christos
1434 1.1 christos <a name="INDEX_PAGINATION">
1435 1.1 christos <h3><u>Pagination macros list</u></h3>
1436 1.1 christos </a>
1437 1.1 christos
1438 1.1 christos <ul>
1439 1.1 christos <li><a href="#PAGINATE">PAGINATE</a> -- pagination on or off
1440 1.1 christos <li><a href="#PAGENUMBER">PAGENUMBER</a> -- user-defined (starting) page number
1441 1.1 christos <li><a href="#PAGENUM_STYLE">PAGENUM_STYLE</a> -- digits, roman numerals, etc
1442 1.1 christos <li><a href="#PAGENUM_ON_FIRST_PAGE">PAGENUM_ON_FIRST_PAGE</a> -- applies only when footers are enabled
1443 1.1 christos <li><a href="#DRAFT_WITH_PAGENUMBER">DRAFT_WITH_PAGENUMBER</a> -- attach draft/revision information to page numbers
1444 1.1 christos <li><a href="#PAGINATE_CONTROL">Control macros</a>
1445 1.1 christos </ul>
1446 1.1 christos <p>
1447 1.1 christos
1448 1.1 christos <!---PAGINATE--->
1449 1.1 christos
1450 1.1 christos <hr width="66%" align="left">
1451 1.1 christos <p>
1452 1.1 christos <a name="PAGINATE"></a>
1453 1.1 christos <nobr>Macro: <strong>PAGINATE</strong> toggle</nobr>
1454 1.1 christos <br>
1455 1.1 christos Alias: <strong>PAGINATION</strong>
1456 1.1 christos
1457 1.1 christos <p>
1458 1.1 christos By default, <strong>mom</strong> paginates documents (in the bottom
1459 1.1 christos margin). If you'd prefer she not paginate, turn pagination off
1460 1.1 christos by invoking <strong>PAGINATE</strong> with any argument (<strong>OFF,
1461 1.1 christos NO, QUIT, END, X...</strong>), e.g.
1462 1.1 christos <p>
1463 1.1 christos <pre>
1464 1.1 christos .PAGINATE NO
1465 1.1 christos </pre>
1466 1.1 christos
1467 1.1 christos To (re)start pagination, invoke <strong>PAGINATE</strong>
1468 1.1 christos without any argument.
1469 1.1 christos <p>
1470 1.1 christos
1471 1.1 christos <!---PAGENUMBER--->
1472 1.1 christos
1473 1.1 christos <hr width="66%" align="left">
1474 1.1 christos <p>
1475 1.1 christos <a name="PAGENUMBER"></a>
1476 1.1 christos <nobr>Macro: <strong>PAGENUMBER</strong> <number></nobr>
1477 1.1 christos
1478 1.1 christos <p>
1479 1.1 christos As is to be expected, pagination of documents begins at page 1.
1480 1.1 christos If you'd prefer that <strong>mom</strong> begin with a different
1481 1.1 christos number on the first page of a document, invoke
1482 1.1 christos <strong>PAGENUMBER</strong> with the number you want.
1483 1.1 christos <p>
1484 1.1 christos <strong>PAGENUMBER</strong> need not be used only to give
1485 1.1 christos <strong>mom</strong> a "first page" number. It can be used at
1486 1.1 christos any time to tell <strong>mom</strong> what number you want a
1487 1.1 christos page to have. Subsequent page numbers will, of course, be
1488 1.1 christos incremented by 1 from that number.
1489 1.1 christos <p>
1490 1.1 christos
1491 1.1 christos <!---PAGENUM_STYLE--->
1492 1.1 christos
1493 1.1 christos <hr width="66%" align="left">
1494 1.1 christos <p>
1495 1.1 christos <a name="PAGENUM_STYLE"></a>
1496 1.1 christos <nobr>Macro: <strong>PAGENUM_STYLE</strong> DIGIT | ROMAN | roman | ALPHA | alpha</nobr>
1497 1.1 christos
1498 1.1 christos <p>
1499 1.1 christos <strong>PAGENUM_STYLE</strong> lets you tell
1500 1.1 christos <strong>mom</strong> what kind of page numbering you want.
1501 1.1 christos <p>
1502 1.1 christos <table valign="baseline" summary="pagenumstyle">
1503 1.1 christos <tr><td>DIGIT<td align="center" width="15">=<td>Arabic digits (1, 2, 3...)
1504 1.1 christos <tr><td>ROMAN<td align="center" width="15">=<td>upper case roman numerals (I, II, III...)
1505 1.1 christos <tr><td>roman<td align="center" width="15">=<td>lower case roman numerals (i, ii, iii...)
1506 1.1 christos <tr><td>ALPHA<td align="center" width="15">=<td>upper case letters (A, B, C...)
1507 1.1 christos <tr><td>alpha<td align="center" width="15">=<td>lower case letters (a, b, c...)</td></tr>
1508 1.1 christos </table>
1509 1.1 christos <p>
1510 1.1 christos
1511 1.1 christos <!---PAGENUM_ON_FIRST_PAGE--->
1512 1.1 christos
1513 1.1 christos <hr width="66%" align="left">
1514 1.1 christos <p>
1515 1.1 christos <a name="PAGENUM_ON_FIRST_PAGE"></a>
1516 1.1 christos <nobr>Macro: <strong>PAGENUM_ON_FIRST_PAGE</strong> toggle</nobr>
1517 1.1 christos
1518 1.1 christos <p>
1519 1.1 christos This macro applies only if you've enabled
1520 1.1 christos <a href="#FOOTERS">FOOTERS</a>.
1521 1.1 christos If <strong>FOOTERS</strong> are on, <strong>mom</strong> automatically
1522 1.1 christos places page numbers at the tops of pages except on
1523 1.1 christos the first page of a document (or on first pages after
1524 1.1 christos <a href="rectoverso.html#COLLATE">COLLATE</a>). If you'd
1525 1.1 christos like the page number to appear on "first" pages when
1526 1.1 christos footers are on, invoke <strong>PAGENUM_ON_FIRST_PAGE</strong> with
1527 1.1 christos no argument. Any other argument turns the feature off (<strong>OFF,
1528 1.1 christos QUIT, END, X...</strong>).
1529 1.1 christos <p>
1530 1.1 christos As with most of the <a
1531 1.1 christos href="definitions.html#TERMS_CONTROLMACRO">control macros</a>,
1532 1.1 christos <strong>PAGENUM_ON_FIRST_PAGE</strong> can be invoked at any time,
1533 1.1 christos meaning that if you don't want a page number on the very first
1534 1.1 christos page of a document, but do want one on pages that appear after
1535 1.1 christos <strong>COLLATE</strong>, omit it before the first
1536 1.1 christos <a href="docprocessing.html#START">START</a>
1537 1.1 christos of the document, then invoke it either just before or after your
1538 1.1 christos first <strong>COLLATE</strong>.
1539 1.1 christos <p>
1540 1.1 christos
1541 1.1 christos <!---DRAFT_WITH_PAGENUMBER--->
1542 1.1 christos
1543 1.1 christos <hr width="66%" align="left">
1544 1.1 christos <p>
1545 1.1 christos <a name="DRAFT_WITH_PAGENUMBER"></a>
1546 1.1 christos Macro: <strong>DRAFT_WITH_PAGENUMBER</strong>
1547 1.1 christos
1548 1.1 christos <p>
1549 1.1 christos Sometimes, in
1550 1.1 christos <a href="docprocessing.html#COPYSTYLE">COPYSTYLE DRAFT</a>,
1551 1.1 christos the CENTER part of page headers gets overcrowded because of the draft
1552 1.1 christos and revision information that go there by default.
1553 1.1 christos <strong>DRAFT_WITH_PAGENUMBER</strong> is one way to
1554 1.1 christos fix the problem.
1555 1.1 christos <p>
1556 1.1 christos Invoked without an argument, <strong>DRAFT_WITH_PAGENUMBER</strong>
1557 1.1 christos removes draft/revision information from the page headers and attaches
1558 1.1 christos it instead to the document's page numbering, in the form
1559 1.1 christos <p>
1560 1.1 christos <pre>
1561 1.1 christos Draft #, Rev. # / <pagenumber>
1562 1.1 christos </pre>
1563 1.1 christos
1564 1.1 christos See the note in
1565 1.1 christos <a href="docprocessing.html#COPYSTYLE">COPYSTYLE DRAFT</a>
1566 1.1 christos for other ways of dealing with crowded page headers when formatting
1567 1.1 christos draft-style copy.
1568 1.1 christos <p>
1569 1.1 christos <hr>
1570 1.1 christos
1571 1.1 christos <!---PAGINATE_CONTROL--->
1572 1.1 christos
1573 1.1 christos <a name="PAGINATE_CONTROL"><h3><u>Pagination control macros</u></h3></a>
1574 1.1 christos
1575 1.1 christos <ol>
1576 1.1 christos <li><a href="#PAGINATE_GENERAL">Family/font/size/colour</a>
1577 1.1 christos <li><a href="#PAGENUM_POS">Page number position (vertical and horizontal)</a>
1578 1.1 christos <li><a href="#PAGENUM_HYPHENS">Enclose page numbers with hyphens (on or off)</a>
1579 1.1 christos </ol>
1580 1.1 christos <br>
1581 1.1 christos <a name="PAGINATE_GENERAL"><h3><u>1. Page number family/font/size/colour</u></h3></a>
1582 1.1 christos <p>
1583 1.1 christos See
1584 1.1 christos <a href="#CONTROL_MACRO_ARGS">Arguments to the control macros</a>.
1585 1.1 christos <p>
1586 1.1 christos <pre>
1587 1.1 christos .PAGENUM_FAMILY default = prevailing document family; default is Times Roman
1588 1.1 christos .PAGENUM_FONT default = roman
1589 1.1 christos .PAGENUM_SIZE default = 0 (i.e. same size as paragraph text)
1590 1.1 christos .PAGENUM_COLOR default= black
1591 1.1 christos </pre>
1592 1.1 christos
1593 1.1 christos <a name="PAGENUM_POS"><h3><u>2. Page number position</u></h3></a>
1594 1.1 christos <p>
1595 1.1 christos <nobr>Macro: <strong>PAGENUM_POS</strong> TOP | BOTTOM LEFT | CENTER | RIGHT</nobr>
1596 1.1 christos
1597 1.1 christos <p>
1598 1.1 christos Use <strong>PAGENUM_POS</strong> to change the default position of
1599 1.1 christos automatic page numbering. <strong>PAGENUM_POS</strong> requires
1600 1.1 christos <em>two</em> arguments: a vertical position (TOP or BOTTOM) and a
1601 1.1 christos horizontal position (LEFT or CENTER or RIGHT).
1602 1.1 christos <p>
1603 1.1 christos For example, if you turn both
1604 1.1 christos <a href="definitions.html#TERMS_HEADER">headers</a>
1605 1.1 christos and
1606 1.1 christos <a href="definitions.html#TERMS_FOOTER">footers</a>
1607 1.1 christos off (with <code>.HEADERS OFF</code> and <code>.FOOTERS
1608 1.1 christos OFF</code>) and you want <strong>mom</strong> to number your
1609 1.1 christos pages at the top right position, enter
1610 1.1 christos <p>
1611 1.1 christos <pre>
1612 1.1 christos .PAGENUM_POS TOP RIGHT
1613 1.1 christos </pre>
1614 1.1 christos
1615 1.1 christos <a name="PAGENUM_HYPHENS"><h3><u>3. Enclose page numbers with hyphens (on or off)</u></h3></a>
1616 1.1 christos <p>
1617 1.1 christos By default, <strong>mom</strong> encloses page numbers between hyphens.
1618 1.1 christos If you don't want this behaviour, invoke the macro
1619 1.1 christos <strong>PAGENUM_HYPHENS</strong> with any argument (<strong>OFF, QUIT, END, X...</strong>),
1620 1.1 christos like this:
1621 1.1 christos <p>
1622 1.1 christos <pre>
1623 1.1 christos .PAGENUM_HYPHENS OFF
1624 1.1 christos </pre>
1625 1.1 christos
1626 1.1 christos If, for some reason, you want to turn page number hyphens back
1627 1.1 christos on, invoke the macro without an argument.
1628 1.1 christos <p>
1629 1.1 christos
1630 1.1 christos <hr>
1631 1.1 christos <a href="rectoverso.html#TOP">Next</a>
1632 1.1 christos <a href="docelement.html#TOP">Prev</a>
1633 1.1 christos <a href="#TOP">Top</a>
1634 1.1 christos <a href="toc.html">Back to Table of Contents</a>
1635 1.1 christos </body>
1636 1.1 christos </html>
1637