headfootpage.html#TOP
Next
docprocessing.html#TOP
Prev
toc.html
Back to Table of Contents
THE DOCUMENT ELEMENT TAGS
#DOCELEMENT_INTRO
Introduction to the document element tags
#DOCELEMENT_CONTROL
Control macros -- changing defaults for document element tags
#CONTROL_MACRO_ARGS
Arguments to the control macros
#INDEX_DOCELEMENT
Index of document element tags
Introduction to the document element tags
Once you've completed the setup for a document (see
docprocessing.html#DOCPROCESSING_TUT
Setting up a mom document
),
formatting it is a snap.  Simply invoke the appropriate tag for
each document element as you need it.  The tags are macros that
tell
mom
, "This is a paragraph, this
is a subhead, this is a footnote," and so on.
The list of tags is actually quite small -- ideal for the users
mom
brought herself into being for (see
intro.html#INTRO_INTRO
Who mom is meant for
).
However, the list of macros that control the appearance of the
tags upon output is extensive.  Generally, for each tag,
there are
definitions.html#TERMS_CONTROLMACRO
control macros
for the tag's family, font and point size.  Where appropriate, there
are macros to control leading, indents, quad and special features
as well.
Mom
has tasteful defaults for all the tags, hence you
only use the control macros when you want to change the way
she does things.  This is usually done prior to
docprocessing.html#START
START
,
but can, in fact, be done at any time in the course of a document.
Any change to a tag's style affects all subsequent invocations of
the tag.
Control macros -- changing defaults
The control macros for document processing tags let you
"design" the look of all the parts of your documents --
should you wish.  At a bare minimum, all tags have macros to
change
mom
's defaults for family, font
and point size.  Where appropriate, there are macros to control
leading, indents and quad as well.
In addition, many tags have special macros to control features that
are pertinent to those tags alone.  Have a look at the section dealing
with any particular tag to find out what macros control the tag,
and what
mom
's defaults for the tag are.
The control macros may be used at any time during the course of
a document (i.e. before or after
docprocessing.html#START
START
).  The changes you
make alter all subsequent invocations of the affected tag until
you make another change, either by passing new arguments to the
tag's control macro, or toggling a particular feature of the tag on
or off.
And don't forget: the
typesetting.html#MACROS_TYPESETTING
typesetting macros
can be used at any time, including inside
definitions.html#TERMS_TOGGLE
toggle
tags (affecting only that particular invocation of the tag).
Equally,
definitions.html#TERMS_INLINES
inline escapes
can be used in tags that take
definitions.html#TERMS_STRINGARGUMENT
string arguments.
IMPORTANT NOTE:
The family, font, point size and
leading control macros have no effect in
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
which sets EVERYTHING in Courier roman, 12/24 (i.e. 12-point type on
a linespace of 24 points).
Please also note that the defaults listed
with the control macros apply only to
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
unless a default for
TYPEWRITE
is also given.
A WORD OF ADVICE:
Get familiar with
mom
at her default settings before exploring the
control macros.  Put her through her paces.  She how she behaves.
Get to know what she feels like and how she looks, both in your text
editor and on the printed page.  Then, if you don't like something,
use this documentation to find the precise macro you need to change it.
There are tons of control macros.  Reading up on them and trying to
remember them all might lead you to think that
mom
is complex and unwieldy, which is not only untrue, but would offend
her mightily.
Arguments to the control macros
Family and font
The arguments to the control macros that end in
_FAMILY
or
_FONT
are the same
as for
typesetting.html#FAMILY
FAMILY
and
typesetting.html#FONT
FT
.
Point size
Control macros that end in
_SIZE
always take
the form
+digit
or
-digit
where digit is
the number of
definitions.html#TERMS_PICASPOINTS
points
larger (+) or smaller (-) than the point size of paragraphs
you want the document element to be.  For example, to change
subheads to 1-1/2 points larger than the type in paragraphs, do
.SUBHEAD_SIZE +1.5
There's no need for a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
with the
_SIZE
control macros; points is assumed.
Lead/linespacing
Control macros that end in
_AUTOLEAD
take the
same argument as
typesetting.html#AUTOLEAD
AUTOLEAD
,
viz. a digit that represents the number of points to add to the
tag's point size to arrive at its
definitions.html#TERMS_LEADING
lead
.
For example, to set footnotes
definitions.html#TERMS_SOLID
solid
, do
.FOOTNOTE_AUTOLEAD 0
To set footnotes with a 1-point lead (i.e. with the line spacing
one point greater than the footnote's point size), do
.FOOTNOTE_AUTOLEAD 1
Indents
Except for
PARA_INDENT
, the argument to the control
macros that end
in
_INDENT
is always a single digit (whole numbers
only; no decimal fractions) with no
definitions.html#TERMS_UNITOFMEASURE
unit of measure
appended to it.  The digit represents by how much you want the
size of the paragraph first-line indent multiplied to achieve the
correct indent for a particular tag.
Quad/justification style
Control macros that end in
_QUAD
take the same
arguments as
typesetting.html#QUAD
QUAD
.
Document element tags list
#EPIGRAPH_INTRO
Epigraphs
#EPIGRAPH
EPIGRAPH
#EPIGRAPH_CONTROL
Epigrah control
#PP_INTRO
Paragraphs
#PP
PP
#PP_CONTROL
Paragraph control
#HEAD_INTRO
Main heads
#HEAD
HEAD
#HEAD_CONTROL
Head control
#SUBHEAD_INTRO
Subheads
#SUBHEAD
SUBHEAD
#SUBHEAD_CONTROL
Subhead control
#PARAHEAD_INTRO
Paragraph heads
#PARAHEAD
PARAHEAD
#PARAHEAD_CONTROL
Parahead control
#LINEBREAK_INTRO
Linebreaks (author linebreaks)
#LINEBREAK
LINEBREAK
#LINEBREAK_CHAR
Linebreak character
#QUOTE_INTRO
Quotes (line for line)
#QUOTE
QUOTE
#QUOTE_CONTROL
Quote control
#BLOCKQUOTE_INTRO
Blockquotes (cited material)
#BLOCKQUOTE
BLOCKQUOTE
#BLOCKQUOTE_CONTROL
Blockquote control
#FOOTNOTE_INTRO
Footnotes
#FOOTNOTE
FOOTNOTE
#FOOTNOTE_CONTROL
Footnote control
#ENDNOTE_INTRO
Endnotes
#ENDNOTE
ENDNOTE
#ENDNOTE_CONTROL
Endnote control
#FINIS_INTRO
Document termination
#FINIS
FINIS
#FINIS_STRING
Finis control
-- changing the FINIS string
Epigraphs
#EPIGRAPH
Tag: EPIGRAPH
#EPIGRAPH_CONTROL
Epigraph control macros
definitions.html#TERMS_EPIGRAPH
Epigraphs
color, flavour, or comment on the document they precede.  Typically,
they are centered at the top of a document's first page (underneath the
title) and set in a smaller point size than that of paragraph text.
By default,
mom
sets epigraphs centered and
definitions.html#TERMS_NOFILL
unfilled
;
this lets you input them on a line for line basis.  This behaviour
can be changed to accomodate
definitions.html#TERMS_FILLED
filled
epigraph "blocks."
Macro:
EPIGRAPH
<toggle> | [ BLOCK ]
EPIGRAPH
is a toggle, used like this:
.EPIGRAPH
<text of epigraph>
.EPIGRAPH OFF
OFF
, above, could be anything -- say, Q or X --
since any argument other than
BLOCK
turns it off.
If given the argument
BLOCK
,
EPIGRAPH
sets epigraphs
definitions.html#TERMS_FILLED
filled
,
justified or quadded in the same direction as paragraphs, indented
equally from both the left and right margins.
If a block-style epigraph runs to more than one paragraph (unlikely,
but conceivable), you
MUST
introduce every paragraph
--
INCLUDING THE FIRST!!!
-- with the
#PP
PP
tag.
NOTE:
EPIGRAPH
should only be
used at the top of a document (i.e. just after
docprocessing.html#START
START
)
or after
#HEAD_INTRO
heads
.  The latter is not especially
recommended, but it does work.  In all other places where you
want quotes or cited text, use
#QUOTE
QUOTE
or
#BLOCKQUOTE
BLOCKQUOTE
.
Epigraph control macros
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.EPIGRAPH_FAMILY    default = prevailing document family; default is Times Roman
.EPIGRAPH_FONT      default = roman
.EPIGRAPH_SIZE      default = -1.5 (points)
.EPIGRAPH_AUTOLEAD  default = 2 points
(The next two apply to "block" style epigraphs only)
.EPIGRAPH_QUAD      default = same as paragraphs
.EPIGRAPH_INDENT*   default = para indent x 3 (for typeset), x 2 (for typewrite)
*Indent here refers to the indent from both the left and right margins
that centres the block style epigraph on the page.
Paragraphs
#PP
Tag: PP
#PP_CONTROL
Paragraph control macros
The paragraph macro is the one you use most often.  Consequently,
it's one of most powerful, yet simplest to use -- just the letters
PP
.  No arguments, nothing.  Just
.PP
on a line by itself any time, in any document element, tells
mom
you want to start a new paragraph.  The spacing
and indent appropriate to where you are in your document are taken
care of automatically.
By default,
mom
does not indent the first paragraph
of a document, nor paragraphs that fall imediately after
#HEAD_INTRO
heads
or
#SUBHEAD_INTRO
subheads
.
The first paragraphs of blockquotes and block-style epigraphs are
also not indented.  This behaviour can be changed with the control
macro
#PARA_INDENT_FIRST
INDENT_FIRST_PARAS
.
In contrast to some other macro packages,
mom
does not
deposit a blank line between paragraphs.  If you want her to do so, use
the control macro
PARA_SPACE
.  (I don't recommend
using this macro with
typesetting.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
.)
Note that
mom
does not provide "orphan
control" for paragraphs (i.e. even if only one line of a paragraph
fits at the bottom of a page, she will set it on that page).  The
reason for this is that writers of fiction often have single-line
paragraphs (e.g. in dialogue).  Groff's simplistic orphan control
will break these one-liners -- if they fall at the bottom of the page
-- to a new page, which is not what you want.
TIP:
The last thing you want while you're writing
and editing drafts of a document (particulary stories and chapters)
is a text file cluttered up with
PP
's.  The visual
interruption in the flow of text is a serious obstacle to creativity
and critiquing.
I use the tab key on my keyboard to indent paragraphs when I'm writing,
producing a text file that looks pretty much like what you see on
a printed page.  When it comes time to format and print the file,
I run it through a sed script that (amongst other things) converts
the character generated by the tab key (
^I
) into
.PP
(plus a new line), and pipe the output to groff for processing and
printing.
Another solution is to insert a blank line between paragraphs.
The blank lines can then be sedded out at print time as above, or,
more conveniently, you can use the
.blm
definitions.html#TERMS_PRIMITIVES
primitive
(blank line macro) to instruct groff (and
mom
)
that blank lines should be interpreted as
PP
's.
.blm PP
tells groff that all blank lines are really the macro
PP
.
Macro:
PP
PP
(on a line by itself, of course) tells mom to
start a new paragraph.  See
#PP_INTRO
above
for more details.  In addition to regular text paragraphs, you can
use
PP
in
#EPIGRAPH_INTRO
epigraphs
,
#BLOCKQUOTE_INTRO
blockquotes
and
#FOOTNOTE_INTRO
footnotes
.
Paragraph control macros
The
PP
being so important, and representing, as
it were, the basis of everything that goes on in a document, its
control is managed in a manner somewhat different from other document
element tags.
#PP_FAMILY
Family control
#PP_FONT
Font control
#PP_LEADING
Leading/linespacing control
#PP_JUST_QUAD
Justification/quad control
#PARA_INDENT
First-line indent control
#PARA_INDENT_FIRST
Intitial paragraphs indent control
#PP_SPACE
Paragraph spacing control
1. Family
The paragraph
definitions.html#TERMS_FAMILY
family
is set with
typesetting.html#FAMILY
FAMILY
prior to
docprocessing.html#START
START
,
or
docprocessing.html#DOC_FAMILY
DOC_FAMILY
afterwards.  Please note that both globally affect the family of
every element in the document.
If you wish to change the family for regular
text paragraphs only, invoke
FAMILY
immediately
after
PP
in EVERY paragraph whose family you wish
to differ from the prevailing document family.
Mom
's default paragraph (and document) family
is Times Roman.
2. Font -- PP_FONT
To change the
definitions.html#TERMS_FONT
font
used in regular text paragraphs, use
.PP_FONT
,
which takes the same argument as
typesetting.html#FONT
FT
.
PP_FONT
may be used before or after
docprocessing.html#START
START
.
Only regular text paragraphs are affected; paragraphs in
#EPIGRAPH_INTRO
epigraphs
,
#BLOCKQUOTE_INTRO
blockquotes
and
#FOOTNOTE_INTRO
footnotes
remain at their default setting (medium roman) unless you change them
with the appropriate control macros.
Mom
's default paragraph font is medium roman.
3.Leading
The paragraph
definitions.html#TERMS_LEADING
leading
is set with
typesetting.html#LEADING
LS
prior to
docprocessing.html#START
START
,
or
docprocessing.html#DOC_LEAD
DOC_LEAD
afterwards.  Please note that either method globally affects the
leading and spacing of every document element (except
definitions.html#TERMS_HEADER
headers
and
definitions.html#TERMS_FOOTER
footers
).
If you wish to change the leading of regular text paragraphs only,
invoke
LS
immediately after
PP
in
EVERY paragraph whose leading you wish to change.
HYPER-IMPORTANT NOTE:
It is extremely unwise to change
paragraph leading with
LS
, as it will, in all cases,
screw up
mom
's ability to balance the bottom margin
of pages.
Mom
's default paragraph leading (document leading)
is 16 points, adjusted to fill the page.
4. Justification/quad
The justification/quad-direction of regular text paragraphs (i.e.
definitions.html#TERMS_JUST
justified
,
or
definitions.html#TERMS_FILLED
filled
and
definitions.html#TERMS_QUAD
quadded
left/right/center) is set with
typesetting.html#JUSTIFY
JUSTIFY
or
typesetting.html#QUAD
QUAD
prior to
docprocessing.html#START
START
,
and with
docprocessing.html#DOC_QUAD
DOC_QUAD
afterwards.
Please note that either method of setting the paragraph
justification/quad-direction also affects
#EPIGRAPH_INTRO
epigraphs
and
#FOOTNOTE_INTRO
footnotes
,
but not
#BLOCKQUOTE_INTRO
blockquotes
(whose default is QUAD LEFT unless you change it with
#BLOCKQUOTE
BLOCKQUOTE_QUAD
).
The justification/quad-direction of epigraphs and footnotes may
be changed with their own control macros.
If you wish to change the justification/quad-direction of
individual paragraphs, use
JUSTIFY
or
QUAD
immediately after
PP
.
Only the paragraph in question gets justified or quadded
differently;  subsequent paragraphs remain unaffected.
Mom
's default justification/quad-direction for
paragraphs is justified for
docprocessing.html#PRINTSTYLE
PRINTSTYLE_TYPESET
and quad left for
docprocessing.html#PRINTSTYLE
PRINTSTYLE_TYPEWRITE
.
5. First-line indent -- PARA_INDENT
The first-line indent of paragraphs is controlled by
PARA_INDENT
, which takes one argument: the size
of the indent.
PARA_INDENT
may be used before
or after
docprocessing.html#START
START
.
A
definitions.html#TERMS_UNITOFMEASURE
unit of measure
is required; fractional sizes are allowed.  Thus, to set the paragraph
indent to 4-1/2
definitions.html#TERMS_EM
ems
, do
.PARA_INDENT 4.5m
In addition to establishing the basic first line-indent of
paragraphs,
PARA_INDENT
also affects
#EPIGRAPH_INTRO
epigraphs
,
#QUOTE_INTRO
quotes
and
#BLOCKQUOTE_INTRO
blockquotes
,
whose overal indenting from the left and (where applicable) right
margins is relative to
PARA_INDENT
.  Furthermore, the
first-line indent of paragraphs within these document elements (as well
as footnotes) is also relative to
PARA_INDENT
(always
1/2 of
PARA_INDENT)
), hence they are also affected.
Mom
's default
PARA_INDENT
is 2
ems for
docprocessing.html#PRINTSTYLE
PRINTSTYLE_TYPESET
and 3 picas (1/2 inch) for
docprocessing.html#PRINTSTYLE
PRINTSTYLE_TYPEWRITE
.
6. Indenting initial paragraphs -- INDENT_FIRST_PARAS
By default,
mom
does not indent the first paragraph
of a document, nor the first paragraph after a head or
subhead, nor the first paragraphs of
#EPIGRAPH_INTRO
epigraphs
,
#BLOCKQUOTE_INTRO
blockquotes
or
#FOOTNOTE_INTRO
footnotes
that run to more than one paragraph.
If you wish to have first paragraphs indented, invoke the macro
.INDENT_FIRST_PARAS
with no argument, either
before or after
docprocessing.html#START
START
.
INDENT_FIRST_PARAS
is a toggle macro, therefore
passing it any argument (
OFF, QUIT, Q, X
...) cancels
its effect, meaning that first paragraphs will once again NOT be
indented.
7. Spacing paragraphs -- PARA_SPACE
By default,
mom
does not insert a blank line
between paragraphs.  If you would like her to do so, invoke the
macro
.PARA_SPACE
with no argument, either
before or after
docprocessing.html#START
START
.
PARA_SPACE
is a toggle macro, therefore passing
it any argument (
OFF, QUIT, Q, X
...) cancels its
effect, meaning that paragraphs will once again NOT be separated by
a blank line.
Main heads
#HEAD
Tag: HEAD
#HEAD_CONTROL
Head control macros
Main heads -- or, in this documentation, just "heads"
-- should be used any place you want titles to introduce major
sections of a document.  If you wish,
mom
can number
your heads for you.  Head numbers can also be included
hierarchically in numbered
#SUBHEAD_INTRO
subheads
and
#PARAHEAD_INTRO
paraheads
.
By default, heads are centered on the page, underlined,
all in caps.  A double linespace precedes each head.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
, heads
are bold, slightly larger than paragraph text.
If these defaults don't suit you, you can change them with the
head control macros.
Macro:
HEAD
"<text of head>" [ "<2nd line>" [ "<3rd line>" ... ] ]
The argument to
HEAD
is the text of the head,
surrounded by double-quotes.  If you need additional lines for a
head, simply surround each line with double-quotes.
NOTE:
If a head falls near the bottom of an output page
and
mom
is unable to fit the head
plus at least
one line of text underneath it
, she will set the head at the
top of the next page.
Head control macros
There are, in addition to the usual family/font/size/quad control
macros, a number of macros to manage head numbering, spacing,
underlining, and so on.  Check them out if you're unhappy with
mom
's defaults.
#HEAD_GENERAL
Family/font/size/quad
#HEAD_CAPS
Caps
#HEAD_SPACE
Pre-head space
#HEAD_UNDERLINE
Underlining
#NUMBER_HEADS
Numbering
#RESET_HEAD_NUMBER
Reset head numbering
#HEAD_INLINES
Vertical inline escapes inside heads
1. Family/font/size/quad
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.HEAD_FAMILY default = prevailing document family; default is Times Roman
.HEAD_FONT   default = bold
.HEAD_SIZE   default = +1 (point)
.HEAD_QUAD   default = CENTER
2. Capitalizing heads -- HEAD_CAPS
By default,
mom
sets heads in caps, regardless
of the
definitions.html#TERMS_STRINGARGUMENT
string(s)
you give to
#HEAD
HEAD
.
To change this behaviour, do
.HEAD_CAPS OFF
HEAD_CAPS
is a toggle macro, therefore you can use
any argument you like instead of
OFF
(
END,
QUIT, Q, X
...).  To turn
HEAD_CAPS
back on,
simply invoke it without an argument.
3. Space before heads -- HEAD_SPACE
By default,
mom
deposits 2 blank lines prior to every
head.  If you'd prefer just a single blank line, do
.HEAD_SPACE OFF
HEAD_SPACE
is a toggle macro, therefore you can use
any argument you like instead of
OFF
(
END,
QUIT, Q, X
...).  To restore the space before heads to 2
blank lines, invoke
HEAD_SPACE
without an argument.
4. Underlining heads -- HEAD_UNDERLINE
By default,
mom
underlines heads.  To change this
behaviour, do
.HEAD_UNDERLINE OFF
HEAD_UNDERLINE
is a toggle macro, therefore you can
use any argument you like instead of
OFF
(
END,
QUIT, Q, X
...).  To restore underlining of heads, invoke
HEAD_UNDERLINE
without an argument.
5. Number heads -- NUMBER_HEADS
If you'd like your heads numbered, simply invoke
NUMBER_HEADS
with no argument.
Mom
will number all subsequent heads automatically (in ascending order,
naturally).
If, in addition to numbering heads, you also request that
#SUBHEAD_INTRO
subheads
and/or
#PARAHEAD_INTRO
paraheads
be numbered, the head number will be included in their numbers
(each number separated by a period [dot]).
Should you wish to stop head numbering, invoke
NUMBER_HEADS
with any argument (
OFF, QUIT,
END, X
...).  Head numbering will cease, and the head number
will not be included in the numbering of subheads and/or paraheads.
6. Reset head numbering -- RESET_HEAD_NUMBER
Should you wish to reset the head number to "1", invoke
RESET_HEAD_NUMBER
with no argument.  If, for some
reason, you want
mom
to use a head number that is not
the next in ascending order (i.e. the last head number + 1), invoke
RESET_HEAD_NUMBER
with the number you want, e.g.
.RESET_HEAD_NUMBER 6
Your next head will be numbered "6" and subsequent heads will
be numbered in ascending order from "6".
7. Vertical inline escapes inside heads
If you need to adjust the
definitions.html#TERMS_BASELINE
baseline
position of a head (e.g. the head falls at the top of a column and
you want its
definitions.html#TERMS_ASCENDER
ascenders
to line up with the ascenders of
definitions.html#TERMS_RUNNING
running text
in other columns), you can embed a vertical motion
definitions.html#TERMS_INLINES
inline escape
(either
inlines.html#INLINE_VERTICAL_MOM
mom's
or
inlines.html#INLINE_VERTICAL_GROFF
groff's
in the string(s) you pass to
HEAD
For example,
.HEAD "\[ALD3]Text of head
will lower the baseline of the head by three points.  Note that
there's no need to reverse the sense of the inline escape.
In the case of heads that run to more than one line, you must embed
the escape in the string for each line, like this:
.HEAD "\[ALD3]First line" "\[ALD3]Next line"
Subheads
#SUBHEAD
Tag: SUBHEAD
#SUBHEAD_CONTROL
Subhead control macros
Subheads should be used any place you want titles to introduce
sections of a document below heads.  If you wish,
mom
can number subheads for you.  Subhead numbers can also be included
hierarchically in numbered
#PARAHEAD_INTRO
paraheads
.
By default, subheads are flush left.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
,
they are set bold, slightly larger than paragraph text.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
they are underlined.  A single linespace precedes them in both
printstyles, and a tiny space adjustment raises them slightly
above text that comes afterwards for greater clarity in
document structuring.
If these defaults don't suit you, you can change them with the
subhead control macros.
Macro:
SUBHEAD
"<text of subhead>" [ "<2nd line>" [ "<3rd line>" ... ] ]
The argument to
SUBHEAD
is the text of the subhead,
surrounded by double-quotes.  If you need additional lines for a
subhead, simply surround each line with double-quotes.
NOTE:
If a subhead falls near the bottom of an output
page and
mom
is unable to fit the head
plus at
least one line of text underneath it
, she will set the subhead
at the top of the next page.
Subhead control macros
In addition to the usual family/font/size/quad control
macros, there are macros to manage subhead numbering.
#SUBHEAD_GENERAL
Family/font/size/quad
#NUMBER_SUBHEADS
Numbering
#RESET_SUBHEAD_NUMBER
Reset subhead numbering
#SUBHEAD_INLINES
Vertical inline escapes inside subheads
1. Family/font/size/quad
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.SUBHEAD_FAMILY default = prevailing document family; default is Times Roman
.SUBHEAD_FONT   default = bold
.SUBHEAD_SIZE   default = +.5 (point)
.SUBHEAD_QUAD   default = LEFT
2. Number subheads -- NUMBER_SUBHEADS
If you'd like your subheads numbered, simply invoke
.NUMBER_SUBHEADS
with no argument.
Mom
will number all subsequent subheads automatically
(in ascending order, naturally).
If, in addition to numbering subheads, you also request that
#HEAD_INTRO
heads
be numbered, the head number will be included in the subhead number
(separated by a period [dot]).
Should you wish to stop subhead numbering, invoke
NUMBER_SUBHEADS
with any argument (
OFF, QUIT,
END, X
...).  Subhead numbering will cease, and the subhead
number will not be included in the numbering of paraheads.
3. Reset head numbering -- RESET_SUBHEAD_NUMBER
Should you wish to reset the subhead number to "1", invoke
RESET_SUBHEAD_NUMBER
with no argument.  If, for some
reason, you want
mom
to use a subhead number that is not
the next in ascending order (i.e. the last subhead number + 1), invoke
RESET_SUBHEAD_NUMBER
with the number you want, e.g.
.RESET_SUBHEAD_NUMBER 4
Your next subhead will be numbered "4" and subsequent
subheads will be numbered in ascending order from "4".
Vertical inline escapes inside subheads
See
#HEAD_INLINES
Vertical inline escapes inside heads
.
The information there applies equally to subheads.
Paragraph heads
#PARAHEAD
Tag: PARAHEAD
#PARAHEAD_CONTROL
Parahead control macros
Paragraph heads (paraheads) should be used any place you want titles
to introduce paragraphs below heads or subheads.  If you wish,
mom
can number paraheads for you.
By default, paraheads are joined to the body of a paragraph,
slightly indented (provided the paragraph is not a
"first" paragraph as defined in
#PARA_INDENT_FIRST
Indenting initial paragraphs
).
In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
,
they are set bold italic, slightly larger than paragraph text.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
they are underlined.
If these defaults don't suit you, you can change them with the
parahead control macros.
Macro:
PARAHEAD
"<text of parahead>"
PARAHEAD
must come AFTER
#PP
PP
or it will not work!
The argument is the text of the parahead, surrounded by double-quotes.
Because paraheads are joined to the body of a paragraph, they accept
only one argument (see
#HEAD
HEAD
and
#SUBHEAD
SUBHEAD
).
Parahead control macros
In addition to the family/font/size/indent control macros, there are
macros to manage parahead numbering.
#PARAHEAD_GENERAL
Family/font/size
#PARAHEAD_INDENT
Indent
#NUMBER_PARAHEADS
Numbering
#RESET_PARAHEAD_NUMBER
Reset parahead numbering
1. Family/font/size
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.PARAHEAD_FAMILY default = prevailing document family; default is Times Roman
.PARAHEAD_FONT   default = bold italic
.PARAHEAD_SIZE   default = +.5 (point)
2. Indent
Unlike other control macros that end in
#CONTROL_INDENTS
_INDENT
,
the argument to the macro that controls indenting of paragraph heads
(
PARAHEAD_INDENT
) is NOT relative to the first-line
indent of normal paragraphs.  In other words, it takes an absolute
value, and requires a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
.
For example, to set the paragraph head indent to 2-1/2 picas, you
do:
.PARAHEAD_INDENT 2.5P
Mom
's default indent for paragraph heads is 1/2
the first-line indent of normal paragraphs (both printstyles).
However, as stated above, if you choose to change the indent, you
must give an absolute value (unless you're a groff expert and want
to manipulate the number register
\n[#PP_INDENT]u
arithmetically as the argument to
PARAHEAD_INDENT
for an indent that's relative to
PP_INDENT
.)
NOTE:
Paragraph heads in "first
paragraphs", as defined in
#PARA_INDENT_FIRST
Indenting initial paragraphs
,
are not indented unless you turn
#INDENT_FIRST_PARAS
INDENT_FIRST_PARAS
on.
3. Number paraheads -- NUMBER_PARAHEADS
If you'd like your paraheads numbered, simply invoke
.NUMBER_PARAHEADS
with no argument.
Mom
will number all subsequent paraheads automatically
(in ascending order, naturally).
If, in addition to numbering paraheads, you also request that
#HEAD_INTRO
heads
and
#SUBHEAD_INTRO
subheads
be numbered, the head and/or subhead number will be included in the
parahead number (separated by a period [dot]).
Should you wish to stop parahead numbering, invoke
NUMBER_PARAHEADS
with any argument (
OFF,
QUIT, END, X
...).  Parahead numbering will cease.
4. Reset head numbering -- RESET_PARAHEAD_NUMBER
Should you wish to reset the parahead number to "1", invoke
RESET_PARAHEAD_NUMBER
with no argument.  If, for some
reason, you want
mom
to use a parahead number that is not
the next in ascending order (i.e. the last parahead number + 1), invoke
RESET_PARAHEAD_NUMBER
with the number you want, e.g.
.RESET_PARAHEAD_NUMBER 7
Your next parahead will be numbered "7" and subsequent
paraheads will be numbered in ascending order from "7".
Author linebreaks
#LINEBREAK
Tag: LINEBREAK
#LINEBREAK_CHAR
Linebreak character control macro
By default,
mom
marks
definitions.html#TERMS_LINEBREAK
author linebreaks
with three centered asterisks.  You can change this behaviour
with the linebreak character
definitions.html#TERMS_CONTROLMACRO
control macro
.
Macro:
LINEBREAK
LINEBREAK
takes no arguments.  Simply invoke it
(on a line by itself, of course) whenever you want to insert an
author linebreak.  The appearance of the linebreak is controlled
by the
#LINEBREAK_CHAR
LINEBREAK_CHAR
macro.
Linebreak character control macro
Macro:
LINEBREAK_CHAR
[ <character> ] [ <iterations> [ <vertical adjustment> ] ]
*The third optional argument requires a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
.
LINEBREAK_CHAR
determines what
mom
prints when
LINEBREAK
is invoked.  It takes 3
optional arguments: the character you want deposited at the line
break, the number of times you want the character repeated, and a
vertical adjustment factor.
The first argument is any legal groff character (e.g.
*
[an asterisk],
\(dg
[a dagger],
\f(ZD\N'141\fP
[an arbitrary character from Zapf Dingbats],
\l'4P'
[a 4-pica long rule]).
Mom
sets the character
centered on the current line length.
The second argument is the number of times to repeat the character.
The third argument is a +|- value by which to raise (+) or lower (-)
the character in order to make it appear visually centered between
sections of text.  This lets you make vertical adjustments
to characters that don't sit on the
definitions.html#TERMS_BASELINE
baseline
(such as asterisks).  The argument must be preceded by a plus or
minus sign, and must include a unit of measure.
If you enter
LINEBREAK_CHAR
with no arguments,
sections of text will be separated by two blank lines when you invoke
LINEBREAK
.
Mom
's default for
LINEBREAK_CHAR
is
.LINEBREAK_CHAR * 3 -3p
i.e. three asterisks, lowered 3 points from their normal vertical
position (for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
;
the vertical adjustment is -2 points for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
).
Quotes (line for line)
#QUOTE
Tag: QUOTE
#QUOTE_CONTROL
Quote control macros
definitions.html#TERMS_QUOTE
Quotes
are always set in
definitions.html#TERMS_NOFILL
nofill mode
,
flush left.  This permits entering quotes on a line for line basis in
your text editor and have them come out the same way on output copy.
(See
#BLOCKQUOTE_INTRO
Blockquotes
for how quotes, in the present sense, differ from longer
passages of cited text.)
Since
mom
originally came into being to serve
the needs of creative writers (i.e. novelists, short story
writers, etc. -- not to cast aspersions on the creativity of
mathematicians and programmers), she sets quotes in italics
docprocessing.html#PRINTSTYLE
(PRINTSTYLE TYPESET)
or underlined
docprocessing.html#PRINTSTYLE
(PRINTSTYLE TYPEWRITE)
,
indented from the left margin.  Obviously, she's thinking
"quotes from poetry or song lyrics", but with the
quote control macros you can change her defaults so
QUOTE
serves other needs, e.g. entering snippets of
programming code, command line instructions, and so on.
Besides indenting quotes,
mom
further sets them
off from
definitions.html#TERMS_RUNNING
running text
with a small amount of vertical whitespace top and bottom.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
this is always one full linespace.  In
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
,
it's 1/2 of the prevailing
definitions.html#TERMS_LEADING
leading
if the quote fits fully on the page (i.e. with running text above
and below it), otherwise it's a full linespace either above or below
as is necessary to balance the page to the bottom margin.  This
behaviour can be changed with the control macro
#ALWAYS_FULLSPACE_QUOTES
ALWAYS_FULLSPACE_QUOTES
.
NOTE:
ALWAYS_FULLSPACE_QUOTES
applies to both
#QUOTE
QUOTE
and
#BLOCKQUOTE
BLOCKQUOTE
,
as does the control macro
#QUOTE_INDENT
QUOTE_INDENT
.
Macro:
QUOTE
toggle
QUOTE
is a toggle macro.  To begin a section of
quoted text, invoke it with no argument, then type in your quote.
When you're finished, invoke
QUOTE
with any
argument (e.g. OFF, END, X, Q...) to turn it off.  Example:
.QUOTE
Nymphomaniacal Jill
Used a dynamite stick for a thrill
They found her vagina
In North Carolina
And bits of her tits in Brazil.
.QUOTE END
Quote control macros
#QUOTE_GENERAL
Family/font/size/indent
#ALWAYS_FULLSPACE_QUOTES
Spacing above and below (typeset only)
#UNDERLINE_QUOTES
Underline quotes (typewrite only)
#BREAK_QUOTE
Manually break a footnoted quote that crosses pages/columns
1. Family/font/size/indent
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.QUOTE_FAMILY default = prevailing document family; default is Times Roman
.QUOTE_FONT   default = italic
.QUOTE_SIZE   default = 0 (i.e. same size as paragraph text)
.QUOTE_INDENT default = paragraph indent x 3 (typeset); x 2 (typewrite)
(note that this macro also sets the indents (left and right)
for blockquotes)
2. Spacing above and below -- ALWAYS_FULLSPACE_QUOTES (typeset only)
If you'd like
mom
always to put a full linespace above
and below quotes, invoke
.ALWAYS_FULLSPACE_QUOTES
with no argument.  If you wish to restore
mom
's
default behaviour regarding the spacing of quotes (see
#QUOTE_SPACING
above
),
invoke the macro with any argument (
OFF, QUIT, END,
X
...)
NOTE:
This macro also sets
mom
's
spacing policy for
#BLOCKQUOTE_INTRO
blockquotes
.
3. Underlining -- UNDERLINE_QUOTES (typewrite only)
By default in
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
mom
underlines quotes.  If you'd rather she didn't,
invoke
.UNDERLINE_QUOTES
with any argument
(
OFF, QUIT, END, X
...) to disable the feature.
Invoke it without an argument to restore
mom
's
default underlining of quotes.
If you not only wish that
mom
not underline
quotes, but also that she set them in italic, you must follow each
instance of
QUOTE
with the typesetting macro
typesetting.html#FONT
FT I
.
Furthermore, since
mom
underlines all instances
of italics by default in
PRINTSTYLE TYPEWRITE
,
you must also make sure that
ITALIC_MEANS_ITALIC
is enabled (see
docprocessing.html#TYPEWRITE_CONTROL
PRINTSTYLE TYPEWRITE control macros
).
4. Manually break a footnoted quote -- BREAK_QUOTE
Exceptionally, a quote or blockquote containing a footnote may cross
a page or column.  When this happens, the footnote marker may not be
correct for its position relative to other footnotes on the page, and
the footnote itself may appear on the wrong page or at the bottom of
the wrong column.  When this happens, study your output to determine
the precise point at which the quote breaks (or at which you want
it to break), and add
.BREAK_QUOTE
on a line by itself
afterwards.  No other intervention is required, and the footnote(s)
will be marked correctly and appear on the correct page.
BREAK_QUOTE
may be used with both quotes and
blockquotes, and hence is aliased as
BREAK_BLOCKQUOTE,
BREAK_CITATION
and
BREAK_CITE
.
Blockquotes (cited passages)
#BLOCKQUOTE
Tag: BLOCKQUOTE (aliases: CITE, CITATION)
#BLOCKQUOTE_CONTROL
BLOCKQUOTE control macros
BLOCKQUOTES
are used to cite passages from another
author's work.  So that they stand out well from
definitions.html#TERMS_RUNNING
running text
,
mom
indents them from both the left and right margins
and sets them in a different point size
docprocessing.html#PRINTSTYLE
(PRINTSTYLE TYPESET
only).
definitions.html#TERMS_OUTPUTLINE
Output lines
are
definitions.html#TERMS_FILLED
filled
,
and, by default,
definitions.html#TERMS_QUAD
quadded
left.
Besides indenting blockquotes,
mom
further sets them
off from running text with a small amount of vertical whitespace top
and bottom.  (See
#QUOTE_SPACING
above
for a complete explanation of how this is managed, and how to control it.)
You may notice that
BLOCKQUOTE
has no macro to
control
definitions.html#TERMS_LEADING
leading
,
although you can change the point size.  There are Very Good
Reasons for this.  If you can't live with the limitation, change
the leading of blockquotes (after invoking the tag) with
typesetting.html#LS
LS
,
but know that there will be Bottom Margin Consequences.
Macro:
BLOCKQUOTE
toggle
Aliases:
CITE, CITATION
BLOCKQUOTE
is a toggle macro.  To begin a
cited passage, invoke the tag with no argument, then type in your quote.
When you're finished, invoke
BLOCKQUOTE
with any
argument (e.g. OFF, END, X, Q...) to turn it off.  Example:
.BLOCKQUOTE
Redefining the role of the United States from enablers to keep
the peace to enablers to keep the peace from peacekeepers is
going to be an assignment.
.RIGHT
\(emGeorge W. Bush
.BLOCKQUOTE END
If the cited passage runs to more than one paragraph, you MUST
introduce each paragraph --
including the first!
--
with
#PP
PP
.
NOTE:
The aliases
CITE
and
CITATION
may be used in place of the
BLOCKQUOTE
tag, but "CITE" and
"CITATION" must not be used to replace "BLOCKQUOTE"
in any of the tag's control macros.
Blockquote control macros
#BLOCKQUOTE_GENERAL
Family/font/size/indent
#ALWAYS_FULLSPACE_QUOTES
Spacing above and below (typeset only)
#BREAK_QUOTE
Manually break a footnoted blockquote that crosses pages/columns
1. Family/font/size/indent
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.BLOCKQUOTE_FAMILY default = prevailing document family; default is Times Roman
.BLOCKQUOTE_FONT   default = italic
.BLOCKQUOTE_SIZE   default = -1 (point)
.QUOTE_INDENT      default = paragraph indent x 3 (typeset); x 2 (typewrite)
(note that this macro also sets the left indent for quotes)
2. Spacing above and below -- ALWAYS_FULLSPACE_QUOTES (typeset only)
If you'd like
mom
always to put a full linespace above
and below blockquotes, invoke
.ALWAYS_FULLSPACE_QUOTES
with no argument.  If you wish to restore
mom
's
default behaviour regarding the spacing of blockquotes (see
#QUOTE_SPACING
above
),
invoke the macro with any argument (
OFF, QUIT, END,
X
...).
NOTE:
This macro also sets
mom
's
spacing policy for
#QUOTE_INTRO
quotes
.
Footnotes
#FOOTNOTE_BEHAVIOUR
Footnote behaviour
#FOOTNOTE
Tag: FOOTNOTE
#FOOTNOTE_CONTROL
FOOTNOTE control macros
For something so complex behind the scenes, footnotes are easy to use.
You just type, for example
...the doctrines of Identity as urged by Schelling\c
.FOOTNOTE
<footnote about who the hell is Schelling>
.FOOTNOTE OFF
were generally the points of discussion presenting the most
of beauty to the imaginative Morella.
and be done with it.  (Note the obligatory use of the
\c
definitions.html#TERMS_INLINES
inline escape
.)
Mom
takes care of everything:
putting footnote markers in the body of the document, keeping track
of how many footnotes are on the page, identifying the footnotes
themeselves appropriately, balancing them properly with the botton
margin, deferring footnotes that don't fit on the page...  Even if
you're using
columns.html#COLUMNS
COLUMNS
,
mom
knows what to do, and Does The Right Thing.
Footnotes can be sly little beasts, though.  If you're writing a
document that's footnote-heavy, you might want to read the following.
Footnote behaviour
By default,
mom
marks footnotes with
alternating stars (asterisks) and daggers.  The first footnote
gets a star, the second a dagger, the third two stars,
the fourth two daggers, etc.  If you prefer numbered footnotes, rest
assured
mom
is happy to oblige.
A small amount of vertical whitespace and a short horizontal rule
separate footnotes from the document body.  The amount of whitespace
varies slightly from page to page depending on the number of lines
in the  footnotes.
Mom
tries for a nice balance
between too little whitespace and too much, but when push comes to
shove, she'll opt for ample over cramped.  The last lines of footnotes
are always flush with the document's bottom margin.
If
mom
sees that a portion of a footnote cannot
be fit on its page, she carries that portion over to the next
page.  If an entire footnote can't be fitted on its page (i.e.
FOOTNOTE
has been called too close to the bottom),
she defers the footnote to the next page, but sets it with the
appropriate marker from the previous page.
In the unfortunate happenstance that a deferred footnote is the
only footnote on its page (i.e. it's marked in the document body with
a star) and the page it's deferred has its own footnotes,
mom
separates the deferred footnote from the page's
proper footnote(s) with a blank line.  This avoids the confusion that
might result from readers seeing two footnote entries on the same page
identified by a single star (or the number 1 if you've requested
numbered footnotes that begin at 1 on every page).  The blank line
makes it clear that the first footnote entry belongs to the previous
page.
In the circumstance where a deferred footnote is not the only one on
its page, and is consequently marked by something other than a single
star, there's no confusion and
mom
doesn't bother
with the blank line.  (By convention, the first footnote on a page is
always marked with a single star, so if readers see, say, a dagger or two
stars marking the first footnote entry, they'll know the entry belongs
to the previous page).
Obviously, deferred footnotes aren't an issue if you request numbered
footnotes that increase incrementally throughout the whole document --
yet another convenience
mom
has thought of.
Exceptionally, you may encounter problems with footnotes inside
quotes and blockquotes that cross a page or column.  See
#BREAK_QUOTE
BREAK_QUOTE
for a solution.
Macro:
FOOTNOTE
<toggle> | INDENT LEFT | RIGHT | BOTH <indent value>
*See
#FOOTNOTE_NOTE
HYPER-IMPORTANT NOTE
!!!
<indent value> requires a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
FOOTNOTE
is a toggle macro, therefore invoking it
on a line by itself allows you to enter a footnote in the body of a
document.  Invoking it with any argument
other than INDENT
(i.e.
OFF, QUIT, END, X...
) tells
mom
you're finished.
Footnotes are the only element of
definitions.html#TERMS_RUNNING
running text
that are not affected by the typesetting
typesetting.html#INDENTS
indent macros
.
In the unlikely event that you want a page's footnotes to line
up with a running indent, invoke
FOOTNOTE
with
the
INDENT
argument and pass it an indent
direction and indent value.
L, R,
and
B
may be used in place of
LEFT,
RIGHT,
and
BOTH
.
FOOTNOTE
must be invoked with
INDENT
for every footnote you want indented;
mom
does
not save any footnote indent information from invocation to
invocation.
NOTE:
If a footnote runs to more than one
paragraph(!),
DO NOT
begin the footnote with
the
#PP
PP
tag.  Use
PP
only to introduce subsequent paragraphs.
HYPER-IMPORTANT NOTE:
The final word on the
definitions.html#TERMS_INPUTLINE
input line
that comes immediately before
FOOTNOTE
MUST terminate
with a
typesetting.html#JOIN
\c
inline escape.  Otherwise, the footnote marker for the word won't be attached to
it (i.e.
mom
will insert a word space between the word
and the marker).  See the
#FOOTNOTE_EXAMPLE
footnote example
above.
Footnote control macros
#FOOTNOTE_GENERAL
Family/font/size/lead/quad
#FOOTNOTE_MARKERS
Footnote markers
-- on or off
#FOOTNOTE_MARKER_STYLE
Footnote marker style
-- star+dagger or numbered
#RESET_FOOTNOTE_NUMBER
Reset footnote number
-- set footnote marker number to 1
#FOOTNOTE_RULE
Footnote rule
-- on or off
#FOOTNOTE_RULE_LENGTH
Footnote rule length
-- length of footnote separator rule
#FOOTNOTE_RULE_ADJ
Adjust vertical position of footnote separator rule
1. Family/font/size/quad/lead
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.FOOTNOTE_FAMILY    default = prevailing document family; default is Times Roman
.FOOTNOTE_FONT      default = roman
.FOOTNOTE_SIZE      default = -2 (points)
.FOOTNOTE_AUTOLEAD  default = 2 points (typeset); single-spaced (typewrite)
.FOOTNOTE_QUAD      default = same as paragraphs
2. Footnote markers -- FOOTNOTE_MARKERS
If you don't want footnote markers, in either the body of
the document or beside footnote entries themselves, toggle
them off with
.FOOTNOTE_MARKERS OFF
(or
END, QUIT, X
...).  This means, of course, that
you'll have to roll your own.  If you want them back on, invoke
.FOOTNOTE_MARKERS
with no argument.  Footnote markers
are on by default.
3. Footnote marker style -- FOOTNOTE_MARKER_STYLE
Mom
gives you two choices of footnote marker style:
star+dagger (see
#FOOTNOTE_BEHAVIOUR
footnote behaviour
above), or numbered.
.FOOTNOTE_MARKER_STYLE STAR
gives you star+dagger
(the default).  There is a limit of 10 footnotes per page with
this style.
.FOOTNOTE_MARKER_STYLE NUMBER
gives you superscript
numbers, both in the document body and in the footnote entries
themselves.  By default, footnote numbers increase incrementally
(prev. footnote number + 1) throughout the whole document.  You can
ask
mom
to start each page's footnote numbers at 1
with
.RESET_FOOTNOTE_NUMBER
(see below).
4. Reset footnote number -- RESET FOOTNOTE NUMBER
.RESET_FOOTNOTE_NUMBER
, by itself, resets
footnote numbering so that the next footnote you enter is
numbered 1.
.RESET_FOOTNOTE_NUMBER PAGE
tells
mom
to start every page's footnote numbering at 1.
5. Footnote rule -- FOOTNOTE_RULE
If you don't want a footnote separator rule, toggle it off with
.FOOTNOTE_RULE OFF
(or
END,
QUIT, X
...).  Toggle it back on by invoking
.FOOTNOTE_RULE
with no argument.  The default is to
print the rule.
6. Footnote rule length -- FOOTNOTE_RULE_LENGTH
If you want to change the length of the footnote separator rule,
invoke
.FOOTNOTE_RULE_LENGTH
with a length, like
this,
.FOOTNOTE_RULE_LENGTH 1i
which sets the length to 1 inch.  Note that a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
is required.  The default is 4
definitions.html#TERMS_PICASPOINTS
picas
for both
docprocessing.html#PRINTSTYLE
printstyles
.
7. Adjust vertical position of footnote separator rule -- FOOTNOTE_RULE_ADJ
The footnote separator rule is actually a baseline rule that falls
on the
definitions.html#TERMS_BASELINE
baseline
of the first line of a page's footnotes.  By default,
mom
raises the rule 3
definitions.html#TERMS_PICASPOINTS
points
from the baseline so that the separator and the footnotes don't
look jammed together.  If you'd prefer a different vertical
adjustment, invoke
.FOOTNOTE_RULE_ADJ
with the
amount you'd like.  For example
.FOOTNOTE_RULE_ADJ 4.25p
raises the rule by 4-1/4 points.  Note that you can only raise
the rule, not lower it.  A
definitions.html#TERMS_UNITOFMEASURE
unit of measure
is required.
Endnotes
#ENDNOTE_BEHAVIOUR
Endnote behaviour
#ENDNOTE_SPACING
A Note on Endnote Spacing
#ENDNOTE_COLUMNS
Endnotes and columnar documents
#ENDNOTE
Tag: ENDNOTE
#ENDNOTES
Macro: ENDNOTES
-- tell
mom
to output endnotes
#ENDNOTE_CONTROL
ENDNOTE control macros
Embedding endnotes into
mom
documents is accomplished
the same way as embedding
#FOOTNOTE_INTRO
footnotes
.  The example below is
identical to the one shown in the
#FOOTNOTE_EXAMPLE
introduction to footnotes
,
except that
.FOOTNOTE
has been replaced with
.ENDNOTE
.
...the doctrines of Identity as urged by Schelling\c
.ENDNOTE
<endnote about who the hell is Schelling>
.ENDNOTE OFF
were generally the points of discussion presenting the most
of beauty to the imaginative Morella.
As with footnotes, note the obligatory use of the
\c
definitions.html#TERMS_INLINES
inline escape
.
Endnotes differ from footnotes in two ways (other than the fact that
endnotes come at the end of a document whereas footnotes appear in the
body of the document):
Endnotes are always numbered incrementally throughout a
document.  In other words, you don't get a choice of marker styles,
as you do with footnotes.
Endnotes MUST be output explicitly;
mom
does
not output them for you.  In
rectoverso.html#COLLATE
collated
documents, this allows you to choose whether you
want the endnotes to appear at the end of each chapter or
section, or grouped together at the very end of the document.
Within endnotes, you may use the document element tags
#PP
PP
,
#QUOTE
QUOTE
and
#BLOCKQUOTE
BLOCKQUOTE
.
This provides the flexibility to create endnotes that run to several
paragraphs, as well as to embed cited text within endnotes.
Should you wish to change the appearance of quotes or blockquotes that
appear within endnotes, you may do so with the
#QUOTE_CONTROL
quote control macros
or
#BLOCKQUOTE_CONTROL
blockquote control macros
.
HOWEVER... you must make the changes
within
each endnote, prior
to invoking
QUOTE
or
BLOCKQUOTE
, and
undo them prior to terminating the endnote (i.e. before
ENDNOTE
OFF
), otherwise the changes will affect subsequent quotes and
blockquotes that appear in the document body as well.
Endnote behaviour
When you output endnotes (with
#ENDNOTES
ENDNOTES
),
mom
finishes processing the last page of your document,
then breaks to a new page for printing the endnotes.  If the document
type is
docprocessing.html#DOCTYPE
CHAPTER
,
the centre part of the
definitions.html#TERMS_HEADER
header
(or footer), which, by default, contains a chapter number or title, is
removed.
By default,
mom
starts the endnotes page with a
bold, centered, double-underscored head, "ENDNOTES".
Underneath--flush left, bold, and underscored--she prints the document
title (or, in the case of chapters, the chapter number or title).  She
then prints the endnotes.  Each endnote is identified by its appropriate
number, in bold, right aligned to two placeholders.  The text of the
endnotes themselves is indented to the right of the numbers.
If the endnotes are grouped together at the end of a collated document,
each section of the document that contains endnotes is identified by its
own unique title (or chapter number or title), bold, flush left, and
underscored.
Of course, all the defaults, as well as the overall style of the
endnotes page, can be changed with the
#ENDNOTE_CONTROL
endnote control macros
.
The attentive will notice that endnotes have an awful lot of control
macros.  This is because endnotes are like a mini-document unto
themselves, and therefore need not be bound by the style parameters of
the body of the document.
A Note on Endnote Spacing
On the endnotes page(s), each new endnote is separated from the
previous endnote by a full line space.  This can result in a bottom
margin that hangs, and is the one instance, other than the use of
#PP_SPACE
PARA_SPACE
,
where
mom
allows unequal bottom alignment of pages.
Should you wish to correct this, by adding or subtracting small amounts
of space between endnotes that appear together on an endnote page, make
the adjustment (with
typesetting.html#ALD
ALD
,
typesetting.html#RLD
RLD
or
typesetting.html#SPACE
SPACE
)
at the end of each endnote
(i.e. just before invoking
#ENDNOTE
ENDNOTE OFF
)
rather than at the top.
Endnotes and columnar documents
At present, there is no way to set a document in columns (see
docprocessing.html#COLUMNS
COLUMNS
)
and then turn off column mode for endnotes.  If your document is set in
columns, your endnotes will be, too.
Macro:
ENDNOTE
<toggle>
*See
#ENDNOTE_NOTE
HYPER-IMPORTANT NOTE
!!!
ENDNOTE
is a toggle macro, therefore invoking it
on a line by itself allows you to enter an endnote in the body of a
document.  Invoking it with any other argument
(i.e.
OFF, QUIT, END, X...
) tells
mom
that you've finished the endnote.
NOTE:
If an endnote runs to more than one paragraph,
DO NOT
begin the endnote with the
#PP
PP
tag.  Use
PP
only to introduce subsequent paragraphs.
HYPER-IMPORTANT NOTE:
The final word on the
definitions.html#TERMS_INPUTLINE
input line
that comes immediately before
ENDNOTE
MUST terminate
with a
typesetting.html#JOIN
\c
inline escape.  Otherwise, the endnote number for the word won't be attached to
it (i.e.
mom
will insert a word space between the word
and the number).  See the
#ENDNOTE_EXAMPLE
endnote example
above.
Macro:
ENDNOTES
Unlike footnotes, which
mom
automatically outputs at the
bottom of pages, endnotes must be explicitly output by you, the user.
ENDNOTES
, by itself (i.e. without any argument), is
the macro to do this.
Typically, you'll use
ENDNOTES
at the end of
a document.  If it's a single (i.e. not collated) document,
mom
will print the endnotes pertaining to it.  If it's
a collated document,
mom
will print all the endnotes
contained within all sections of the document (typically chapters),
appropriately identified and numbered.
Should you wish to output the endnotes for each section of a collated
document at the ends of the sections (instead of at the very end of the
document), simply invoke
ENDNOTES
immediately prior to
rectoverso.html#COLLATE
COLLATE
.
Mom
will print the endnotes, identified and numbered
appropriately, on a separate page prior to starting the next section of
the document.  Each subsequent invocation of
ENDNOTES
outputs only those endnotes that
mom
collected
after the previous invocation.
Endnote control macros
Every time you embed an endnote in the body of a document,
mom
collects
and processes
the endnote for
later outputting when you invoke
#ENDNOTES
ENDNOTES
.
For this reason, endnote control macros should always be invoked prior
to the first instance of
#ENDNOTE
ENDNOTE/ENDNOTE OFF
.
#ENDNOTES_GENERAL
General endnotes-pages style control
#ENDNOTE_GENERAL
Base family/font/quad for endnotes-pages
#ENDNOTE_PT_SIZE
Base point size for the endnotes-pages
#ENDNOTE_LEAD
Leading of endnotes-pages
#ENDNOTE_PARA_INDENT
Size of paragraph first line indent in multi-paragraph endnotes
#ENDNOTE_PARA_SPACE
Inserting space between paragraphs of multi-paragraph endnotes
#ENDNOTES_HEADER_CONTROL
Endnotes-page header/footer control
#ENDNOTES_MAIN_TITLE
Endnotes-page head control
#ENDNOTE_STRING
Creating/modifying the endnotes-page head
#ENDNOTE_STRING_CONTROL
Endnotes-page head control
#ENDNOTE_STRING_UNDERSCORE
Endnotes-page head underscoring
#ENDNOTES_DOC_TITLE
Endnote document-identification title
#ENDNOTE_TITLE
Creating/modifying the endnote document-identification title
#ENDNOTE_TITLE_CONTROL
Document-identification title control
#ENDNOTE_TITLE_UNDERSCORE
Document-identification title underscoring
#ENDNOTES_NUMBERING
Endnotes-pages endnote numbering style
#ENDNOTE_NUMBER_CONTROL
Endnotes-pages endnote numbering style control
#ENDNOTE_NUMBER_ALIGNMENT
Endnote numbering alignment
#ENDNOTE_NUMBERS_ALIGN_RIGHT
ENDNOTE_NUMBERS_ALIGN_RIGHT
#ENDNOTE_NUMBERS_ALIGN_LEFT
ENDNOTE_NUMBERS_ALIGN_LEFT
1. General endnotes page style control
Endnote family/font/quad
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.ENDNOTE_FAMILY    default = prevailing document family; default is Times Roman
.ENDNOTE_FONT      default = roman
.ENDNOTE_QUAD      default = justified
Endnote point size
Macro:
ENDNOTE_PT_SIZE
<base type size of endnotes>
Unlike most other control macros that deal with size of document
elements,
ENDNOTE_PT_SIZE
takes as its argument an
absolute value, relative to nothing.  Therefore, the argument represents
the size of endnote type in
definitions.html#TERMS_PICASPOINTS
points
,
unless you append an alternative
definitions.html#TERMS_UNITOFMEASURE
unit of measure
.
For example,
.ENDNOTE_PT_SIZE 12
sets the base point size of type on the endnotes page to 12
points, whereas
.ENDNOTE_PT_SIZE .6i
sets the base point size of type on the endnotes page to 1/6 of an
inch.
The type size set with
ENDNOTE_PT_SIZE
is the size of
type used for the text of the endnotes, and forms the basis from which
the point size of other endnote page elements is calculated.
The default for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
is 12 points (the same default size used in the body of the document).
Endnote lead
Macro:
ENDNOTE_LEAD
<base leading of endnotes>
Unlike most other control macros that deal with leading of document
elements,
ENDNOTE_LEAD
takes as its argument an
absolute value, relative to nothing.  Therefore, the argument represents
the
definitions.html#TERMS_LEADING
leading
of endnotes in
definitions.html#TERMS_PICASPOINTS
points
unless you append an alternative
definitions.html#TERMS_UNITOFMEASURE
unit of measure
.
For example,
.ENDNOTE_LEAD 14
sets the base leading of type on the endnotes page to 14
points, whereas
.ENDNOTE_LEAD .5i
sets the base leading of type on the endnotes page to 1/2 inch.
The default for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
is 14 points.
Endnote paragraph indent
Macro:
ENDNOTE_PARA_INDENT
<amount to indent first line of paragraphs in endnotes>
*Requires a
definitions.html#TERMS_UNITOFMEASURE
unit of measure
ENDNOTE_PARA_INDENT
works exactly the same way as
#PARA_INDENT
PARA_INDENT
,
except that the indent given is the amount by which to indent the first
lines of endnote paragraphs, not document body paragraphs.
The default is 1.5
definitions.html#TERMS_EM
ems
for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPESET
;
1/2 inch for
docprocessing.html#PRINTSTYLE
PRINTSTYLE TYPEWRITE
.
NOTE:
The first line of the first paragraph of endnotes
(the one attached immediately to the identifying endnote number) is
never indented.  Only subsequent paragraphs are affected by
ENDNOTE_PARA_INDENT
.
Endnote paragraph spacing
Macro:
ENDNOTE_PARA_SPACE
<toggle>
ENDNOTE_PARA_SPACE
works exactly the same way as
#PP_SPACE
PARA_SPACE
,
except that it inserts a blank line between endnote paragraphs, not
document body paragraphs.
The default is not to insert a blank line between paragraphs in
endnotes.
NOTE:
Each endnote itself is always separated from any
previous endnote by a line space.
ENDNOTE_PARA_SPACE
refers only to paragraphs that appear within each discrete endnote.
2. Endnotes-page header/footer control
If you wish to modify the header/footer that appears on endnotes
page(s), make the changes before you invoke
#ENDNOTES
ENDNOTES
,
not afterwards.
Except in the case of
docprocessing.html#DOCTYPE
DOCTYPE CHAPTER
,
mom
prints the same header or footer used throughout
the document on the endnotes page(s).  Chapters get treated differently
in that, by default,
mom
does not print the
header/footer centre string (normally the chapter number or chapter
title.)  In most cases, this is what you want.  However, should you
not
want
mom
to remove the centre string from
the endnotes page(s) headers/footers, invoke
#ENDNOTES_HDRFTR_CENTER
ENDNOTES_HEADER_CENTER
with no argument.
Endnotes page(s) header/footer center string
Macro:
ENDNOTES_HEADER_CENTER
toggle
If your
docprocessing.html#DOCTYPE
DOCTYPE
is
CHAPTER
and you want
mom
to include
a centre string in the headers/footers that appear on endnotes pages,
invoke
ENDNOTES_HEADER_CENTER
(or
ENDNOTES_FOOTER_CENTER
) with no argument.
Mom
's default is NOT to print the center string.
If, for some
reason, having enabled the header/footer center string on endnotes
pages, you wish to disable it, invoke the same macro with any argument
(
OFF, QUIT, Q, X
...).
3. Endnotes page head control
Endnotes-page head string
Macro:
ENDNOTE_STRING
"<head to print at the top of endnotes>"
By default,
mom
prints the word "ENDNOTES"
as a head at the top of the first page of endnotes.  If you want her
to print something else, invoke
ENDNOTE_STRING
with
the endnotes-page head you want, surrounded by double-quotes.  If
you don't want a head at the top of the first endnotes-page, invoke
ENDNOTE_STRING
with a blank argument (either two
double-quotes side by side --
""
-- or no argument
at all).
Endnotes-page head control
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.ENDNOTE_STRING_FAMILY    default = prevailing document family; default is Times Roman
.ENDNOTE_STRING_FONT*     default = bold
.ENDNOTE_STRING_SIZE      default = +1
.ENDNOTE_STRING_QUAD      default = centered
*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
Endnotes-page head underscoring
Macro:
ENDNOTE_STRING_UNDERSCORE
toggle | 2
Invoked by itself,
ENDNOTE_STRING_UNDERSCORE
will
underscore the endnotes-page head.  Invoked with the argument 2
(i.e. the digit 2),
ENDNOTE_STRING_UNDERSCORE
will
double-underscore the head.  Invoked with any other argument, the macro
disables underscoring of the head.
Mom
's default is to double-underscore the
head, therefore if you want no underscoring, you must insert
.ENDNOTE_STRING_UNDERSCORE OFF
(or
QUIT, X, NO,
NONE,
etc.) into your document prior to outputting endnotes with
#ENDNOTES
ENDNOTES
.
4. Endnote document-identification title
Endnote document-identification title string
Macro:
ENDNOTE_TITLE
"<title to identify a document in endnotes>"
By default,
mom
identifies the document(s) to which
endnotes belong by the document title(s) given to the
docprocessing.html#TITLE
TITLE
macro.  If you want her to identify the document(s) another way,
invoke
ENDNOTE_TITLE
with the identifying title you
want, surrounded by double-quotes.  If you don't any identifying title,
invoke
ENDNOTE_TITLE
with a blank argument (either two
double-quotes side by side --
""
-- or no argument
at all).
Endnote document-identification title control
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
.ENDNOTE_TITLE_FAMILY    default = prevailing document family; default is Times Roman
.ENDNOTE_TITLE_FONT      default = bold
.ENDNOTE_TITLE_SIZE*     default = 0
.ENDNOTE_TITLE_QUAD      default = left
*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
Endnote document-identification title underscoring
Macro:
ENDNOTE_TITLE_UNDERSCORE
toggle
Inovked by itself,
ENDNOTE_TITLE_UNDERSCORE
will
underscore the endnote document-identification title.  Invoked with any
other argument, the macro disables underscoring of the title.
Mom
's default is to underscore the document-identification title, therefore if you want no underscoring, you must
insert
.ENDNOTE_TITLE_UNDERSCORE OFF
(or
QUIT, X, NO,
NONE,
etc.) into your document prior to outputting endnotes with
#ENDNOTES
ENDNOTES
.
at all.
5. Endnotes-pages endnote numbering style
Endnote numbering style control
See
#CONTROL_MACRO_ARGS
Arguments to the control macros
.
Please note that the control macros for endnote numbering affect only
the numbers that appear on the endnotes pages themselves, not the
endnote numbers that appear in the body of the document(s).
.ENDNOTE_NUMBER_FAMILY    default = prevailing document family; default is Times Roman
.ENDNOTE_NUMBER_FONT      default = bold
.ENDNOTE_NUMBER_SIZE*     default = 0
*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
Endnote numbering alignment
By default,
mom
hangs the numbers on endnotes pages,
aligned right to two placeholders, producing this:
9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
The macros to alter this behaviour are
#ENDNOTE_NUMBERS_ALIGN_RIGHT
ENDNOTE_NUMBERS_ALIGN_RIGHT
#ENDNOTE_NUMBERS_ALIGN_LEFT
ENDNOTE_NUMBERS_ALIGN_LEFT
Macro:
ENDNOTE_NUMBERS_ALIGN_RIGHT
<number of placeholders>
ENDNOTE_NUMBERS_ALIGN_RIGHT
takes one (non-optional)
argument: the number of placeholders to reserve for right alignment of
endnote numbers.
For example, if you have fewer than ten endnotes, you might want to do
.ENDNOTE_NUMBERS_ALIGN_RIGHT 1
which would ensure that the endnote numbers hang, but are all flush
with the page's left margin.  If, god help you, you have over a hundred
endnotes, you'd want to do
.ENDNOTE_NUMBERS_ALIGN_RIGHT 3
to ensure that the numbers hang and are properly right-aligned.
Macro:
ENDNOTE_NUMBERS_ALIGN_LEFT
If you don't want the endnote numbers to hang and right-align, invoke
ENDNOTE_NUMBERS_ALIGN_LEFT
, which doesn't require any
argument.  This disables hanging and right-alignment of endnote numbers,
so that the example
#ENDNOTE_NUMBERING_ALIGNMENT_EXAMPLE
above
comes out like this:
9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua.
Terminate document processing
#FINIS
Tag: FINIS
#FINIS_STRING
Changing the FINIS string
The use of
FINIS
is optional.  If you invoke it
(at the end of a document, of course),
mom
turns off
definitions.html#TERMS_FOOTER
footers
(if they're on) and page numbering (if page
numbers are at the bottom of the page) and deposits the word
END, centered after a blank line, beneath the last
line of the document.  END is enclosed between
definitions.html#TERMS_EM
em-dashes
.
If you're writing in a language other than English, you can
change what
mom
prints for END with
the control macro
FINIS_STRING
.
Macro:
FINIS
The use of
FINIS
is optional, but if you use
it, it should be the last macro you invoke in a document.  See
#FINIS_INTRO
above
for a description of how
FINIS
behaves.
NOTE:
If you don't use
FINIS
,
and you don't want
definitions.html#TERMS_FOOTER
footers
(if they're on) or a page number at the bottom of the last page of
a document, you have to turn them off manually, as the last two
lines of your document file, like this:
.FOOTERS OFF
.PAGINATE OFF
Changing the FINIS string
By default,
FINIS
prints the word
END between
definitions.html#TERMS_EM
em-dashes
.
If you'd like
mom
to print something else
between the dashes, use the
FINIS_STRING
macro
(anywhere in the document prior to
FINIS
).
For example, if your document's in French, you'd do
.FINIS_STRING "FIN"
Double-quotes must enclose the macro's argument.
NOTE:
If you pass
FINIS_STRING
a blank string, i.e.
.FINIS_STRING ""
mom
will still print the em-dashes if you
invoke
FINIS
.  This, in effect, produces a
short, centered horizontal rule that terminates the document.
(In
docprocessing.html.#PRINTSTYLE
PRINTSTYLE TYPEWRITE
,
it's a short, dashed line composed of four hyphens.)
headfootpage.html#TOP
Next
docprocessing.html#TOP
Prev
#TOP
Top
toc.html
Back to Table of Contents
