.\" Copyright (c) 1986 The Regents of the University of California.
.\" Redistribution and use in source and binary forms are permitted
.\" provided that the above copyright notice and this paragraph are
.\" duplicated in all such forms and that any documentation,
.\" advertising materials, and other materials related to such
.\" distribution and use acknowledge that the software was developed
.\" by the University of California, Berkeley. The name of the
.\" University may not be used to endorse or promote products derived
.\" from this software without specific prior written permission.
.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\" @(#)ref.me 6.4 (Berkeley) 7/17/89
.\" Modified by jjc@jclark.uucp for groff.
.he '\-ME REFERENCE MANUAL''%'
.\"eh 'USD:23-%''\-me Reference Manual'
.\"oh '\-me Reference Manual''USD:23-%'
.b "\-ME REFERENCE MANUAL"
.i "\*G Version \*(MO\(dg"
\(dgBased on Berkeley Release 2.31.
*Author's current address:
Berkeley, California 94704.
Electronics Research Laboratory
University of California, Berkeley
Berkeley, California 94720
.i "Modified for \*G by James Clark"
Some familiarity is assumed
the reader should understand
the use and definition of number registers
and scaling factors for ens, points,
For a more casual introduction
Writing Papers with \*G using \-me.
There are a number of macro parameters
Fonts may be set to a font number only.
Font 0 is no font change;
the font of the surrounding text
it is simulated by the macros.
This means that although it is legal to set a font register
it is not legal to use the escape character form,
so it is nearly always necessary
to set the paragraph indent
to eight one-en spaces is:
which would set the paragraph indent to eight basic units,
Default parameter values are given in brackets
in the remainder of this document.
may be used in expressions
but should not be changed.
This may be a sensitive operation;
look at the body of the original macro
follow a rigid naming convention.
The user may define number registers,
uses single character upper case names
or double character names
consisting of letters and digits,
with at least one upper case letter.
In no case should special characters
be used in user-defined names.
should all be of the form
This documentation was \*G'ed
and applies to \*G version
The standard paragraph macro
the others are all variants
to be used for special purposes.
After the first call to one of the paragraphing macros
(defined in the next session),
the effects of changing parameters
which will have a global effect
on the format of the page
(notably page length and header and footer margins)
Begin left-justified paragraph.
Centering and underlining
are turned off if they were on,
This is the standard paragraph macro.
The body of the following paragraph
more than a non-indented paragraph
is exdented (opposite of indented).
The result is a paragraph
will not fit in the space provided,
A variant of .ip which numbers paragraphs.
The current paragraph number
except that paragraphs are marked with bullets (\(bu).
Leading space is eliminated to create compact lists.
are similar to paragraphs
The section numbers are of the form
(separated by decimal points)
Unnumbered section headings are similar,
except that no number is attached
the individual parts of the section number
space before the section.
of the section may be accessed via
is added to the section title
(but not to the body of the section).
so that more information may occur
insures that there is enough room
to print the section head
plus the beginning of a paragraph
the section number is set to that number
rather than incremented automatically.
that number is not reset.
then the section depth and numbering is reset,
but the base indent is not reset
and nothing is printed out.
This is useful to automatically
coordinate section numbers with
but do not print the number
and do not increment the section number
of starting a new paragraph
Unnumbered section heading.
with the same rules for spacing,
is the title passed on the
is the section number for this section,
is the depth of this section.
These parameters are not always present;
Care should be taken if this macro
it is quite complex and subtle.
This macro is called automatically
It is normally undefined,
into the table of contents
or for some similar function.
for the section title which was just printed,
Traps called just before printing that depth section.
These macros are called from
so if you redefine that macro
you may lose this feature.
.sh 1 "Headers and Footers"
.ds TP \fI\(aal\|\(aam\^\(aar\^\(aa\fP
are put at the top and bottom
if there are two blanks adjacent
or more than eight blanks total.
are controlled by three number registers.
is the distance from the top of the page
to the top of the header,
is the distance from the bottom of the page
to the bottom of the footer,
is the distance from the top of the page
is the distance from the bottom of the page
to the bottom of the text
are also supplied for compatibility
Define three-part header,
to be printed at the bottom
to be printed at the top of every
to be printed at the top of every
to be printed at the bottom
of every even-numbered page.
to be printed at the bottom
of every odd-numbered page.
Suppress headers and footers
Set the space between the top of the page
Set the space between the header
and the first line of text
between the bottom of the text
and the bottom of the page
but do not begin the next page.
Useful for forcing out footnotes,
loses the function of the
as well as the chapter-style title feature
A normally undefined macro
initial saved floating keeps,
this macro is called immediately before
It can be used for column headings
All displays except centered blocks
are preceded and followed
Quote spacing is stored in a separate register;
centered blocks have no default initial or trailing space.
The vertical spacing of all displays except quotes
the list is indented to the left margin;
the list is left justified with respect to the text
the list is centered on a line-by-line basis.
This macro is almost like
except that no attempt is made
to keep the display on one page.
and are set in point size
[one point smaller than surrounding text].
is kept together on one page
which should not be broken
If the block will not fit
that would leave more than
at the bottom of the text.
is zero, the threshold feature
The block will be left-justified
and left justified to the margin
to the bottom of the page
or the top of the next page.
its position relative to the text changes.
The floating keep is preceded and followed
rather than on a line-by-line basis
Everything in the next keep
The delayed text number register
and the associated string
is printed and truncated.
at the end of each chapter.
Footnotes line up underneath
If the text of the footnote
will not all fit on one page
and the associated string
if they have been referenced.
The macro to output the footnote separator.
This macro may be redefined
to give other size lines or other types
Index entries are saved in the index
this register tells how far the page number
extends into the right margin.
is finished with a row of dots
right justified on the last line
(such as for an author's name),
can be used to print the current page number.
The index is formatted in the font, size, and so forth
in effect at the time it is printed,
rather than at the time it is collected.
The column separation is set to
calculated to fill the single column line length
to see if you are in single column
Revert to single-column mode.
except that it begins a new column
rather than forcing a whole new page
if there is another column left
and the line spacing is set proportionally.
The line spacing as a percentage of the pointsize expressed in units
The percentage used internally
by displays and annotations
(although this is not used by
sticky beyond many macros:
modifies the pointsize every time a new paragraph is begun
(section header pointsize),
may modify the pointsize.
To append different font requests,
This is a true underlining,
(usually italics in \*G).
is spread or broken (including hyphenated).
it is safe in nofill mode only.
is spread or broken (including hyphenated).
it is safe in nofill mode only.
on the next page if not enough room
Set page number in Arabic.
Number lines in margin from one
Leave the next output page blank,
except for headers and footers.
This is used to leave space
which is produced externally
To get a partial-page paste-in display,
this space will be output immediately
and will otherwise be output
at the top of the next page.
is greater than the amount of available space
no space will ever be output.
.sh 1 "Preprocessor Support"
is a title printed on the right margin
.i "Typesetting Mathematics \- User's Guide"
the equation must be continued
If you have a large table
which will not fit on one page,
and follow the header part
(to be printed on every page of the table)
.i "Tbl \- A Program to Format Tables"
ends the header portion of the table.
it is not even guaranteed to stay on one page
if you use requests such as
surround the entire table
picture (alternate form).
picture (alternate form).
come out indented by this amount.
and sets the base indent to
because it only affects the current environment.
Set line length in all environments
and particularly not in two-column output.
The current line length is stored in
Spacing at the top of the page
and headers and footers are suppressed.
This request defines the section of the paper
The section type is defined by
means that we are entering the chapter portion
means that we are entering the appendix portion
means that the material following
should be the preliminary portion
(abstract, table of contents, etc.)
means that we are entering the abstract
(numbered independently from 1
means that we are entering the bibliographic
portion at the end of the paper.
which specify renumbering of pages
from one at the beginning of each
parameter defines the new header.
If there are any spaces in it,
the entire header must be quoted.
If you want the header to have the chapter number
For example, to number appendixes
.b ".++ RA \(aa\(aa\(aa\e\e\e\en(ch.%\(aa" .
(chapter, appendix, etc.)
should be preceded by the
that it is easier when using
\*T to put the front material
so that the table of contents
can be collected and put out;
this material can then be physically
moved to the beginning of the paper.
This register is incremented
is called with a parameter.
The title and chapter number
The header is moved to the footer
this is useful for doing your own
at the beginning of papers
without a title page proper.
as a hook so that chapter titles can be inserted
into a table of contents automatically.
The footnote numbering is reset to one.
This macro can be redefined to your liking.
which can be defined to make index entries,
It is normally undefined,
but can be used to automatically insert
is the chapter or appendix number,
is the chapter or appendix title.
.sh 1 "Predefined Strings"
Footnote number, actually
This macro is incremented
This string gives upward movement
and a change to a smaller point size.
Extra space is left above the line
to allow room for the superscript.
Extra space is left below the line
to allow for the subscript.
The date is of the form \*(td.
Other forms of the date can be used
but as an ordinal number;
for example, \*(mo is \n(mo),
(the last two digits of the current year).
.sh 1 "Special Characters and Marks"
There are a number of special characters
Acute accent \e*\(aa a\e*\(aa a\*'
Grave accent \e*\(ga e\e*\(ga e\*`
There exists \e*(qe \*(qe
to produce non-trivial papers
during the development stages;
for their help with the documentation phase;
most accompanied by fixes;
and the plethora of people who have contributed ideas
and have given support for the project.
This alphabetical list summarizes all macros, strings, and number registers
available in the \-me macros.
commands, registers, and functions are included as well;
those listed can generally be used with impunity.
The columns are the name of the
command, macro, register, or string;
for macro or builtin command
in the first input column),
(invoked by preceding it with a single backslash).
Lines marked with \(sc are
Lines marked with \(dg or \(dd
may be defined by the user to get special functions;
\(dd indicates that these are defined by default
and changing them may have unexpected side effects.
.ta \w'\e(space)\(sc\ 'u +\w'TYPE 'u
\e(space) F\(sc unpaddable space
\e" F\(sc comment (to end of line)
\e*# S optional delayed text tag string
\e$\fI\&N\fP F\(sc interpolate argument \fI\&N\fP
\&.$0 M\(dg invoked after section title printed
\en($1 R first section number
\&.$1 M\(dg invoked before printing depth 1 section
\en($2 R second section number
\&.$2 M\(dg invoked before printing depth 2 section
\en($3 R third section number
\&.$3 M\(dg invoked before printing depth 3 section
\en($4 R fourth section number
\&.$4 M\(dg invoked before printing depth 4 section
\en($5 R fifth section number
\&.$5 M\(dg invoked before printing depth 5 section
\en($6 R sixth section number
\&.$6 M\(dg invoked before printing depth 6 section
\&.$C M\(dg called at beginning of chapter
\en($R R\(dd relative vertical spacing in displays
\en($c R current column number
\&.$c M\(dd print chapter title
\en($d R delayed text number
\en($i R paragraph base indent
\en($m R number of columns in effect
\en($p R numbered paragraph number
\&.$p M\(dd print section heading (internal macro)
\en($r R\(dd relative vertical spacing in text
\&.$s M\(dd footnote separator (from text)
\en% R\(sc current page number
\e& F\(sc zero width character, useful for hiding controls
\e(\fI\&xx\fP F\(sc interpolate special character \fI\&xx\fP
\&.(c M begin centered block
\&.(d M begin delayed text
\&.(x M begin index entry
\&.(z M begin floating keep
\&.)c M end centered block
\&.)z M end floating keep
\e*\fI\&x\fP F\(sc interpolate string \fI\&x\fP
\e*(\fI\&xx\fP F\(sc interpolate string \fI\&xx\fP
\e** S optional footnote tag string
\&.++ M set paper section type
\e0 F\(sc unpaddable digit-width space
\&.1c M revert to single column output
\&.2c M begin two column output
\eL\'\fI\&d\fP\' F\(sc vertical line drawing function for distance \fI\&d\fP
\&.GE M\(de end \fIgremlin\fP picture
\&.GF M\(de end \fIgremlin\fP picture (with flyback)
\&.GS M\(de start \fIgremlin\fP picture
\&.IE M\(de end \fIideal\fP picture
\&.IF M\(de end \fIideal\fP picture (with flyback)
\&.IS M\(de start \fIideal\fP picture
\&.PE M\(de end \fIpic\fP picture
\&.PF M\(de end \fIpic\fP picture (with flyback)
\&.PS M\(de start \fIpic\fP picture
\&.TH M end header of table
\en(\&.$ R\(sc number of arguments to macro
\en(\&.i R\(sc current indent
\en(\&.l R\(sc current line length
\en(\&.s R\(sc current point size
\e^ F\(sc 1/12 em narrow space
\&.ad M\(sc set text adjustment
\&.af M\(sc assign format to register
\&.am M\(sc append to macro
\&.ar M set page numbers in Arabic
\&.as M\(sc append to string
\en(bi R display (block) indent
\&.bl M blank lines (even at top of page)
\en(bm R bottom title margin
\&.br M\(sc break (start new line)
\en(bs R display (block) pre/post spacing
\en(bt R block keep threshold
\en(ch R current chapter number
\&.ds M\(sc define string
\en(dw R\(sc current day of week
\e*(dw S current day of week
\en(dy R\(sc day of month
\ee F\(sc printable version of \e
\&.ef M set footer (even numbered pages only)
\&.eh M set header (even numbered pages only)
\&.el M\(sc else part of conditional
\en(es R equation pre/post space
\ef\fI\&f\fP F\(sc inline font change to font \fI\&f\fP
\ef(\fI\&ff\fP F\(sc inline font change to font \fI\&ff\fP
\&.fc M\(sc set field characters
\&.fi M\(sc fill output lines
\en(fi R footnote indent (first line only)
\en(fp R footnote pointsize
\en(fs R footnote prespace
\en(fu R footnote undent (from right margin)
\eh\'\fI\&d\fP\' F\(sc local horizontal motion for distance \fI\&d\fP
\&.hc M\(sc set hyphenation character
\&.hl M draw horizontal line
\&.hx M suppress headers and footers on next page
\&.hy M\(sc set hyphenation mode
\&.ie M\(sc conditional with else
\en(ii R indented paragraph indent
\&.in M\(sc indent (transient, use .ba for pervasive)
\&.ip M begin indented paragraph
\el\'\fI\&d\fP\' F\(sc horizontal line drawing function for distance \fI\&d\fP
\&.lc M\(sc set leader repetition character
\&.lp M begin left justified paragraph
\e*(lq S left quote marks
\&.ls M\(sc set multi-line spacing
\&.m1 M set space from top of page to header
\&.m2 M set space from header to text
\&.m3 M set space from text to footer
\&.m4 M set space from footer to bottom of page
\&.mc M\(sc insert margin character
\&.mk M\(sc mark vertical position
\en(mo R\(sc month of year
\en\fI\&x\fP F\(sc interpolate number register \fI\&x\fP
\en(\fI\&xx\fP F\(sc interpolate number register \fI\&xx\fP
\&.n1 M number lines in margin
\&.n2 M number lines in margin
\&.na M\(sc turn off text adjustment
\&.ne M\(sc need vertical space
\&.nf M\(sc don't fill output lines
\&.nh M\(sc turn off hyphenation
\&.np M begin numbered paragraph
\&.nr M\(sc set number register
\&.ns M\(sc no space mode
\e*o S circle (e.g., for Norse A\*o)
\&.of M set footer (odd numbered pages only)
\&.oh M set header (odd numbered pages only)
\&.pd M print delayed text
\en(pi R paragraph indent
\&.pl M\(sc set page length
\&.pn M\(sc set next page number
\en(po R simulated page offset
\en(pp R paragraph pointsize
\en(ps R paragraph prespace
\en(qi R quote indent (also shortens line)
\en(qs R quote pre/post space
\&.rm M\(sc remove macro or string
\&.rn M\(sc rename macro or string
\&.ro M set page numbers in roman
\e*(rq S right quote marks
\&.rr M\(sc remove register
\&.rs M\(sc restore spacing
\&.rt M\(sc return to vertical position
\es\fI\&S\fP F\(sc inline size change to size \fI\&S\fP
\en(sf R section title font
\&.sh M begin numbered section
\en(si R relative base indent per section depth
\&.sm M set argument in a smaller pointsize
\&.so M\(sc source input file
\en(so R additional section title offset
\&.sp M\(sc vertical space
\en(sp R section title pointsize
\en(ss R section prespace
\&.sx M change section depth
\&.sz M set pointsize and vertical spacing
\&.ta M\(sc set tab stops
\&.tc M\(sc set tab repetition character
\&.ti M\(sc temporary indent (next line only)
\&.tl M\(sc three part title
\en(tm R top title margin
\&.uh M unnumbered section
\&.ul M\(sc underline next line
\ev\'\fI\&d\fP\' F\(sc local vertical motion for distance \fI\&d\fP
\e*v S inverted `v' for czeck ``e\*v''
\ew\'\fI\&S\fP\' F\(sc return width of string \fI\&S\fP
\&.xl M set line length (local)
\en(xs R index entry prespace
\en(xu R index undent (from right margin)
\en(yr R\(sc year (last two digits only)
\en(zs R floating keep pre/post space
\e{ F\(sc begin conditional group
\e| F\(sc 1/6 em narrow space
\e} F\(sc end conditional group