2421 lines
86 KiB
HTML
2421 lines
86 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
This file is part of groff, the GNU roff type-setting system.
|
|
|
|
Copyright (C) 2004-2020 Free Software Foundation, Inc.
|
|
Written by Peter Schaffter (peter@schaffter.ca).
|
|
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
|
any later version published by the Free Software Foundation; with no
|
|
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
|
|
Texts.
|
|
|
|
A copy of the Free Documentation License is included as a file called
|
|
FDL in the main directory of the groff source package.
|
|
-->
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
|
<title>Mom -- Document processing, page headers/footers and pagination</title>
|
|
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
|
|
</head>
|
|
|
|
<body style="background-color: #f5faff;">
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<div id="top" class="page">
|
|
|
|
<!-- Navigation links -->
|
|
<table style="width: 100%;">
|
|
<tr>
|
|
<td><a href="toc.html">Back to Table of Contents</a></td>
|
|
<td style="text-align: right;"><a href="rectoverso.html#top">Next: Recto/verso printing, collating</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h1 class="docs">Page headers/footers, pagination</h1>
|
|
|
|
<div style="text-align: center;">
|
|
<ul class="no-enumerator" style="margin-left: -2.5em;">
|
|
<li><a href="#headfootpage-intro">Introduction – VERY IMPORTANT; read me!</a></li>
|
|
<li> <a href="#pagination-note">An important note on pagination</a></li>
|
|
<li><a href="#description-general">General description of headers/footers</a></li>
|
|
<li><a href="#header-style">Default specs for headers/footers</a></li>
|
|
<li><a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="rule-medium"><hr/></div>
|
|
|
|
<h2 id="toc-doc-head-foot-page" class="docs" style="text-align: center;">Table of contents</h2>
|
|
|
|
<h3 class="toc toc-docproc-header" style="margin-top: 1em;"><a class="header-link" href="#headfoot-management">Managing page headers and footers</a></h3>
|
|
<ul class="toc-docproc" style="margin-top: .5em;">
|
|
<li><a href="#headers">HEADERS</a> – on or off</li>
|
|
<li><a href="#footers">FOOTERS</a> – on or off</li>
|
|
<li><a href="#footer-on-first-page">FOOTER_ON_FIRST_PAGE</a></li>
|
|
</ul>
|
|
<h3 class="toc toc-docproc-header"><a class="header-link" href="#headfoot-control">Control macros for headers/footers</a></h3>
|
|
<ul class="toc-docproc" style="margin-top: .5em;">
|
|
<li><a href="#index-headfoot-control">Header/footer control macros and defaults</a>
|
|
<ul class="toc-docproc">
|
|
<li><a href="#hdrftr-strings">Header/footer strings</a>
|
|
<ul class="toc-docproc">
|
|
<li><a href="#reserved-strings">Using mom’s reserved strings in header/footer definitions</a> (TITLE, AUTHOR, etc.)</li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-style">Header/footer style</a>
|
|
<ul class="toc-docproc">
|
|
<li><a href="#hdrftr-style-global">Global changes</a></li>
|
|
<li><a href="#hdrftr-style-part">Part-by-part changes</a></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-vertical">Vertical placement and spacing of headers/footers</a>
|
|
<ul class="toc-docproc">
|
|
<li><a href="#hdrftr-margin">HEADER_MARGIN / FOOTER_MARGIN</a>
|
|
<ul class="toc-docproc no-enumerator" style="margin-left: -2em;">
|
|
<li>– <a href="#footer-margin">Important: FOOTER_MARGIN and bottom margins</a></li>
|
|
</ul></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-separator">The header/footer separator rule</a>
|
|
<ul class="toc-docproc">
|
|
<li><a href="#hdrftr-rule">HEADER_RULE</a> – on or off</li>
|
|
<li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a> – weight of the rule</li>
|
|
<li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a> – distance of rule from header/footer</li>
|
|
<li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a> – colour of the header/footer rule</li>
|
|
</ul></li>
|
|
</ul></li>
|
|
</ul>
|
|
<h3 class="toc toc-docproc-header"><a class="header-link" href="#userdef-hdrftr-rv">User-defined, single string recto/verso headers/footers</a></h3>
|
|
<ul class="toc-docproc" style="margin-top: .5em;">
|
|
<li><a href="#hdrftr-recto">HEADER_RECTO, HEADER_VERSO</a>
|
|
<ul style="margin-left: -.5em">
|
|
<li><a href="#userdef-hdrftr">User-defined, single string headers/footers (no recto/verso)</a></li>
|
|
<li><a href="#padding-hdrftr">Padding the header-recto/header-verso string</a></li>
|
|
</ul></li>
|
|
</ul>
|
|
<h3 class="toc toc-docproc-header"><a class="header-link" href="#headers-and-footers-intro">Headers and footers on the same page</a></h3>
|
|
<h3 class="toc toc-docproc-header" style="margin-top: .75em;"><a class="header-link" href="#pagination-intro">Pagination</a></h3>
|
|
<ul class="toc-docproc" style="margin-top: .5em;">
|
|
<li><a href="#index-pagination">Pagination macros</a></li>
|
|
<li><a href="#index-paginate-control">Pagination control macros and defaults</a></li>
|
|
<li><a href="#pdf-outline-numbering">PDF outline page numbering</a></li>
|
|
</ul>
|
|
<h3 class="toc toc-docproc-header"><a class="header-link" href="#blank-pages">Inserting blank pages into a document</a></h3>
|
|
|
|
<div class="rule-medium" style="margin-top: 1.5em;"><hr/></div>
|
|
|
|
<h2 id="headfootpage-intro" class="macro-group">Managing page headers and footers</h2>
|
|
|
|
<div id="headerfooter" class="box-tip">
|
|
<p class="tip-top">
|
|
<span class="note">Note:</span>
|
|
Because headers and footers are virtually identical, this
|
|
documentation addresses itself only to headers. In all cases,
|
|
unless otherwise noted, descriptions of headers describe footers as
|
|
well.
|
|
</p>
|
|
|
|
<p class="tip-bottom">
|
|
Furthermore, any
|
|
<a href="definitions.html#controlmacro">control macro</a>
|
|
that begins with HEADER_ may be used to control footers, simply by
|
|
replacing HEADER_ with FOOTER_.
|
|
</p>
|
|
</div>
|
|
|
|
<p style="margin-top: -.75em;">
|
|
<a href="definitions.html#header">Headers</a>
|
|
and
|
|
<a href="definitions.html#footer">footers</a>,
|
|
as defined in the section
|
|
<a href="definitions.html#mom">Mom’s Document Processing Terms</a>,
|
|
are those parts of a document that contain information about the document
|
|
itself which appear in the margins either above or below
|
|
<a href="definitions.html#running">running text</a>.
|
|
They are, in all respects but two, identical. The differences are:
|
|
</p>
|
|
<ol style="margin-top: -.5em; margin-bottom: -.5em;">
|
|
<li>headers appear in the margin <i>above</i> running text while
|
|
footers appear in the margin <i>beneath</i> running text;
|
|
</li>
|
|
<li>the (optional) rule that separates headers from running
|
|
text appears <i>below</i> the header while
|
|
the (optional) rule that separates footers from running
|
|
text appears <i>above</i> the footer.
|
|
</li>
|
|
</ol>
|
|
|
|
<div id="pagination-note" class="box-tip" style="margin-top: 1.5em;">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
While the single page number that mom generates in either the top
|
|
or bottom margin above or below running text is technically a kind
|
|
of header/footer, mom and this documentation treat it as a separate
|
|
page element.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="author-note" class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Author’s note:</span>
|
|
Left to their own devices (i.e. if you’re happy with the way
|
|
mom does things by default), headers are something you never have to
|
|
worry about. You can skip reading this section entirely. But if
|
|
you want to change them, be advised that headers have more macros to
|
|
control their appearance than any other document element. The text
|
|
of this documentation becomes correspondingly dense at this point.
|
|
</p>
|
|
</div>
|
|
|
|
<h3 id="description-general" class="docs">General description of headers/footers</h3>
|
|
|
|
<p>
|
|
Headers comprise three distinct parts: a left part, a centre part,
|
|
and a right part. Each part contains text (a “string”)
|
|
that identifies some aspect of the document as a whole.
|
|
</p>
|
|
|
|
<p>
|
|
The left part (“header-left”) lines up with the
|
|
document’s left margin. The centre part (“header
|
|
centre”) is centred on the document’s line length.
|
|
The right part (“header-right”) lines up with the
|
|
document’s right margin. Not all parts need contain a string,
|
|
and if you don’t want headers at all, you can turn them off
|
|
completely.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note to groff experts:</span>
|
|
Although mom’s headers resemble the three-part titles
|
|
generated by <kbd>.tl</kbd>, they’re in no way related to it,
|
|
nor based upon it. <kbd>.tl</kbd> is not used at all in mom.
|
|
</p>
|
|
</div>
|
|
|
|
<p>
|
|
Normally, mom fills headers with strings appropriate to the document
|
|
type selected by
|
|
<a href="docprocessing.html#doctype">DOCTYPE</a>,
|
|
with the author left, the document title right, and chapter or
|
|
document type information in the centre. You can, however, supply
|
|
whatever strings you like—including page numbers—to go
|
|
in any part of headers. What’s more, you can set the family,
|
|
font, size, colour and capitalization style (caps, caps/lower-case,
|
|
or smallcaps) for each header part individually.
|
|
</p>
|
|
|
|
<p>
|
|
By default, mom prints a horizontal rule beneath headers to separate
|
|
them visually from running text. In the case of footers, the rule
|
|
is above. You can increase or decrease the space between the header
|
|
and the rule if you like (with
|
|
<kbd><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a></kbd>),
|
|
or remove it completely.
|
|
</p>
|
|
|
|
<h3 id="header-style" class="docs">Default specs for headers/footers</h3>
|
|
|
|
<p>
|
|
Mom makes small type adjustments to each part of the header (left,
|
|
centre, right) to achieve an aesthetically pleasing result. The
|
|
defaults are listed below. (The strings mom puts by default in each
|
|
part are explained in
|
|
<a href="docprocessing.html#doctype">DOCTYPE</a>.)
|
|
</p>
|
|
|
|
<div class="defaults-container" style="padding-bottom: 8px;">
|
|
<p class="defaults" style="padding-top: 6px; padding-bottom: 6px; text-align: center;">
|
|
<i>Note:</i> Except for capitalization (all caps or caps/lower-case),
|
|
these defaults apply only to
|
|
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPESET</kbd></a>.
|
|
</p>
|
|
<span class="pre defaults">
|
|
TYPE SPEC HEADER LEFT HEADER CENTER HEADER RIGHT
|
|
--------- ----------- ------------- ------------
|
|
Family document default document default document default
|
|
Font roman italic roman
|
|
Colour (black) (black) (black)
|
|
All caps no no yes
|
|
Size* -.5 (points) -.5 (points) -2 (points)
|
|
(-2 if all caps) (-2 if all caps) (-.5 if not all caps)
|
|
|
|
*Relative to the point size of <a href="definitions.html#running">running text</a>
|
|
</span>
|
|
</div>
|
|
|
|
<p style="margin-top: -1.5em;">
|
|
You can, of course, change any of the defaults using the appropriate
|
|
control macros. And should you wish to design headers from the
|
|
ground up, mom has a special macro
|
|
<a href="#hdrftr-plain">HEADER_PLAIN</a>
|
|
that removes all type adjustments to headers. The
|
|
type specs for running text are used instead, providing a simple
|
|
reference point for any alterations you want to make to the family,
|
|
font, size, and capitalization style of any header part.
|
|
</p>
|
|
|
|
<h3 id="vertical-spacing" class="docs">Vertical placement and spacing of headers/footers</h3>
|
|
|
|
<p>
|
|
As explained in the section,
|
|
<a href="docprocessing.html#behaviour">Typesetting macros during document processing</a>,
|
|
the top and bottom margins of a mom document are the vertical start
|
|
and end positions of
|
|
<a href="definitions.html#running">running text</a>,
|
|
not the vertical positions of headers or footers, which, by definition,
|
|
appear in the margins above (or below) running text.
|
|
</p>
|
|
|
|
<p>
|
|
The vertical placement of headers is controlled by the macro
|
|
<a href="#hdrftr-margin">HEADER_MARGIN</a>,
|
|
which establishes the
|
|
<a href="definitions.html">baseline</a>
|
|
position of headers relative to the top edge of the page. The
|
|
header rule, whose position is relative to the header itself, is
|
|
controlled by a separate macro.
|
|
</p>
|
|
|
|
<p>
|
|
FOOTER_MARGIN is the counterpart to HEADER_MARGIN, and establishes
|
|
the baseline position of footers relative to the bottom edge of the
|
|
page.
|
|
</p>
|
|
|
|
<p>
|
|
The distance between headers and the start
|
|
of running text can be controlled with the macro
|
|
<a href="#hdrftr-gap">HEADER_GAP</a>,
|
|
effectively making HEADER_MARGIN + HEADER_GAP the top margin of
|
|
running text unless you give mom a literal top margin (with
|
|
<a href="typesetting.html#t-margin">T_MARGIN</a>)
|
|
or
|
|
<a href="typesetting.html#page">PAGE</a>,
|
|
in which case she ignores HEADER_GAP and begins the running text at
|
|
whatever top margin you give.
|
|
</p>
|
|
|
|
<p>
|
|
FOOTER_GAP and
|
|
<a href="typesetting.html#b-margin">B_MARGIN</a>
|
|
work similarly, except they determine where running text <i>ends</i>
|
|
on the page. (See
|
|
<a href="#footer-margin">Important – footer margin and bottom margins</a>
|
|
for a warning about possible conflicts between the footer margin and
|
|
the bottom margin.)
|
|
</p>
|
|
|
|
<p>
|
|
Confused? Mom apologizes. It’s really quite simple. By
|
|
default, mom sets headers <span class="nobr">4-1/2</span>
|
|
<a href="definitions.html#picaspoints">picas</a>
|
|
down from the top of the page and begins the running text 3 picas
|
|
(the HEADER_GAP) beneath that, which means the effective top margin
|
|
of the running text is <span class="nobr">7-1/2</span> picas (visually approx. 1
|
|
inch). However, if you give mom a literal top margin (with
|
|
<a href="typesetting.html#t-margin">T_MARGIN</a>),
|
|
she ignores the HEADER_GAP and starts the running text at whatever
|
|
top margin you give.
|
|
</p>
|
|
|
|
<p>
|
|
Footers are treated similarly. Mom sets footers 3 picas up from the
|
|
bottom of the page, and interrupts the processing of running text 3
|
|
picas (the FOOTER_GAP) above that (again, visually approx. 1 inch).
|
|
However, if you give mom a literal bottom margin (with
|
|
<a href="typesetting.html#b-margin">B_MARGIN</a>),
|
|
she ignores the FOOTER_GAP and interrupts the processing of running
|
|
text at whatever bottom margin you give.
|
|
</p>
|
|
|
|
<p>
|
|
If mom is paginating your document (she does, by default, at the
|
|
bottom of each page), the vertical spacing and placement of page
|
|
numbers, whether at the top or the bottom of the page, is managed
|
|
exactly as if the page numbers were headers (or footers), and are
|
|
controlled by the same macros. See
|
|
<a href="#index-paginate-control">Pagination control</a>.
|
|
</p>
|
|
|
|
<div class="rule-short"><hr/></div>
|
|
|
|
<!-- ======================================================================== -->
|
|
|
|
<h2 id="headfoot-management" class="macro-group">Managing headers/footers</h2>
|
|
|
|
<p>
|
|
The following are the basic macros for turning
|
|
<a href="definitions.html#header">headers</a>
|
|
or
|
|
<a href="definitions.html#footer">footers</a>
|
|
on or off. They should be invoked prior to
|
|
<a href="docprocessing.html#start">START</a>.
|
|
</p>
|
|
|
|
<p>
|
|
By default, mom prints page headers. If you turn
|
|
them off, she will begin the
|
|
<a href="definitions.html#running">running text</a>
|
|
on each page with a default top margin of 6
|
|
<a href="definitions.html#picaspoints">picas</a>
|
|
unless you have requested a different top margin (with
|
|
<a href="typesetting.html#t-margin">T_MARGIN</a>)
|
|
prior to
|
|
<a href="docprocessing.html#start">START</a>.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
<a href="#headers">HEADERS</a>
|
|
and
|
|
<a href="#footers">FOOTERS</a>
|
|
are mutually exclusive. If headers are on, footers (but not
|
|
bottom-of-page numbering) are automatically turned off. Equally,
|
|
if footers are on, headers (but not top-of-page numbering) are
|
|
automatically turned off. Thus, if you’d prefer footers in a
|
|
document, you need only invoke
|
|
<kbd><a href="#footers">.FOOTERS</a></kbd>;
|
|
there’s no need to turn headers off first.
|
|
</p>
|
|
</div>
|
|
|
|
<p style="margin-top: -.5em">
|
|
If you need both headers and footers, there’s a special macro
|
|
<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>
|
|
that allows you to set it up.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<h3 id="index-hdrftr" class="macro-list">Header/footer macros</h3>
|
|
<ul class="macro-list">
|
|
<li><a href="#headers">HEADERS</a> – on or off</li>
|
|
<li><a href="#footers">FOOTERS</a> – on or off</li>
|
|
<li><a href="#footer-on-first-page">FOOTER_ON_FIRST_PAGE</a></li>
|
|
<li><a href="#userdef-hdrftr-rv">User-defined, single string recto/verso headers/footers</a>
|
|
<ul>
|
|
<li><a href="#hdrftr-rectoverso">HEADER_RECTO, HEADER_VERSO</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#userdef-hdrftr">User-defined, single string headers/footers (no recto/verso)</a></li>
|
|
</ul></li>
|
|
<li><a href="#reserved-strings">Using mom’s reserved strings in header/footer definitions</a>
|
|
(title, author, etc.)
|
|
</li>
|
|
</ul></li>
|
|
<li><a href="#headers-and-footers-intro">HEADERS_AND_FOOTERS</a> –
|
|
putting both headers and footers on document pages
|
|
</li>
|
|
<li><a href="#headfoot-control">Header and footer control macros</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- -HEADERS- -->
|
|
|
|
<div class="macro-id-overline">
|
|
<h3 class="macro-id">Headers</h3>
|
|
</div>
|
|
|
|
<div id="headers" class="box-macro-args">
|
|
Macro: <b>HEADERS</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
<a href="definitions.html#header">Page headers</a>
|
|
are on by default. If you don’t want them, turn them off by
|
|
invoking <kbd>.HEADERS</kbd> with any argument (<kbd>OFF</kbd>,
|
|
<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...), e.g.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADERS OFF
|
|
</span>
|
|
</p>
|
|
|
|
<p>
|
|
<b>NOTE:</b> HEADERS automatically
|
|
disables
|
|
<a href="definitions.html#footer">footers</a>
|
|
but not the page numbers that normally appear at the bottom of the
|
|
page. If you want both headers and footers, you must use the macro
|
|
<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<b>ADDITIONAL NOTE:</b> If HEADERS are OFF, mom’s normal top
|
|
margin for
|
|
<a href="definitions.html#running">running text</a>
|
|
(7.5
|
|
<a href="definitions.html#picaspoints">picas</a>)
|
|
changes to 6 picas (visually approx. 1 inch). This does NOT apply
|
|
to the situation where footers have been explicitly turned on
|
|
(with
|
|
<kbd><a href="#footers">FOOTERS</a></kbd>).
|
|
Explicitly invoking footers moves page numbering to the
|
|
top of the page, where its placement and spacing are the same as
|
|
for headers (i.e. the top margin of running text remains 7.5
|
|
picas.)
|
|
</p>
|
|
|
|
<!-- -FOOTERS- -->
|
|
|
|
<div class="macro-id-overline">
|
|
<h3 id="footers" class="macro-id">Footers</h3>
|
|
</div>
|
|
|
|
<div class="box-macro-args">
|
|
Macro: <b>FOOTERS</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
<a href="definitions.html#footer">Page footers</a>
|
|
are off by default. If you want them instead of
|
|
<a href="definitions.html#header">headers</a>,
|
|
turn them on by invoking
|
|
<kbd>.FOOTERS</kbd> without an argument, e.g.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.FOOTERS
|
|
</span>
|
|
FOOTERS automatically disables headers, and
|
|
mom shifts the placement of page numbers from their
|
|
normal position at page bottom to the top of the page.
|
|
</p>
|
|
|
|
<p>
|
|
<b>NOTE:</b> If you want both headers and footers, you must use the
|
|
macro
|
|
<a href="#headers-and-footers">HEADERS_AND_FOOTERS</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<b>NOTE:</b> By default, when footers are on,
|
|
mom does not print a page number on the first
|
|
page of a document, nor on first pages after
|
|
<a href="rectoverso.html#collate">COLLATE</a>.
|
|
If you don’t want this behaviour, you can change it with
|
|
<kbd><a href="#pagenum-on-first-page">PAGENUM_ON_FIRST_PAGE</a></kbd>.
|
|
</p>
|
|
|
|
<!-- -FOOTER_ON_FIRST_PAGE- -->
|
|
|
|
<div class="macro-id-overline">
|
|
<h3 id="footer-on-first-page" class="macro-id">Footer on first page</h3>
|
|
</div>
|
|
|
|
<div class="box-macro-args">
|
|
Macro: <b>FOOTER_ON_FIRST_PAGE</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
If you invoke
|
|
<a href="#footers"><kbd>.FOOTERS</kbd></a>,
|
|
mom, by default, does not print a footer on the
|
|
first page of the document. (The
|
|
<a href="definitions.html">docheader</a>
|
|
on page 1 makes it redundant.) However, should you wish a footer on
|
|
page 1, invoke <kbd>.FOOTER_ON_FIRST_PAGE</kbd> without any argument.
|
|
</p>
|
|
|
|
<div class="rule-short"><hr/></div>
|
|
|
|
<h2 id="headfoot-control" class="macro-group">Control macros for headers/footers</h2>
|
|
|
|
<p>
|
|
Virtually every part of headers (and footers; see the note on how
|
|
<a href="#headerfooter">“headers” means “footers”</a>
|
|
in the
|
|
<a href="#headfootpage-intro">Introduction</a>
|
|
to headers/footers) can be designed to your own specifications.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<h3 id="index-headfoot-control" class="macro-list">Header/footer control macros and defaults</h3>
|
|
|
|
<ol style="margin-top: -1.5em; padding-bottom: 6px;">
|
|
<li><a href="#hdrftr-strings">Header/footer strings</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-left">HEADER_LEFT</a></li>
|
|
<li><a href="#hdrftr-centre">HEADER_CENTER</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-centre-pad">Padding the header-centre string</a></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-right">HEADER_RIGHT</a></li>
|
|
<li><a href="#reserved-strings">Using mom’s reserved strings in header/footer definitions</a>
|
|
(e.g. <kbd>\E*[$TITLE]</kbd> when you want
|
|
the title, <kbd>\E*[$AUTHOR]</kbd> when you want the author, etc.)
|
|
</li>
|
|
<li><a href="#page-number-symbol">Replacing header-left, centre or right with the page number</a></li>
|
|
<li><a href="#page-number-incl">Including the page number in header-left, centre or right</a></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-style">Header/footer style</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-style-global">Global changes</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-plain">HEADER_PLAIN</a> – disable default adjustments to header parts</li>
|
|
<li><a href="#hdrftr-global-family">HEADER_FAMILY</a> – family for entire header</li>
|
|
<li><a href="#hdrftr-global-size">HEADER_SIZE</a> – size for entire header</li>
|
|
<li><a href="#hdrftr-color">HEADER_COLOR</a> – colourize the header</li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-style-part">Part-by-part changes</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#_family">_FAMILY</a> – left, centre or right family</li>
|
|
<li><a href="#_font">_FONT</a> – left, centre or right font</li>
|
|
<li><a href="#_size">_SIZE</a> – left, centre or right size</li>
|
|
<li><a href="#_caps">_CAPS</a> – left, centre or right all caps</li>
|
|
<li><a href="#_smallcaps">_SMALLCAPS</a> – left, centre or right smallcaps</li>
|
|
<li><a href="#_color">_COLOR</a> – left, centre or right colour</li>
|
|
</ul></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-vertical">Header/footer vertical placement and spacing</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-margin">HEADER_MARGIN</a></li>
|
|
<li><a href="#hdrftr-gap">HEADER_GAP</a></li>
|
|
</ul></li>
|
|
<li><a href="#hdrftr-separator">Header/footer separator rule</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#hdrftr-rule">HEADER_RULE</a></li>
|
|
<li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a></li>
|
|
<li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a></li>
|
|
<li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a></li>
|
|
</ul></li>
|
|
</ol>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_STRINGS- -->
|
|
|
|
<h4 id="hdrftr-strings" class="docs">1. Header/footer strings</h4>
|
|
|
|
<div id="hdrftr-left" class="box-macro-args" style="margin-top: 1em;">
|
|
”Macro: <b>HEADER_LEFT</b> <kbd class="macro-args">“<text of header-left> | #</kbd>
|
|
</div>
|
|
|
|
<div id="hdrftr-centre" class="box-macro-args" style="margin-top: 1em;">
|
|
”Macro: <b>HEADER_CENTER</b> <kbd class="macro-args">“<text of header-centre> | #</kbd>
|
|
</div>
|
|
|
|
<div id="hdrftr-right" class="box-macro-args" style="margin-top: 1em;">
|
|
”Macro: <b>HEADER_RIGHT</b> <kbd class="macro-args">“<text of header-right> | #</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
To change the text (the “string”) of the left, centre,
|
|
or right part of headers, invoke the appropriate macro, above,
|
|
with the string you want. For example, mom, by default, prints
|
|
the document’s author in the header-left position. If your
|
|
document has, say, two authors, and you want both their names to
|
|
appear header-left, change HEADER_LEFT like this:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_LEFT "R. Stallman, E. Raymond"
|
|
</span>
|
|
</p>
|
|
|
|
<p>
|
|
Because the arguments to HEADER_LEFT, _CENTER,
|
|
and _RIGHT are
|
|
<a href="definitions.html#stringargument">string arguments</a>,
|
|
they must be enclosed in double-quotes.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Replace HEADER_, above, with FOOTER_ to change the strings in
|
|
footers.
|
|
</p>
|
|
</div>
|
|
|
|
<h3 id="hdrftr-centre-pad" class="docs">Padding the header/footer centre string</h3>
|
|
|
|
<div class="box-macro-args" style="margin-top: 1em;">
|
|
Macro: <b>HEADER_CENTER_PAD</b> <kbd class="macro-args">LEFT | RIGHT <amount of space by which to pad centre string left or right></kbd>
|
|
</div>
|
|
|
|
<p class="requires">
|
|
• Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
|
|
</p>
|
|
|
|
<p>
|
|
By default, mom centres the header-centre string on the line length
|
|
in effect for page headers.
|
|
</p>
|
|
|
|
<p>
|
|
In some cases, notably when the header-left or header-right
|
|
strings are particularly long, the effect isn’t pretty. The
|
|
offendingly long header-left or right crowds, or even overprints,
|
|
the header-centre. That’s where HEADER_CENTER_PAD comes
|
|
in. With a bit of experimentation (yes, you have to preview the
|
|
document), you can use HEADER_CENTER_PAD to move the header-centre
|
|
string left or right until it looks acceptably centred between the
|
|
two other strings.
|
|
</p>
|
|
|
|
<p>
|
|
For example, say your document is an outline for a novel called
|
|
<i>By the Shores of Lake Attica</i>. You’ve told mom you want
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.DOCTYPE NAMED "Outline"
|
|
</span>
|
|
but when you preview your work, you see that “Outline”,
|
|
in the centre of the page header, is uncomfortably close to the
|
|
title, which is to the right. By invoking
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER_PAD RIGHT 3P
|
|
</span>
|
|
you can scoot the word "Outline" over three
|
|
<a href="definitions.html#picaspoints">picas</a>
|
|
<i>to the left</i> (because the padding is added onto the right of the
|
|
string) so that your head looks nicely spaced out. Invoking
|
|
<kbd>.HEADER_CENTER_PAD</kbd> with the <kbd>LEFT</kbd> argument puts
|
|
the padding on the left side of the string so that it scoots
|
|
right.
|
|
</p>
|
|
|
|
<p>
|
|
Most reassuring of all is that if you use HEADER_CENTER_PAD
|
|
conjunction with
|
|
<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>,
|
|
mom will pad the centre string appropriately left OR right,
|
|
depending on which page you’re on, without you having to tell
|
|
her to do so.
|
|
</p>
|
|
|
|
<h3 id="reserved-strings" class="docs">Using mom’s reserved strings in header/footer definitions</h3>
|
|
|
|
<p>
|
|
As pointed out in the
|
|
<a href="#author-note">Author’s note</a>
|
|
in the introduction to headers/footers, headers and footers are
|
|
something you don’t normally have to worry much about. Mom
|
|
usually knows what to do.
|
|
</p>
|
|
|
|
<p>
|
|
However, situations do arise where you need to manipulate what goes
|
|
in the header/footer strings, setting and resetting them as you go
|
|
along.
|
|
</p>
|
|
|
|
<p>
|
|
A case where you might want to do this would be if you want to
|
|
output endnotes at the end of each document in a series of
|
|
<a href="rectoverso.html#collate">collated</a>
|
|
documents, and you want the word "Endnotes" to go in the header
|
|
centre position of the endnotes, but want, say, the
|
|
<a href="docprocessing.html#title">TITLE</a>
|
|
to go back into the centre position for the next output document.
|
|
</p>
|
|
|
|
<p>
|
|
In scenarios like the above, mom has a number of reserved strings
|
|
you can plug into the HEADER_LEFT, _CENTER and _RIGHT macros. They
|
|
are:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
\E*[$TITLE] —the current argument passed to .TITLE
|
|
\E*[$DOCTITLE] —the current argument passed to .DOCTITLE
|
|
\E*[$DOC_TYPE] —the NAMED argument passed to .DOCTYPE
|
|
\E*[$AUTHOR] —the current first argument passed to .AUTHOR
|
|
\E*[$AUTHOR_1...9] —the current arguments passed to .AUTHOR
|
|
\E*[$AUTHORS] —a comma-separated concatenated string
|
|
of all the current arguments passed to .AUTHOR
|
|
(i.e. a list of authors)
|
|
\E*[$CHAPTER_STRING] —the current argument passed to .CHAPTER_STRING,
|
|
if invoked, otherwise, "Chapter"
|
|
\E*[$CHAPTER] —the current argument (typically a number) passed
|
|
to .CHAPTER
|
|
\E*[$CHAPTER_TITLE] —the current argument passed to .CHAPTER_TITLE
|
|
</span>
|
|
Returning to the scenario above, first, you’d define a centre
|
|
string for the endnotes page:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER "Endnotes"
|
|
</span>
|
|
Then, you’d output the endnotes:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.ENDNOTES
|
|
</span>
|
|
Then, you’d prepare mom for the next document:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.COLLATE
|
|
.TITLE "New Doc Title"
|
|
.AUTHOR "Josephine Blough"
|
|
</span>
|
|
Then, you’d redefine the header-centre string using the
|
|
reserved string <kbd><span class="nobr">\*[$TITLE]</span></kbd>, like this:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER "\E*[$TITLE]"
|
|
</span>
|
|
And last, you’d do:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.START
|
|
</span>
|
|
Voilà! Any argument you pass to
|
|
<a href="docprocessing.html#title">TITLE</a>
|
|
from here on in (say, for subsequent documents) is back in the
|
|
header-centre position. Here’s the whole routine again:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER "Endnotes"
|
|
.ENDNOTES
|
|
.COLLATE
|
|
.TITLE "New Doc Title"
|
|
.AUTHOR "Josephine Blough"
|
|
.HEADER_CENTER "\E*[$TITLE]"
|
|
.START
|
|
</span>
|
|
</p>
|
|
|
|
<p>
|
|
If need be, you can concatenate the strings, as in the following
|
|
example.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER "\E*[$CHAPTER_STRING] \E*[$CHAPTER]"
|
|
</span>
|
|
which, assuming a <kbd>.CHAPTER_STRING</kbd> of
|
|
<kbd>"Chapter"</kbd> and a <kbd>.CHAPTER</kbd> of
|
|
<kbd>"2"</kbd>, would put “Chapter 2” in the
|
|
header-centre position.
|
|
</p>
|
|
|
|
<h3 id="page-number-symbol" class="docs">Replacing header-left, -centre or -right with the page number</h3>
|
|
|
|
<p>
|
|
If you would like to have the current page number appear in the
|
|
header-left, -centre, or -right position instead of a text string,
|
|
invoke the appropriate macro, above, with the single argument
|
|
<kbd>#</kbd> (the “number” or “pound” sign).
|
|
Do not surround the pound size with double-quotes, as you would
|
|
normally do if the argument to <kbd>.HEADER_CENTER</kbd> were a
|
|
string. For example,
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_CENTER #
|
|
</span>
|
|
(notice, no double-quotes) will print the current page number in the
|
|
centre part of headers.
|
|
</p>
|
|
|
|
<h3 id="page-number-incl" class="docs">Including the page number in header-left, -CENTER or -right</h3>
|
|
|
|
<p>
|
|
If you would like to <i>include</i> the current page number in the
|
|
string you pass to HEADER_LEFT, _CENTER, or _RIGHT, (as
|
|
opposed to replacing the string with the page number), use the
|
|
special
|
|
<a href="definitions.html#inlines">inline escape</a>
|
|
<kbd><span class="nobr">\*[PAGE#]</span></kbd> in the string argument.
|
|
</p>
|
|
|
|
<p>
|
|
For example, say you have a document that’s ten pages long,
|
|
and you want header-right to say “page <whichever> of
|
|
10”, invoke <kbd>.HEADER_RIGHT</kbd> as follows:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RIGHT "page \*[PAGE#] of 10"
|
|
</span>
|
|
The header-right of page two will read “page 2 of 10”,
|
|
the header-right of page three will read “page 3 of 10”,
|
|
and so on.
|
|
</p>
|
|
|
|
<!-- -HDRFTR_STYLE- -->
|
|
|
|
<h4 id="hdrftr-style" class="docs">2. Header/footer style</h4>
|
|
|
|
<h5 id="hdrftr-style-global" class="docs" style="margin-top: 1em;">Global changes</h5>
|
|
|
|
<p style="margin-top: .5em;">
|
|
The following macros allow you to make changes that affect all parts
|
|
of the header at once.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
|
|
<li><a href="#hdrftr-plain">HEADER_PLAIN</a></li>
|
|
<li><a href="#hdrftr-global-family">HEADER_FAMILY</a></li>
|
|
<li><a href="#hdrftr-global-size">HEADER_SIZE</a></li>
|
|
<li><a href="#hdrftr-color">HEADER_COLOR</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="hdrftr-plain" class="box-macro-args">
|
|
Macro: <b>HEADER_PLAIN</b>
|
|
</div>
|
|
|
|
<p>
|
|
By default, mom makes adjustments to the font, size, and
|
|
capitalization style of each part of headers to achieve an
|
|
aesthetically pleasing look. Should you wish to design your own
|
|
headers from the ground up without worrying how changes to the
|
|
various elements of header style interact with mom’s defaults,
|
|
invoke <kbd>.HEADER_PLAIN</kbd> by itself, with no argument. Mom
|
|
will disable her default behaviour for headers, and reset all
|
|
elements of header style to the same family, font, point size and
|
|
colour as she uses in paragraphs.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to disable mom’s default
|
|
behaviour for the various elements of footer style.
|
|
</p>
|
|
|
|
<div id="hdrftr-global-family" class="box-macro-args">
|
|
Macro: <b>HEADER_FAMILY</b> <kbd class="macro-args"><family></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
By default, mom uses the default document family for headers. If
|
|
you would like her to use another
|
|
<a href="definitions.html#family">family</a>
|
|
in headers, invoke <kbd>.HEADER_FAMILY</kbd> with the identifier
|
|
for the family you want. The argument is the same as for the
|
|
typesetting macro
|
|
<a href="typesetting.html#family">FAMILY</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change the footer family.
|
|
</p>
|
|
|
|
<div id="hdrftr-global-size" class="box-macro-args">
|
|
Macro: <b>HEADER_SIZE</b> <kbd class="macro-args"><+|-number of points></kbd>
|
|
</div>
|
|
<p class="requires">
|
|
• Argument is relative to the point size of type in paragraphs.
|
|
See
|
|
<span style="font-style: normal;"><a href="docelement.html#control-macro-args">Arguments to the control macros</a></span>
|
|
for an explanation of how control macros ending in
|
|
_SIZE work.
|
|
</p>
|
|
|
|
<p>
|
|
By default, mom makes small adjustments to the size of each part
|
|
of a header to achieve an aesthetically pleasing result. If
|
|
you’d like her to continue to do so, but would like the
|
|
overall appearance of headers to be a little smaller or a little
|
|
larger, invoke <kbd>.HEADER_SIZE</kbd> with + or - the number of <a
|
|
href="definitions.html#picaspoints">points</a> (fractions allowed)
|
|
by which you want her to in/decrease the size of headers. For
|
|
example,
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_SIZE +.75
|
|
</span>
|
|
increases the size of every part of a header by 3/4 of a point while
|
|
respecting mom’s own little size changes.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change the footer size.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Normally, macros that control headers have no effect on
|
|
<a href="docprocessing.html#printstyle">PRINTSTYLE <kbd>TYPEWRITE</kbd></a>.
|
|
HEADER_SIZE is an exception. While all parts of a header in
|
|
PRINTSTYLE <kbd>TYPEWRITE</kbd> are always the same size, you
|
|
can use HEADER_SIZE with PRINTSTYLE <kbd>TYPEWRITE</kbd> to
|
|
reduce the header’s overall point size. You’ll most
|
|
likely require this when the
|
|
<a href="docprocessing.html#copystyle">COPYSTYLE</a>
|
|
is <kbd>DRAFT</kbd>, since portions of the header may overprint if,
|
|
say, the title of your document is very long.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="hdrftr-color" class="box-macro-args">
|
|
Macro: <b>HEADER_COLOR</b> <kbd class="macro-args"><colorname></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
If you want your headers in a colour different from the document
|
|
default (usually black), invoke <kbd>.HEADER_COLOR</kbd> with the
|
|
name of a colour pre-defined (or “initialized”) with
|
|
<a href="color.html#newcolor">NEWCOLOR</a>
|
|
or
|
|
<a href="color.html#xcolor">XCOLOR</a>.
|
|
</p>
|
|
|
|
<p>
|
|
HEADER_COLOR will set all the parts of the header
|
|
plus the header rule in the colour you give it as an argument. If
|
|
you wish finer control over colour in headers, you can use
|
|
<a href="#_color">HEADER_<POSITION>_COLOR</a>
|
|
to colourize each part of the header separately, as well as
|
|
<a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a>
|
|
to change the colour of the header rule.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to colourize footers.
|
|
</p>
|
|
|
|
<h4 id="hdrftr-style-part" class="docs">3. Part by part changes</h4>
|
|
|
|
<p>
|
|
When using the following control ”macros, replace
|
|
“<POSITION> by <b>LEFT, CENTER,</b> or RIGHT as
|
|
appropriate.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
|
|
<li><a href="#_family">HEADER_<POSITION>_FAMILY</a></li>
|
|
<li><a href="#_font">HEADER_<POSITION>_FONT</a></li>
|
|
<li><a href="#_size">HEADER_<POSITION>_SIZE</a></li>
|
|
<li><a href="#_caps">HEADER_<POSITION>_CAPS</a></li>
|
|
<li><a href="#_smallcaps">HEADER_<POSITION>_SMALLCAPS</a></li>
|
|
<li><a href="#_color">HEADER_<POSITION>_COLOR</a></li>
|
|
<li><a href="#grouping">Grouping style parameters for the individual header/footer parts</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div id="_family" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_FAMILY</b> <kbd class="macro-args"><family></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
Use HEADER_<POSITION>_FAMILY to change the
|
|
<a href="definitions.html#family">family</a>
|
|
of any part of headers. See
|
|
<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
|
|
for an explanation of how control macros ending in _FAMILY work.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change a footer part’s family.
|
|
</p>
|
|
|
|
<div id="_font" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_FONT</b> <kbd class="macro-args"><font></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
Use HEADER_<POSITION>_FONT to change the
|
|
<a href="definitions.html#font">font</a>
|
|
of any part of headers. See
|
|
<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
|
|
for an explanation of how control macros ending in _FONT work.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change a footer part’s font.
|
|
</p>
|
|
|
|
<div id="_size" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_SIZE</b> <kbd class="macro-args"><+|-number of points></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
Use HEADER_<POSITION>_SIZE to change the size of any part of
|
|
headers (relative to the point size of type in paragraphs). See
|
|
<a href="docelement.html#control-macro-args">Arguments to the control macros</a>
|
|
for an explanation of how control macros ending in _SIZE work.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change a footer part’s size.
|
|
</p>
|
|
|
|
<div id="_caps" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_CAPS</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
HEADER_<POSITION>_CAPS is a
|
|
<a href="definitions.html#toggle">toggle macro</a>.
|
|
If you want any part of headers to be set in all caps, regardless of
|
|
the capitalization of that part’s string as given to the
|
|
<a href="docprocessing.html#reference-macros">reference macros</a>
|
|
or as defined by you with the
|
|
<a href="#hdrftr-strings">header string control macros</a>,
|
|
simply invoke this macro (using the appropriate position) with no
|
|
argument. If you wish to turn capitalization off (say, for the
|
|
header-right string that mom capitalizes by default), invoke the
|
|
macro with any argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>,
|
|
<kbd>END</kbd>, <kbd>X</kbd>...).
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to change a footer part’s
|
|
capitalization style.
|
|
</p>
|
|
|
|
<div id="_smallcaps" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_SMALLCAPS</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
HEADER_<POSITION>_SMALLCAPS is a
|
|
<a href="definitions.html#toggle">toggle macro</a>.
|
|
If you want any part of headers to be set in smallcaps, simply
|
|
invoke this macro (using the appropriate position) with no argument.
|
|
If you wish to turn the smallcaps off, invoke the macro with any
|
|
argument (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
|
|
<kbd>X</kbd>...).
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER,_ above, with FOOTER_ to invoke smallcaps for footer
|
|
parts.
|
|
</p>
|
|
|
|
<div id="_color" class="box-macro-args">
|
|
Macro: <b>HEADER_<POSITION>_COLOR</b> <kbd class="macro-args"><colorname></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
HEADER_<POSITION>_COLOR allows you to set a colour for each of
|
|
the three possible parts of a page header separately. For example,
|
|
say you want the right part of the header (by default, the document
|
|
title) in red, this is how you’d get it:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RIGHT_COLOR red
|
|
</span>
|
|
The other parts of the header will be in the default header colour
|
|
(usually black, but that can be changed with
|
|
<a href="#hdrftr-color">HEADER_COLOR</a>).
|
|
</p>
|
|
|
|
<p>
|
|
Remember that you have to define (or “initialize”) a
|
|
colour with
|
|
<a href="color.html#newcolor">NEWCOLOR</a>
|
|
or
|
|
<a href="color.html#xcolor">XCOLOR</a>
|
|
before you can use the colour.
|
|
</p>
|
|
|
|
<p>
|
|
If you create a
|
|
<a href="#userdef-hdrftr-rv">user-defined header</a>
|
|
with
|
|
<a href="#hdrftr-rectoverso">HEADER_RECTO</a>
|
|
or
|
|
<a href="#hdrftr-rectoverso">HEADER_VERSO</a>,
|
|
and you want various elements within the header to be colourized,
|
|
embed the colours in the string passed to HEADER_RECTO or
|
|
HEADER_VERSO with the
|
|
<a href="color.html#color-inline"><kbd><span class="nobr">\*[<colorname>]</span></kbd></a>
|
|
<a href="definitions.html#inlines">inline escape</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Replace HEADER_, above, with FOOTER_ to set the colours for the
|
|
various elements of footers.
|
|
</p>
|
|
|
|
<h5 id="grouping" class="docs">Grouping style parameters for the individual header parts</h5>
|
|
|
|
<p>
|
|
Instead of using control macros for the style parameters
|
|
of an individual header part, the parameters may be
|
|
<a href="docelement.html#grouping">grouped</a>
|
|
by invoking <kbd>HEADER_<POSITION>_STYLE</kbd> with a list of
|
|
keyword/value pairs. Acceptable keywords are
|
|
<kbd>FAMILY FONT SIZE COLOR CAPS</kbd> and <kbd>SMALLCAPS</kbd>.
|
|
Keyword/value pairs may appear on the same line as the macro, or
|
|
separated into several lines using the backslash character
|
|
(<kbd>\</kbd>). If you use the latter style, all but the final
|
|
parameter must be terminated with the backslash.
|
|
</p>
|
|
|
|
<p>
|
|
Thus, to set the header-left part in Helvetica bold, red, 1 point larger
|
|
than
|
|
<a href="definitions.html#running">running text</a>
|
|
and all caps, you could do either
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_LEFT_STYLE FAMILY H FONT B SIZE +1 COLOR red CAPS
|
|
</span>
|
|
or
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_LEFT_STYLE \
|
|
FAMILY H \
|
|
FONT B \
|
|
SIZE +1 \
|
|
COLOR red \
|
|
CAPS
|
|
</span>
|
|
If you need to reverse the sense of <kbd>CAPS</kbd>
|
|
or <kbd>SMALLCAPS</kbd>, use <kbd>NO_CAPS</kbd> or
|
|
<kbd>NO_SMALLCAPS</kbd>.
|
|
</p>
|
|
|
|
<!-- -HDRFTR_VERTICAL- -->
|
|
|
|
<h4 id="hdrftr-vertical" class="docs">3. Header/footer vertical placement and spacing</h4>
|
|
|
|
<p>
|
|
See
|
|
<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>
|
|
for an explanation of how mom deals with
|
|
headers, footers, and top/bottom page margins.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
|
|
<li><a href="#hdftr_margin">HEADER_MARGIN</a></li>
|
|
<li><a href="#hdftr_gap">HEADER_GAP</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_MARGIN- -->
|
|
|
|
<div id="hdrftr-margin" class="box-macro-args">
|
|
Macro: <b>HEADER_MARGIN</b> <kbd class="macro-args"><distance to baseline of header></kbd>
|
|
</div>
|
|
|
|
<p class="requires">
|
|
• Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
|
|
</p>
|
|
|
|
<p>
|
|
Use HEADER_MARGIN to set the distance from the top edge of the page to the
|
|
<a href="definitions.html#baseline">baseline</a>
|
|
of type in headers. A unit of measure is required, and decimal
|
|
fractions are allowed.
|
|
</p>
|
|
|
|
<p>
|
|
Mom’s default header margin is 4-1/2
|
|
<a href="definitions.html#picaspoints">picas</a>,
|
|
but if you want a different margin, say, 1/2-inch, do
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_MARGIN .5i
|
|
</span>
|
|
If your document uses
|
|
<a href="definitions.html#footer">footers</a>,
|
|
replace HEADER_, above, with FOOTER_. The argument to FOOTER_MARGIN
|
|
is the distance from the bottom edge of the page to the baseline of
|
|
type in footers. Mom’s default footer margin is 3
|
|
<a href="definitions.html#picaspoints">picas</a>.
|
|
</p>
|
|
|
|
<h3 class="docs">Header/footer margins and page numbering</h3>
|
|
|
|
<p>
|
|
Mom uses HEADER_MARGIN and FOOTER_MARGIN to establish the baseline
|
|
position of page numbers in addition to the baseline position of
|
|
headers and footers proper.
|
|
</p>
|
|
|
|
<p>
|
|
By default, page numbers appear at the bottom of the page, therefore
|
|
if you want the default position (bottom), but want to change the
|
|
baseline placement, use FOOTER_MARGIN. Conversely, if page numbers
|
|
are at the top of the page, either because you turned
|
|
<a href="#footers">FOOTERS</a>
|
|
on or because you instructed mom to put them there with
|
|
<a href="#pagenum-pos">PAGENUM_POS</a>,
|
|
you’d use HEADER_MARGIN to change their baseline placement.
|
|
</p>
|
|
|
|
<div id="footer-margin" class="box-important" style="padding-bottom: 15px;">
|
|
<p class="tip-top">
|
|
<span class="important" style="display: block; margin-bottom: -1em;">Important – FOOTER_MARGIN and bottom margins</span>
|
|
<br/>
|
|
Mom requires a footer margin (i.e. the distance from the bottom of
|
|
the page at which to place footers) for proper operation, hence she
|
|
sets one, even if you don’t. As stated above, her default
|
|
footer margin is 3-picas.
|
|
</p>
|
|
|
|
<p>
|
|
If you use
|
|
<a href="typesetting.html#b-margin">B_MARGIN</a>
|
|
or
|
|
<a href="typesetting.html#page">PAGE</a>
|
|
to set a bottom margin for your document (prior to
|
|
<a href="docprocessing.html#start">START</a>),
|
|
and the margin’s too close to mom’s default
|
|
footer margin (or a footer margin you set yourself with
|
|
FOOTER_MARGIN), mom will not print your footers; additionally,
|
|
she’ll give you a warning and some advice on standard error.
|
|
When this happens, you must reset either B_MARGIN or FOOTER_MARGIN
|
|
so there’s an adequate amount of space for mom to print the
|
|
bottom line of running text and the footer.
|
|
</p>
|
|
|
|
<p>
|
|
If you see the warning even when footers and/or bottom-of-page page
|
|
numbering are disabled, set a nominal footer margin of 0 prior to
|
|
<a href="docprocessing.html#start">START</a>,
|
|
as in these examples.
|
|
</p>
|
|
|
|
<div id="examples-footnotes-1" class="examples-container" style="padding-bottom: 1em;">
|
|
<div class="examples" style="margin-top: 0; margin-bottom: -.25em;">Example 1</div>
|
|
<span class="pre">
|
|
<reference macros, etc>
|
|
.PAGINATION OFF
|
|
.B_MARGIN .25i
|
|
.FOOTER_MARGIN O
|
|
.START
|
|
</span>
|
|
</div>
|
|
|
|
<div id="examples-footnotes-2" class="examples-container" style="margin-top: 1em; padding-bottom: 1em;">
|
|
<div class="examples" style="margin-top: 0;">Example 2</div>
|
|
<span class="pre">
|
|
<reference macros, etc>
|
|
.HEADERS OFF
|
|
.PAGENUM_POS TOP RIGHT
|
|
.B_MARGIN .25i
|
|
.FOOTER_MARGIN O
|
|
.START
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_GAP- -->
|
|
|
|
<div id="hdrftr-gap" class="box-macro-args">
|
|
Macro: <b>HEADER_GAP</b> <kbd class="macro-args"><distance from header to start of running text></kbd>
|
|
</div>
|
|
|
|
<p class="requires">
|
|
• Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
|
|
</p>
|
|
|
|
<p>
|
|
Use HEADER_GAP to set the distance from the
|
|
<a href="definitions.html#baseline">baseline</a>
|
|
of type in headers to the start of
|
|
<a href="definitions.html#running">running text</a>.
|
|
A unit of measure is required, and decimal fractions are allowed.
|
|
</p>
|
|
|
|
<p>
|
|
As explained in
|
|
<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>,
|
|
HEADER_MARGIN + HEADER_GAP determine the default vertical starting
|
|
position of running text on the page unless you have given mom your
|
|
own top margin (with
|
|
<a href="typesetting.html#t-margin">T_MARGIN</a>).
|
|
If you give a top margin, mom ignores HEADER_GAP; running text
|
|
starts at your stated top margin.
|
|
</p>
|
|
|
|
<p>
|
|
Mom’s default header gap is 3
|
|
<a href="definitions.html#picaspoints">picas</a>,
|
|
but if you want a different gap, say, 2 centimetres, do
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_GAP 2c
|
|
</span>
|
|
If your document uses
|
|
<a href="definitions.html#footer">footers</a>,
|
|
replace HEADER_, above, with FOOTER_. The argument to FOOTER_GAP
|
|
is the distance from the baseline of type in footers to the last
|
|
baseline of running text on the page.
|
|
</p>
|
|
|
|
<p>
|
|
As explained in
|
|
<a href="#vertical-spacing">Vertical placement and spacing of headers/footers</a>,
|
|
FOOTER_MARGIN + FOOTER_GAP determine the default vertical end
|
|
position of running text on the page unless you have given mom a
|
|
bottom margin (with
|
|
<a href="typesetting.html#b-margin">B_MARGIN</a>).
|
|
If you give a bottom margin, mom ignores FOOTER_GAP; running text
|
|
ends at your stated bottom margin, subject to the restriction outlined
|
|
<a href="#footer-margin">here</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Mom’s default footer gap is 3
|
|
<a href="definitions.html#picaspoints">picas</a>.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Mom uses HEADER_GAP and FOOTER_GAP to establish the start and end
|
|
baseline positions of running text with respect to both headers and
|
|
footers AND page numbers. If you wish to change the gap between the
|
|
last line of running text and a bottom page number, use FOOTER_GAP.
|
|
If page numbers are at the top of the page, change the gap between
|
|
the number and the first line of running text with HEADER_GAP.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="gap-note" class="box-tip">
|
|
<p class="tip-top">
|
|
<span class="note">Additional note:</span>
|
|
HEADER_GAP and FOOTER_GAP may only be used once, at the start of a
|
|
document. In
|
|
<a href="rectoverso.html#collate">collated documents</a>,
|
|
this means that HEADER_GAP or FOOTER_GAP cannot be used to change
|
|
the gaps once they have been set. The same applies to the Table of
|
|
Contents, Endnotes, Bibliographies, and Lists of... .
|
|
</p>
|
|
|
|
<p class="tip-bottom">
|
|
In the event that you need to change the header or footer gap after
|
|
the start of a document, you must do so with
|
|
<a href="typesetting.html#t-margin">T_MARGIN</a>
|
|
or
|
|
<a href="typesetting.html#b-margin">B_MARGIN</a>,
|
|
which raise or lower the top and bottom margins of
|
|
<a href="definitions.html#running">running text</a>
|
|
but do not affect the placement headers and footers.
|
|
(See
|
|
<a href="tables-of-contents.html#toc-page-settings-example">here</a>
|
|
for a demonstration.)
|
|
</p>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_SEPARATOR- -->
|
|
|
|
<h4 id="hdrftr-separator" class="docs">4. Header/footer separator rule</h4>
|
|
|
|
<p>
|
|
The header/footer separator rule is a modest horizontal rule,
|
|
set slightly below the header (or above the footer), that runs
|
|
the length of the
|
|
<a href="definitions.html#header">header</a>
|
|
and helps separate it visually from
|
|
<a href="definitions.html#running">running text</a>. If
|
|
you don’t want the rule, you can turn it off. If you want it,
|
|
but at a different vertical position relative to the header (or
|
|
footer), you can alter its placement.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
|
|
<li><a href="#hdrftr-rule">HEADER_RULE</a> – on or off</li>
|
|
<li><a href="#hdrftr-rule-weight">HEADER_RULE_WEIGHT</a> – weight of the rule</li>
|
|
<li><a href="#hdrftr-rule-gap">HEADER_RULE_GAP</a> – distance of rule from header</li>
|
|
<li><a href="#hdrftr-rule-color">HEADER_RULE_COLOR</a> – color of rule header</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RULE- -->
|
|
|
|
<div id="hdrftr-rule" class="box-macro-args">
|
|
Macro: <b>HEADER_RULE</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
By default, mom prints a header separator rule underneath headers
|
|
(or above footers). If you don’t want the rule, turn it off by
|
|
invoking <kbd>.HEADER_RULE</kbd> with any argument (<kbd>OFF</kbd>,
|
|
<kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...), e.g.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RULE OFF
|
|
</span>
|
|
To turn the rule (back) on, invoke <kbd>.HEADER_RULE</kbd>
|
|
without any argument.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Replace HEADER_, above, with FOOTER_ to enable/disable the printing
|
|
of the footer separator rule. (Most likely, if you’re using
|
|
<kbd><a href="#footers">FOOTERS</a></kbd>,
|
|
you’ll want it off.)
|
|
</p>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RULE_WEIGHT- -->
|
|
|
|
<div id="hdrftr-rule-weight" class="box-macro-args">
|
|
Macro: <b>HEADER_RULE_WEIGHT</b> <kbd class="macro-args"><weight in points></kbd>
|
|
</div>
|
|
|
|
<p class="requires">
|
|
• Argument must <span class="normal">NOT</span> have a <a href="definitions.html#unitofmeasure">unit of measure</a> appended
|
|
</p>
|
|
|
|
<p>
|
|
HEADER_RULE_WEIGHT controls the weight (“thickness”) of
|
|
the header rule. Like
|
|
<a href="inlines.html#rule-weight">RULE_WEIGHT</a>,
|
|
it takes a single argument: the weight of the header rule expressed
|
|
in
|
|
<a href="definitions.html#picaspoints">points</a>
|
|
but without the unit of measure, <kbd>p</kbd>, appended. The
|
|
argument to HEADER_RULE_WEIGHT must be greater than 0 and less than
|
|
100; decimal fractions are allowed.
|
|
</p>
|
|
|
|
<p>
|
|
Say, for example, you want a really strong header separator rule.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RULE_WEIGHT 4
|
|
</span>
|
|
which sets the separator rule weight to 4 points, is how you’d do
|
|
it.
|
|
</p>
|
|
|
|
<p>
|
|
Mom’s default header rule weight is 1/2 point.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Replace HEADER_, above, with FOOTER_ to set the weight of the footer
|
|
separator rule.
|
|
</p>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RULE_GAP- -->
|
|
|
|
<div id="hdrftr-rule-gap" class="box-macro-args">
|
|
Macro: <b>HEADER_RULE_GAP</b> <kbd class="macro-args"><distance of rule beneath header></kbd>
|
|
</div>
|
|
|
|
<p class="requires">
|
|
• Requires a <a href="definitions.html#unitofmeasure">unit of measure</a>
|
|
</p>
|
|
|
|
<p>
|
|
HEADER_RULE_GAP is the distance from the
|
|
<a href="definitions.html#baseline">baseline</a>
|
|
of type in headers to the top edge of the rule underneath. (If
|
|
FOOTER_RULE_GAP, the gap is the distance from the top of the highest
|
|
<a href="definitions.html#ascender">ascender</a>
|
|
to the bottom edge of the rule.) A unit of measure is required, and
|
|
decimal fractions are allowed. Please note that HEADER_RULE_GAP has
|
|
no effect on
|
|
<a href="#hdrftr-gap">HEADER_GAP</a>
|
|
(i.e., HEADER_RULE_GAP is NOT added to HEADER_GAP when mom calculates
|
|
the space between headers and the start of
|
|
<a href="definitions.html#running">running text</a>).
|
|
</p>
|
|
|
|
<p>
|
|
By default, the header rule gap is 4
|
|
<a href="definitions.html#picaspoints">points</a>.
|
|
If you’d like to change it to, say, 1/4
|
|
<a href="definitions.html#em">em</a>, do
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RULE_GAP .25m
|
|
</span>
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Replace HEADER_, above, with FOOTER_ if you’re using
|
|
<a href="definitions.html#footer">footers</a>
|
|
and want to change the separator rule gap. In footers, the gap is
|
|
measured from the top of the tallest
|
|
<a href="definitions.html#ascender">ascender</a>
|
|
in the footer.
|
|
</p>
|
|
|
|
<p class="tip-bottom">
|
|
<span class="additional-note">Additional note:</span>
|
|
When using
|
|
<a href="#hdrftr-recto">FOOTER_RECTO</a>
|
|
and
|
|
<a href="#hdrftr-verso">FOOTER_VERSO</a>,
|
|
make sure that the default size for footers
|
|
(<a href="#footer-global-size">FOOTER_SIZE</a>)
|
|
is set to the largest size of type that will be used in the footer
|
|
or mom may not get the rule gap right. Inline changes to the size
|
|
of type in FOOTER_RECTO and FOOTER_VERSO should always be negative
|
|
(smaller) than the default.
|
|
</p>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RULE_COLOR- -->
|
|
|
|
<div id="hdrftr-rule-color" class="box-macro-args">
|
|
Macro: <b>HEADER_RULE_COLOR</b> <kbd class="macro-args"><colorname></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
If you wish to change the colour of the header rule, invoke
|
|
<kbd>.HEADER_RULE_COLOR</kbd> with the name of a colour pre-defined
|
|
(or “initialized”) with
|
|
<a href="color.html#newcolor">NEWCOLOR</a>
|
|
or
|
|
<a href="color.html#xcolor">XCOLOR</a>.
|
|
</p>
|
|
|
|
<p>
|
|
HEADER_RULE_COLOR overrides the colour set with
|
|
<a href="#hdrftr-color">HDRFTR_COLOR</a>,
|
|
so it’s possible to have the heads entirely in, say, blue (set
|
|
with HEADER_COLOR), and the header rule in, say, red.
|
|
</p>
|
|
|
|
<div class="box-tip">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Replace HEADER_, above, with FOOTER_ to change the colour of the
|
|
footer rule.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="rule-short"><hr/></div>
|
|
|
|
<!-- -USERDEF_HDRFTR- -->
|
|
|
|
<h2 id="userdef-hdrftr-rv" class="macro-group">User-defined, single string recto/verso headers/footers</h2>
|
|
|
|
<p>
|
|
Sometimes, you’ll find you can’t get mom’s
|
|
handling of 3-part headers or footers to do exactly what you want in
|
|
the order you want. This is most likely happen when you want the
|
|
information contained in the headers/footers split over two pages,
|
|
as is often the case with recto/verso documents.
|
|
</p>
|
|
|
|
<p>
|
|
Say, for example, you want recto page headers to contain a
|
|
document’s author, centred, and verso page headers to contain
|
|
the document’s title, also centred, like this:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
+------------------------+ +------------------------+
|
|
| Author | | Title |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
+------------------------+ +------------------------+
|
|
</span>
|
|
With mom’s standard 3-part headers, this isn’t possible,
|
|
even when
|
|
<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>
|
|
is enabled. RECTO_VERSO switches the left and right parts of
|
|
headers on alternate pages, but the centre part remains unchanged.
|
|
</p>
|
|
|
|
<p>
|
|
Any time you need distinctly different headers on alternate pages,
|
|
mom has macros that let you manually design and determine what goes
|
|
into headers on recto pages, and what goes into headers on verso
|
|
pages. The macros are
|
|
<a href="#hdrftr-recto">HEADER_RECTO</a>
|
|
and
|
|
<a href="#hdrftr-verso">HEADER_VERSO</a>.
|
|
Both allow you to state whether the header is flush left, centred,
|
|
or flush right, and both take a single
|
|
<a href="definitions.html#stringargument">string argument</a>
|
|
with which, by combining text and
|
|
<a href="definitions.html#inlines">inline escapes</a>,
|
|
you can make the headers come out just about any way you want. Use
|
|
of the <kbd><span class="nobr">\*[PAGE#]</span></kbd> escape is permitted in the
|
|
string argument (see
|
|
<a href="#page-number-incl">Including the page number in header-left, -centre or -right</a>),
|
|
and, as an added bonus, mom provides a special mechanism whereby
|
|
it’s possible to
|
|
<a href="#padding-hdrftr">pad</a>
|
|
the string as well. The padding mechanism lets you create headers
|
|
that contain left, centre and right parts like mom’s defaults
|
|
but entirely of your own design.
|
|
</p>
|
|
|
|
<div class="macro-list-container">
|
|
<ul style="padding-top: 6px; padding-bottom: 6px; margin-left: -.5em;">
|
|
<li><a href="#hdrftr-recto">HEADER_RECTO</a></li>
|
|
<li><a href="#hdrftr-verso">HEADER_VERSO</a>
|
|
<ul style="margin-left: -.5em;">
|
|
<li><a href="#userdef-hdrftr">User-defined single string headers/footers (no recto/verso)</a></li>
|
|
<li><a href="#padding-hdrftr">Padding the header-recto/header-verso string</a></li>
|
|
</ul></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RECTOVERSO- -->
|
|
|
|
<div id="hdrftr-recto" class="box-macro-args">
|
|
Macro: <b>HEADER_RECTO</b> <kbd class="macro-args">LEFT | CENTER | RIGHT [ CAPS ] "<header recto string>"</kbd>
|
|
</div>
|
|
|
|
<div id="hdrftr-verso" class="box-macro-args" style="margin-top: 1em;">
|
|
Macro: <b>HEADER_VERSO</b> <kbd class="macro-args">LEFT | CENTER | RIGHT [ CAPS ] "<header verso string>"</kbd>
|
|
</div>
|
|
|
|
<div id="userdef-hdrftr" class="box-important">
|
|
|
|
<p class="tip">
|
|
<span class="tip" style="display: block; margin-bottom: -1.25em; color: #000056; font-size: 100%;">User-defined single string headers/footers (no recto/verso)</span>
|
|
<br/>
|
|
HEADER_RECTO may be used to create user-defined, single string
|
|
headers (or footers, with FOOTER_RECTO), even when recto/verso is
|
|
not enabled (with
|
|
<a href="rectoverso.html#recto-verso">RECTO_VERSO</a>).
|
|
In such cases, the header/footer you create is the one used on
|
|
every page, making HEADER_RECTO your “I need to design my own
|
|
headers from scratch” solution.
|
|
</p>
|
|
</div>
|
|
|
|
<p>
|
|
HEADER_RECTO and HEADER_VERSO behave identically, hence all
|
|
references to HEADER_RECTO in this section also refer to
|
|
HEADER_VERSO. Furthermore, FOOTER_ can be used instead of HEADER_
|
|
to set up recto/verso footers.
|
|
</p>
|
|
|
|
<p>
|
|
The first argument to HEADER_RECTO is the direction in which you
|
|
want the header
|
|
<a href="definitions.html#quad">quadded</a>.
|
|
<kbd>L</kbd>, <kbd>C</kbd>, and <kbd>R</kbd> may be used in place of
|
|
<kbd>LEFT</kbd>, <kbd>CENTER</kbd>, and <kbd>RIGHT</kbd>.
|
|
</p>
|
|
|
|
<p>
|
|
The second argument (optional) tells mom to capitalize the text of
|
|
the header. <b>Please note:</b> Do not use
|
|
<a href="inlines.html#uc-lc"><kbd><span class="nobr">\*[UC]...\*[LC]</span></kbd></a>
|
|
inside the string passed to HEADER_RECTO.
|
|
</p>
|
|
|
|
<p>
|
|
The final argument is a string, surrounded by double-quotes,
|
|
containing what you want in the header. HEADER_RECTO disables
|
|
mom’s normal 3-part headers, therefore anything you want in
|
|
the headers must be entered by hand in the string, including colours
|
|
(via the
|
|
<a href="definitions.html#inlines">inline escape</a>
|
|
<a href="color.html#color-inline"><kbd><span class="nobr">\*[<colorname>]</span></kbd></a>).
|
|
</p>
|
|
|
|
<p>
|
|
By default, HEADER_RECTO is set at the same size, and in the same
|
|
family and font, as paragraph text. The control macros
|
|
<a href="#hdrftr-global-family">HEADER_FAMILY</a>
|
|
and
|
|
<a href="#hdrftr-global-size">HEADER_SIZE</a>
|
|
may be used to change the default family and size. Changes to the
|
|
font(s) within the string must be accomplished with the
|
|
<a href="definitions.html#inlines">inline escapes</a>
|
|
<kbd><span class="nobr">\*[ROM]</span></kbd>,
|
|
<kbd><span class="nobr">\*[IT]</span></kbd>,
|
|
<kbd><span class="nobr">\*[BD]</span></kbd>,
|
|
<kbd><span class="nobr">\*[BDI]</span></kbd>,
|
|
and <kbd><span class="nobr">\*[PREV]</span></kbd> (see
|
|
<a href="inlines.html#inline-fonts-mom">Changing fonts</a>).
|
|
Additional refinements to the style of the header-recto string,
|
|
including horizontal spacing and/or positioning, can also be made
|
|
with inline escapes.
|
|
</p>
|
|
|
|
<p>
|
|
To include the current page number in the string, use the
|
|
<kbd><span class="nobr">\*[PAGE#]</span></kbd>
|
|
<a href="definitions.html#inlines">inline escape</a>.
|
|
</p>
|
|
|
|
<h3 id="padding-hdrftr" class="docs">Padding the header-recto/header-verso string</h3>
|
|
|
|
<p>
|
|
You can “pad” the header-recto string, a convenience
|
|
you’ll appreciate in circumstances such as the following.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
VERSO RECTO
|
|
+------------------------+ +------------------------+
|
|
| Author Page# | | Page# Title |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
+------------------------+ +------------------------+
|
|
</span>
|
|
</p>
|
|
|
|
<p>
|
|
There are two steps to padding the string argument passed to HEADER_RECTO
|
|
(if you’re unsure what padding is, see
|
|
<a href="goodies.html#pad">Insert space into lines</a>).
|
|
</p>
|
|
<ol style="margin-top: -.5em; margin-left: -.5em; margin-bottom: -.5em;">
|
|
<li>Begin and end the string (inside the double-quotes) with the caret character (<kbd>^</kbd>).</li>
|
|
<li>Enter the pound sign (<kbd>#</kbd>) at any point in the string where you want an equalized amount of whitespace inserted.</li>
|
|
</ol>
|
|
|
|
<p>
|
|
The situation depicted above is accomplished like this:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.HEADER_RECTO LEFT "^\*[PAGE#]#\E*[$TITLE]^"
|
|
.HEADER_VERSO LEFT "^\E*[$AUTHOR]#\*[PAGE#]^"
|
|
</span>
|
|
Notice that the quad argument, <kbd>LEFT</kbd>, is used in both
|
|
cases. When padding a header, it doesn’t matter which
|
|
quad argument you use, although you must be sure to supply
|
|
one. Also note that mom does not interpret the <kbd>#</kbd> in
|
|
<kbd><span class="nobr">\*[PAGE#]</span></kbd> as a padding marker (i.e. as a
|
|
place to insert whitespace).
|
|
</p>
|
|
|
|
<div class="box-important">
|
|
<p class="tip">
|
|
<span class="important">Important:</span>
|
|
The
|
|
<a href="goodies.html#pad-marker">PAD_MARKER</a>
|
|
macro, which changes the default pad marker (<kbd>#</kbd>) used by
|
|
<a href="goodies.html#pad">PAD</a>,
|
|
has no effect on the pad marker used in the HEADER_RECTO string. If
|
|
you absolutely must have a literal pound sign in your HEADER_RECTO
|
|
string, use the escape sequence for the pound sign
|
|
( <kbd>\[sh]</kbd> ) where you want the pound sign to go.
|
|
</p>
|
|
</div>
|
|
|
|
<!-- -HDRFTR_RECTOVERSO- -->
|
|
|
|
<h2 id="headers-and-footers-intro" class="macro-group">Headers and footers on the same page</h2>
|
|
|
|
<p>
|
|
Normally, mom prints either a header or a footer, but not both, depending on whether
|
|
<a href="#headers">HEADERS</a>
|
|
or
|
|
<a href="#footers">FOOTERS</a>
|
|
is enabled. (Page numbering, whether in the top margin
|
|
or the bottom, is not considered a header or a footer.)
|
|
Should you need both headers and footers on the same page, the
|
|
single macro HEADERS_AND_FOOTERS is the way to set it up.
|
|
</p>
|
|
|
|
<div id="headers-and-footers" class="box-macro-args">
|
|
Macro: <b>HEADERS_AND_FOOTERS</b> <kbd class="macro-args">(see Invocation)</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
Invocation:
|
|
<br/>
|
|
<span class="pre-in-pp" style="margin-bottom: -1em;">
|
|
.HEADERS_AND_FOOTERS \
|
|
<L | C | R> "<header-recto string>" \
|
|
<L | C | R> "<footer-recto string>" \
|
|
<L | C | R> "<header-verso string>" \
|
|
<L | C | R> "<footer-verso string>"
|
|
</span>
|
|
or
|
|
<span class="pre-in-pp" style="margin-top: -.5em;">
|
|
.HEADERS_AND_FOOTERS <anything>
|
|
</span>
|
|
</p>
|
|
|
|
<p>
|
|
Unlike the macros,
|
|
<a href="#headers">HEADERS</a>
|
|
and
|
|
<a href="#footers">FOOTERS</a>,
|
|
which are
|
|
<a href="definitions.html#toggle">toggle</a>
|
|
macros, HEADERS_AND_FOOTERS requires that you supply the information
|
|
you want in the headers and footers yourself. Mom does no automatic
|
|
generation of things like the title and the author in headers and
|
|
footers when you’re using HEADERS_AND_FOOTERS. Furthermore,
|
|
style changes—family, font, pointsize, colour, capitalization,
|
|
etc —are entirely your responsibility and must be made with
|
|
<a href="definitions.html#inlines">inline escapes</a>
|
|
in the arguments passed to <kbd>“<recto
|
|
”header string>“</kbd>, <kbd><recto footer
|
|
string>“</kbd>, etc. By default, mom sets the headers and
|
|
footers created with HEADERS_AND_FOOTERS in the same family, font,
|
|
point size, capitalization style and colour as
|
|
<a href="definitions.html#running">running text</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The manner of entering what you want is identical to the way you
|
|
input
|
|
<a href="#userdef-hdrftr-rv">single string headers and footers</a>.
|
|
I suggest reading up on them, as well as looking at the entries,
|
|
<a href="#hdrftr-rectoverso">HEADER_RECTO</a>
|
|
and
|
|
<a href="#reserved-strings">Using mom’s reserved strings in header/footer definitions</a>.
|
|
</p>
|
|
|
|
<p>
|
|
The same
|
|
<a href="#padding-hdrftr">padding mechanism</a>
|
|
used in HEADER_RECTO and HEADER_VERSO is available in the
|
|
<a href="definitions.html#stringargument">string arguments</a>
|
|
passed to HEADERS_AND_FOOTERS, allowing you to simulate two- and
|
|
three-part headers and footers.
|
|
</p>
|
|
|
|
<p>
|
|
<kbd>L | C | R</kbd> in the arguments to HEADERS_AND_FOOTERS refers
|
|
to whether you want the specific header or footer part on the left,
|
|
in the middle, or on the right. (You can also use the longer forms,
|
|
<kbd>LEFT</kbd>, <kbd>CENTER</kbd> and <kbd>RIGHT</kbd>.) The
|
|
string you give afterwards is whatever text you want, including
|
|
mom’s
|
|
<a href="#reserved-strings">reserved strings</a>,
|
|
and whatever
|
|
<a href="definitions.html#inlines">inline escapes</a>
|
|
you need to change things like family and font, pointsize, colour,
|
|
etc. as you go along.
|
|
</p>
|
|
|
|
<p>
|
|
Note the backslashes in the invocation, above. Every set of
|
|
arguments given this way to HEADERS_AND_FOOTERS <i>except the
|
|
last</i> requires a backslash after it. The use of backslashes
|
|
isn’t required if you want to put the entire argument list on
|
|
the same (very long!) line as the macro itself; I recommend sticking
|
|
to the style shown above to keep things manageable.
|
|
</p>
|
|
|
|
<p>
|
|
If you want to disable having both headers and footers on the same
|
|
page, invoke <kbd>.HEADERS_AND_FOOTERS</kbd> with any argument
|
|
you want (e.g. <kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
|
|
<kbd>X</kbd>...). Mom will restore her default behaviour of setting
|
|
automatically generated page headers, with the page number,
|
|
centered, at the bottom of the page. If you would prefer footers
|
|
instead of headers after turning HEADERS_AND_FOOTERS off, invoke
|
|
<a href="#footers"><kbd>.FOOTERS</kbd></a>
|
|
afterwards.
|
|
</p>
|
|
|
|
<h4 class="docs" style="margin-bottom: 1em;">Examples of HEADERS_AND_FOOTERS usage</h4>
|
|
|
|
<div id="examples-userdef-hdrftr-1" class="examples-container" style="padding-bottom: 0;">
|
|
<div class="examples" style="margin-top: 12px; margin-bottom: 0;">Example 1: Header and footer the same on every page</div>
|
|
<span class="pre">
|
|
.HEADERS_AND_FOOTERS \ +-----------------------+
|
|
C "\E*[$TITLE]" \ | Title |
|
|
L "^\E*[$AUTHOR]#\*[PAGE#]^" | |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| |
|
|
| Author Pg. # |
|
|
+-----------------------+
|
|
</span>
|
|
|
|
<p>
|
|
<kbd><span class="nobr">\E*[$TITLE]</span></kbd> and
|
|
<kbd><span class="nobr">\E*[$AUTHOR]</span></kbd> will print the strings you pass
|
|
to
|
|
<a href="docprocessing.html#title">TITLE</a>
|
|
and
|
|
<a href="docprocessing.html#author">AUTHOR</a>;
|
|
<kbd><span class="nobr">\*[PAGE#]</span></kbd> is how you include the page number
|
|
in a header or footer string. (For a list of special strings you
|
|
can use in headers and footers, see
|
|
<a href="#reserved-strings">here</a>.)
|
|
</p>
|
|
|
|
<p>
|
|
You don’t have to use these special strings. You can type
|
|
in anything you like. I’ve only used them here to show that
|
|
they’re available.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="examples-userdef-hdrftr-2" class="examples-container" style="margin-top: 1em; padding-bottom: 18px;">
|
|
<div class="examples" style="margin-top: 12px; margin-bottom: 0;">Example 2: Different headers and footers on recto/verso pages</div>
|
|
<span class="pre">
|
|
.HEADERS_AND_FOOTERS \
|
|
C "BOOK TITLE" \
|
|
L "^\*[PAGE#]#\E*[$AUTHOR]^" \
|
|
C "Story Title" \
|
|
L "^\E*[$AUTHOR]#\*[PAGE#]^"
|
|
|
|
+-----------------------+ +------------------------+
|
|
| BOOK TITLE | | Story Title |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| | | |
|
|
| Pg. # Author | | Author Pg.# |
|
|
+-----------------------+ +------------------------+
|
|
</span>
|
|
</div>
|
|
|
|
<div class="rule-short" style="margin-top: 1.25em;"><hr/></div>
|
|
|
|
<!-- ==================================================================== -->
|
|
|
|
<h2 id="pagination-intro" class="macro-group">Pagination</h2>
|
|
|
|
<p>
|
|
By default, mom paginates documents. Page numbers appear in the
|
|
bottom margin of the page, centred between two hyphens. As with
|
|
all elements of mom’s document processing, most aspects of
|
|
pagination style can be altered to suit your taste with control
|
|
macros.
|
|
</p>
|
|
|
|
|
|
<div class="macro-list-container">
|
|
<h3 id="index-pagination" class="macro-list">Pagination macros</h3>
|
|
<ul class="macro-list">
|
|
<li><a href="#paginate">PAGINATE</a> – pagination on or off</li>
|
|
<li><a href="#pagenumber">PAGENUMBER</a> – user-defined (starting) page number</li>
|
|
<li><a href="#pagenum-style">PAGENUM_STYLE</a> – digits, roman numerals, etc</li>
|
|
<li><a href="#pagenum-on-first-page">PAGENUM_ON_FIRST_PAGE</a> – put page number on first page when numbering is at the top of the page</li>
|
|
<li><a href="#draft-with-pagenumber">DRAFT_WITH_PAGENUMBER</a> – attach draft/revision information to page numbers</li>
|
|
<li><a href="#pagenumber-string">PAGENUMBER_STRING</a> – user-defined page number string</li>
|
|
<li><a href="#index-paginate-control">Pagination control macros and defaults</a></li>
|
|
<li><a href="#pdf-outline-pagenumber">PDF outline page numbering</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- -PAGINATE- -->
|
|
|
|
<div id="paginate" class="box-macro-args">
|
|
Macro: <b>PAGINATE</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p class="alias" style="margin-bottom: 0;">
|
|
<i>Alias:</i> <b>PAGINATION</b>
|
|
</p>
|
|
|
|
<p>
|
|
By default, mom paginates documents (in the bottom margin). If
|
|
you’d prefer she not paginate, turn pagination off by
|
|
invoking <kbd>.PAGINATE</kbd> with any argument (<kbd>OFF</kbd>,
|
|
<kbd>NO</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>...),
|
|
e.g.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.PAGINATE NO
|
|
</span>
|
|
To (re)start pagination, invoke <kbd>.PAGINATE</kbd> without any
|
|
argument.
|
|
</p>
|
|
|
|
<!-- -PAGENUMBER- -->
|
|
|
|
<div id="pagenumber" class="box-macro-args">
|
|
Macro: <b>PAGENUMBER</b> <kbd class="macro-args"><number></kbd>
|
|
</div>
|
|
|
|
<p>
|
|
As is to be expected, pagination of documents begins at page 1. If
|
|
you’d prefer that mom begin with a different number on the
|
|
first page of a document, invoke <kbd>.PAGENUMBER</kbd> with the
|
|
number you want.
|
|
</p>
|
|
|
|
<p>
|
|
PAGENUMBER need not be used only to give mom a "first page" number.
|
|
It can be used at any time to tell mom what number you want a page
|
|
to have. Subsequent page numbers will, of course, be incremented by
|
|
1 from that number.
|
|
</p>
|
|
|
|
<!-- -PAGENUM_STYLE- -->
|
|
|
|
<div id="pagenum-style" class="box-macro-args">
|
|
Macro: <b>PAGENUM_STYLE</b> <kbd class="macro-args">DIGIT | ROMAN | roman | ALPHA | alpha</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
PAGENUM_STYLE lets you tell mom what kind of page numbering you
|
|
want.
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
DIGIT Arabic digits (1, 2, 3...)
|
|
ROMAN upper case roman numerals (I, II, III...)
|
|
roman lower case roman numerals (i, ii, iii...)
|
|
ALPHA upper case letters (A, B, C...)
|
|
alpha lower case letters (a, b, c...)
|
|
</span>
|
|
</p>
|
|
|
|
<!-- -PAGENUM_ON_FIRST_PAGE- -->
|
|
|
|
<div id="pagenum-on-first-page" class="box-macro-args">
|
|
Macro: <b>PAGENUM_ON_FIRST_PAGE</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
This macro applies only if you’ve enabled
|
|
<a href="#footers">FOOTERS</a>.
|
|
If FOOTERS are on, mom automatically places page numbers at the tops
|
|
of pages except on the first page of a document (or on first pages
|
|
after
|
|
<a href="rectoverso.html#collate">COLLATE</a>).
|
|
If you’d like the page number to appear on “first” pages
|
|
when footers are on, invoke
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.PAGENUM_ON_FIRST_PAGE
|
|
</span>
|
|
with no argument. Any other argument turns the feature off
|
|
(<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>, <kbd>X</kbd>,
|
|
etc).
|
|
</p>
|
|
|
|
<p>
|
|
As with most of the
|
|
<a href="definitions.html#controlmacro">control macros</a>,
|
|
PAGENUM_ON_FIRST_PAGE can be invoked at any time, meaning that if
|
|
you don’t want a page number on the very first page of a
|
|
document, but do want one on pages that appear after COLLATE, omit
|
|
it before the first
|
|
<a href="docprocessing.html#start">START</a>
|
|
of the document, then invoke it either just before or after your
|
|
first COLLATE.
|
|
</p>
|
|
|
|
<!-- -DRAFT_WITH_PAGENUMBER- -->
|
|
|
|
<div id="draft-with-pagenumber" class="box-macro-args">
|
|
Macro: <b>DRAFT_WITH_PAGENUMBER</b>
|
|
</div>
|
|
|
|
<p>
|
|
Sometimes, in
|
|
<a href="docprocessing.html#copystyle">COPYSTYLE <kbd>DRAFT</kbd></a>,
|
|
the CENTER part of page headers gets overcrowded because of
|
|
the draft and revision information that go there by default.
|
|
DRAFT_WITH_PAGENUMBER is one way to fix the problem.
|
|
</p>
|
|
|
|
<p>
|
|
Invoked without an argument, <kbd>.DRAFT_WITH_PAGENUMBER</kbd>
|
|
removes draft/revision information from the page headers and
|
|
attaches it instead to the document’s page numbering, in the
|
|
form
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
Draft #, Rev. # / <pagenumber>
|
|
</span>
|
|
If you have not supplied mom with a draft number (with
|
|
<a href="docprocessing.html#draft">DRAFT</a>)
|
|
DRAFT_WITH_PAGENUMBER will assume “Draft 1“, and will
|
|
print it before the page number.
|
|
</p>
|
|
|
|
<p>
|
|
See the note in
|
|
<a href="docprocessing.html#copystyle-note">COPYSTYLE <kbd>DRAFT</kbd>
|
|
</a>
|
|
for other ways of dealing with crowded page headers when formatting
|
|
draft-style copy.
|
|
</p>
|
|
|
|
<!-- -PAGENUMBER_STRING- -->
|
|
|
|
<div id="pagenumber-string" class="box-macro-args">
|
|
Macro: <b>PAGENUMBER_STRING</b> "<text of page number string>"
|
|
</div>
|
|
|
|
<p>
|
|
If you want page numbering to contain text in addition to the page
|
|
number itself, use PAGENUMBER_STRING.
|
|
</p>
|
|
|
|
<p>
|
|
The most common use for PAGENUMBER_STRING is to include the total
|
|
number of pages along with the page number, for example
|
|
“Page 1 of 10, Page 2 of 10...” To accomplish this,
|
|
you’d enter
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.PAGENUMBER_STRING "Page \*[PAGE#] of 10"
|
|
</span>
|
|
Notice that the page number is entered symbolically with the
|
|
<a href="definitions.html#inlines">inline escape</a>
|
|
<span style="white-space:nowrap"><kbd><span class="nobr">\*[PAGE#]</span></kbd>,</span>
|
|
while the total number of pages must be entered explicitly after the
|
|
document is complete and the total number of pages known.
|
|
</p>
|
|
|
|
<!-- -PAGINATE_CONTROL- -->
|
|
|
|
<div class="macro-list-container">
|
|
<h3 id="index-paginate-control" class="macro-list">Pagination control macros and defaults</h3>
|
|
|
|
<ol style="margin-top: -1.5em; padding-bottom: 6px;">
|
|
<li><a href="#paginate-general">Family/font/size/colour</a></li>
|
|
<li><a href="#pagenum-pos">Page number position (vertical and horizontal)</a></li>
|
|
<li><a href="#pagenum-hyphens">Enclose page numbers with hyphens (on or off)</a></li>
|
|
</ol>
|
|
</div>
|
|
|
|
<h4 id="paginate-general" class="docs">1. Page number family/font/size/colour</h4>
|
|
|
|
<div class="defaults-container" style="margin-top: 1em; padding-bottom: 8px;">
|
|
<p class="defaults" style="padding-top: 6px;">
|
|
See
|
|
<a href="docelement.html#control-macro-args">Arguments to the control macros</a>.
|
|
<br/>
|
|
The following control macros may also be
|
|
<a href="docelement.html#grouping">grouped</a>
|
|
using PAGENUMBER_STYLE.*
|
|
</p>
|
|
<span class="pre defaults">
|
|
.PAGENUM_FAMILY default = prevailing document family
|
|
.PAGENUM_FONT default = roman
|
|
.PAGENUM_SIZE default = +0 (i.e. same size as paragraph text)
|
|
.PAGENUM_COLOR default = black
|
|
</span>
|
|
</div>
|
|
|
|
<p style="margin-top: -2em">
|
|
*Note: Do not confuse PAGENUMBER_STYLE with
|
|
<a href="#pagenum-style">PAGENUM_STYLE</a>.
|
|
</p>
|
|
|
|
<h4 id="pagenum-pos" class="docs" style="margin-top: 0em;">2. Page number position</h4>
|
|
|
|
<div class="box-macro-args" style="margin-top: 1em;">
|
|
Macro: <b>PAGENUM_POS</b> <kbd class="macro-args">[ TOP | BOTTOM ] [ LEFT | CENTER | RIGHT ]</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
Use PAGENUM_POS to change the default position of automatic page
|
|
numbering. PAGENUM_POS requires <i>two</i> arguments: a vertical
|
|
position (<kbd>TOP</kbd> or <kbd>BOTTOM</kbd>) and a horizontal
|
|
position (<kbd>LEFT</kbd> or <kbd>CENTER</kbd> or <kbd>RIGHT</kbd>).
|
|
</p>
|
|
|
|
<p>
|
|
For example, if you turn both
|
|
<a href="definitions.html#header">headers</a>
|
|
and
|
|
<a href="definitions.html#footer">footers</a>
|
|
off (with <kbd>.HEADERS OFF</kbd> and
|
|
<kbd>.FOOTERS OFF</kbd>) and you want mom to number your pages
|
|
at the top right position, enter
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.PAGENUM_POS TOP RIGHT
|
|
</span>
|
|
</p>
|
|
|
|
<div id="pagenum-pos-note" class="box-tip" style="margin-top: 1em;">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
HEADERS must be OFF for PAGENUM_POS TOP to work.
|
|
</p>
|
|
</div>
|
|
|
|
<h4 id="pagenum-hyphens" class="docs" style="margin-top: -1em;">3. Enclose page numbers with hyphens (on or off)</h4>
|
|
|
|
<div class="box-macro-args" style="margin-top: 1em;">
|
|
Macro: <b>PAGENUM_HYPHENS</b> <kbd class="macro-args">toggle</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
By default, mom encloses page numbers between hyphens. If you
|
|
don’t want this behaviour, invoke the macro PAGENUM_HYPHENS
|
|
with any argument (<kbd>OFF</kbd>, <kbd>QUIT</kbd>, <kbd>END</kbd>,
|
|
<kbd>X</kbd>, etc), like this:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.PAGENUM_HYPHENS OFF
|
|
</span>
|
|
If, for some reason, you want to turn page number hyphens back
|
|
on, invoke the macro without an argument.
|
|
</p>
|
|
|
|
<h2 id="pdf-outline-numbering" class="macro-group">PDF outline page numbering</h2>
|
|
|
|
<p>
|
|
Prior to mom 2.6_b, the document outline panel of PDF viewers
|
|
displayed the physical page numbers of mom documents, not the
|
|
printed page number. As of 2.6_b, entries in the outline panel show
|
|
the printed page number. Furthermore, null pages (e.g. cover and
|
|
title pages) are no longer given a page number in the outline.
|
|
</p>
|
|
|
|
<p>
|
|
Though rare, you may at times want to control the PDF outline page
|
|
numbering, which is accomplished with the
|
|
<a href="#pdf-outline-pn">PDF_OUTLINE_PN</a>
|
|
macro.
|
|
</p>
|
|
|
|
<div id="pdf-outline-pn-note" class="box-tip">
|
|
<p class="tip-top" style="padding-bottom: .5em">
|
|
<span class="note">Note:</span>
|
|
You must be running a version of groff > 1.23 or have recently
|
|
built groff from sources in order for the outline page numbers
|
|
to reflect the printed page numbers, as described above, and for
|
|
PDF_OUTLINE_PN to work.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="macro-id-overline">
|
|
<h3 id="pdf-outline-pagenumber" class="macro-id">PDF_OUTLINE_PN</h3>
|
|
</div>
|
|
|
|
<div class="box-macro-args">
|
|
Macro: <b>PDF_OUTLINE_PN</b> <kbd class="macro-args">SUSPEND | RESUME</kbd>
|
|
<br/>
|
|
Macro: <b>PDF_OUTLINE_PN</b> <kbd class="macro-args">[FORMAT <format>] [PREFIX <prefix>] [PAGE <pagenumber>]</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
PDF outline page numbering may be suspended or resumed by calling
|
|
PDF_OUTLINE_PN with the appropriate argument.
|
|
</p>
|
|
|
|
<p>
|
|
If you wish to change the numbering format, add a prefix to the page
|
|
number, or hard set an outline page number, supply one or more of
|
|
the additional keywords with arguments.
|
|
</p>
|
|
|
|
<h3 class="docs">FORMAT</h3>
|
|
|
|
<p>
|
|
<kbd>FORMAT</kbd> may be one of
|
|
</p>
|
|
|
|
<ul style="list-style-type:none; margin-top: -1em">
|
|
<li><kbd>D</kbd> (digit)</li>
|
|
<li><kbd>R</kbd> (roman numeral, caps)</li>
|
|
<li><kbd>r</kbd> (roman numeral, lower case)</li>
|
|
<li><kbd>A</kbd> (alphabetic, caps)</li>
|
|
<li><kbd>a</kbd> (alphabetic, lower case)</li>
|
|
</ul>
|
|
|
|
<h3 class="docs">PREFIX</h3>
|
|
|
|
<p>
|
|
<kbd>PREFIX</kbd> may be anything you like, for example
|
|
“<kbd>A-</kbd>” to add a prefix to the outline page
|
|
numbering of an Appendix. <kbd>PREFIX</kbd> must not contain
|
|
spaces.
|
|
</p>
|
|
|
|
<h3 class="docs">PAGE</h3>
|
|
|
|
<p>
|
|
<kbd>PAGE</kbd> is the page number you want to appear in the
|
|
outline.
|
|
</p>
|
|
|
|
<!-- -BLANK_PAGE- -->
|
|
|
|
<h2 id="blank-pages" class="macro-group">Inserting blank pages into a document</h2>
|
|
|
|
<div class="box-macro-args">
|
|
Macro: <b>BLANKPAGE</b> <kbd class="macro-args"><# of blank pages to insert> [DIVIDER [NULL]]</kbd>
|
|
</div>
|
|
|
|
<p>
|
|
This one does exactly what you’d expect—inserts a blank
|
|
page (or pages) into a document. Unless you give the optional argument,
|
|
<kbd>NULL</kbd>, mom silently increments the page number of every
|
|
blank page and keeps track of
|
|
<a href="rectoverso.html#recto-verso">recto/verso</a>
|
|
stuff, but otherwise does nothing. This is useful for forcing new
|
|
sections of a document onto recto pages, but may have other
|
|
applications as well.
|
|
</p>
|
|
|
|
<p>
|
|
The required argument to BLANK_PAGE is the number of blank pages to
|
|
insert. The argument is not optional, hence even if you only want
|
|
one blank page, you have to tell mom:
|
|
<br/>
|
|
<span class="pre-in-pp">
|
|
.BLANKPAGE 1
|
|
</span>
|
|
The optional argument <kbd>DIVIDER</kbd> must be given if
|
|
you’re inserting a blank page before the start of major
|
|
document sections (chapters, endnotes, bibliographies,
|
|
or tables of contents–provided the table of contents is not being
|
|
<a href="tables-of-contents.html#auto-relocate-toc">autorelocated</a>).
|
|
Without the <kbd>DIVIDER</kbd> argument, mom simply
|
|
inserts the blank pages and prepares the next page to receive
|
|
<a href="definitions.html#running">running text</a>.
|
|
</p>
|
|
|
|
<p>
|
|
<kbd>NULL</kbd>, which is also optional, allows you to output the
|
|
specified number of pages without mom incrementing the page number
|
|
for each blank page. She will, however, continue to keep track
|
|
of which pages are recto/verso if recto/verso printing has been
|
|
enabled.
|
|
</p>
|
|
|
|
<div id="blankpage-note" class="box-tip" style="margin-top: 1.5em;">
|
|
<p class="tip">
|
|
<span class="note">Note:</span>
|
|
Do not use BLANKPAGE before TOC if the table of contents is being
|
|
<a href="tables-of-contents.html#auto-relocate-toc">autorelocated</a>.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="rule-long"><hr/></div>
|
|
|
|
<!-- Navigation links -->
|
|
<table style="width: 100%; margin-top: 12px;">
|
|
<tr>
|
|
<td style="width: 33%;"><a href="toc.html">Back to Table of Contents</a></td>
|
|
<td style="width: 24%; text-align: center;"><a href="#top">Top</a></td>
|
|
<td style="width: 42%; text-align: right;"><a href="rectoverso.html">Next: Recto/verso printing, collating</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<div class="bottom-spacer"><br/></div>
|
|
|
|
</body>
|
|
</html>
|