diff options
Diffstat (limited to '')
-rw-r--r-- | doc/meref.me.in | 2439 |
1 files changed, 2439 insertions, 0 deletions
diff --git a/doc/meref.me.in b/doc/meref.me.in new file mode 100644 index 0000000..bc5eb62 --- /dev/null +++ b/doc/meref.me.in @@ -0,0 +1,2439 @@ +.\" Copyright (c) 1986, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in +.\" the documentation and/or other materials provided with the +.\" distribution. +.\" 3. [Deleted. See +.\" ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change] +.\" 4. Neither the name of the University nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +.\" PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR +.\" CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +.\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +.\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)ref.me 8.2 (Berkeley) 06/01/94 +.\" +.\" Modified by jjc@jclark.com and g.branden.robinson@gmail.com for +.\" groff. +.\"UC 7 +.nr fi 1n +.nr sx 0 +.\"pn 0 +.ds MO @VERSION@ +.de TL \" *** title line +.lp +.di XX +.. +.ie \n(.g \{\ +.de DE +\?\h'|\\n(DIu'\c\? +.. +.\} +.el \{\ +.de DE +\\\\h'|\\\\n(DIu'\\\\c +.. +.\} +.am DE +.br +.di +.in +\\n(DIu +.ti 0 +.XX +.rm XX +.. +.ds UG groff\" upright "groff" for use outside of running text +.ds UM me\" upright "me" +.ds G \fI\*(UG\fP\" +.ds N \fInroff\fP\" +.ds T \fItroff\fP\" +.ds ME \fI\*(UM\fP\" +.ds MR \f(BI\*(UM\fP Reference Manual\" +.\" Compute an indentation for the macro and string synopses based on +.\" the length of the longest entry. +.nr DI \w'.sh \(+-N T a b c d e f'+2n +.he '\*(MR''%' +.de NR +.b "\en\\$1" "\\$2" +.. +.de ST +.b "\e*\\$1" "\\$2" +.. +.\"sc +.\"eh 'USD:20-%''\-me Reference Manual' +.\"oh '\-me Reference Manual''USD:20-%' +.+c +.ce 20 +.sz 14 +.b "\*(MR" +.sz +.sp +.i "for \fR\*(UG \*(UM\fP version \*(MO*" +.(f +* based on \fIe.tmac\fP 8.1 from 4.4BSD +.)f +.sp 2 +.ul +Eric P. Allman +.sp +.i "Adapted for \fR\*(UG\fP by James Clark and G.\& Branden Robinson" +.ce 0 +.sp 4 +.pp +This document describes +in terse form +the features +of the \*(ME macro package +for \*G. +Some familiarity with the latter is assumed. +Specifically, +the reader should understand +breaks; +filling; +adjustment; +font selection; +type sizes; +the definition and use of +registers, +strings, +and macros; +and typographical units of measurement: +points, ems, ens, and vees. +For a more casual introduction +to text processing, +refer to +.\" the document \" slack phrasing for widow/orphan control +.q "Writing Papers with \*G using \-\*(ME" . +.pp +Many of the package's rendering parameters +can be adjusted through +registers, +strings, +and macro calls. +Macro arguments are denoted with lowercase letters for +numeric values +(suffixed with a scaling unit if appropriate) +and with uppercase for text arguments. +Default parameter values are shown in square brackets. +The notation +.i \(+-n +indicates a numerical value with an optional leading sign. +Without the sign, +it assigns a value +.i n. +With it, +it expresses alteration of an existing value by the amount +.i n. +\*(ME's font registers may be set only to mounting positions. +Position zero tells \*(ME to perform no font change; +the font of the preceding text +is used instead. +Position zero is a +.q pseudo-font ; +that is, +it is interpreted and handled by the macros. +In contrast, +using position zero +may produce unexpected results +in a font selection escape sequence such as +.b \ef0 , +because those are interpreted directly by \*T. +\*(ME's type size registers support only integral values in points. +Changes to parameters +that affect the layout of the page +(notably page length and vertical margins) +should be done before calling +any paragraphing or sectioning macros. +Normally, +vertical space is suppressed at the top of a page +if no text has yet appeared +(page headers notwithstanding). +.pp +\*G measures distances +in device-specific basic units, +so it is often necessary +to specify measurements with a scaling unit. +For instance, +to set the paragraph indentation +to eight ens, +input +.q ".nr pi 8n" . +.q ".nr pi 8" +makes the paragraph indentation eight basic units, +or 8/72,000 inches on +.i grops, +\*G's PostScript output driver. +.pp +Registers and strings +with names of the form +.b $ \c +.bi x +may be used in expressions and text +but should not be changed. +Macros with names of the form +.b $ \c +.bi x +are +.i hooks, +called internally by \*(ME, +and can be redefined +to alter their function. +This may be a sensitive operation; +look at the macro definition in the +.i e.tmac +file before changing it. +If you don't require a given hook, +(re)define it as empty instead of removing it. +.pp +Objects in \*(ME +follow a rigid naming convention. +To avoid conflict, +any user-defined register, +string, +or macro +names should be single numerals or uppercase letters, +or any longer character sequence +including at least one uppercase letter.\** +.(f +\** +For portability between BSD and \*G \*(ME, +limit names to +two characters, +and avoid names starting with +.b [ +(left square bracket). +.)f +The names employed +by any preprocessors in use +should also not be repurposed. +.\" dead-tree pagination +.br +.ne 8v +.sh 1 "Paragraphing" +.TL +.b .lp +.DE +Begin left-aligned paragraph. +Centering, +right-alignment, +and underlining are canceled. +The font is set to +.NR (pf +[1], +the type size +to +.NR (pp +[10p], +and vertical spacing +(text baseline spacing) +to +.NR (tv +[120]% +of the type size. +Vertical space of +.NR (ps +[0.35v] +is inserted +before the paragraph. +The indentation is reset +to +.NR ($i +[0] +plus +.NR (po +[0] +unless the paragraph +is inside a display +(see +.b .ba ). +At least +the first two output lines +of the paragraph +are kept together +on a page. +.TL +.b .pp +.DE +Like +.b .lp , +but apply a (further) indentation of +.NR (pi +[5n] +to the first output line. +.TL +.b .ip +.i T +.i i +.DE +Like +.b .lp , +but set the paragraph +with an optional hanging tag +.i T +[empty] +and the remainder indented by +.i i +[\c +.NR (ii +[5n]]. +The tag +.i T +is +.q exdented +(the opposite of +.i in dented). +Any spaces in +.i T +must be unbreakable. +If +.i T +does not fit in the space +.i i, +.b .ip +breaks the line after +.i T . +.TL +.b .np +.DE +Like +.b .ip , +but tag the paragraph with a number in parentheses, +starting at 1. +Each subsequent +.b .np +call increments it. +The paragraph number is stored in +.NR ($p +and reset to 1 by +.b .lp , +.b .pp , +.b .bu , +.b .sh , +and +.b .sx . +.TL +.b .bu +.DE +Like +.b .ip , +except that the tag is a bullet (\(bu). +No vertical space is inserted +between adjacent bulleted paragraphs, +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +enabling the construction of compact itemized lists. +.sh 1 "Sectioning" +.pp +Numbered sections +are similar to paragraphs +except that a +section number of the form +.q 1.2.3 +is automatically +generated for each. +\*(ME supports up to six levels of sectioning; +any given section has a +.i depth +that determines +the quantity of components +(separated by dots) +shown in its section number. +Unnumbered section headings are similar, +except that no number is prefixed +to the section title. +.TL +.b .sh +.i \(+-n +.i T +.i "a b c d e f" +.DE +Begin section with numbered heading +of depth +.i \(+-n +[+0] +and optional title +.i T +[empty]. +Vertical space of +.NR (ss +[1v] +precedes the heading. +The components +of the section number +are maintained in +.NR ($1 +through +.NR ($6 ; +combined, +they are available in +.ST ($n . +Automatic section numbering at all depths begins at 1. +The heading is set in font +.NR (sf +[3] +at size +.NR (sp +[10p] +and uses the indentation of its parent depth; +a further indentation of +.NR (so +[0] +is applied only to its output line. +The section number is followed by a period, +after which the typeface is set +to the paragraph font +.NR (pf +at size +.NR (pp +so that content may follow immediately +on the same output line. +.b .sh +ensures that there is enough room +to format the section heading +with the beginning of a paragraph on the same page +(about 3 lines total). +If any of +.i a +through +.i f +[all empty] +is specified, +each component of the section number +is assigned the corresponding argument +instead of being automatically adjusted. +A hyphen +(\c +.q \- ) +for a component argument +prevents its alteration. +If +.i T +is an underscore +(\c +.q _ ), +the section depth and numbering are reset, +the base indentation is not, +and nothing is output\(em\c +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +this is useful to automatically +coordinate section numbers with +chapter numbers. +If all components are zero, +no number is output. +.TL +.b .sx +.i \(+-n +.DE +Go to section depth +.i \(+-n +[\-1], +but emit no section heading +and do not increment the section number. +This has the effect of an +.b .lp +call +at the new depth. +.TL +.b .uh +.i T +.DE +Begin unnumbered section. +Like +.b .sh , +without the section numbering features. +.TL +.b .$p +.i T +.i B +.i n +.DE +Output section heading. +.i T +is the title, +.i B +is the concatenated number, +and +.i n +is the depth. +These parameters are not always present; +.b .sh +passes all three, +.b .uh +only the first, +and +.b .sx +all three, +but the first two +are empty. +If +.i n +is present, +the section indentation is set to +.NR (si +times\~\c +.i n . +.TL +.b .$0 +.i T +.i B +.i n +.DE +This hook macro, +normally empty, +is called automatically +by +.b .sh +and +.b .uh +after they call +.b .$p , +and is passed the same arguments. +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +You can define it to, +for instance, +automatically put +each section title +into a table of contents +using +.b .(x +and +.b .)x . +.TL +.b .$ \c +.bi n +.DE +These hook macros +(where +.i n +is an integer 1\(en6) +are called by +.b .$p +just before it outputs +a section heading +of depth +.i n. +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +They could be used +to obtain section depth-dependent spacing. +.sh 1 "Headers, Footers, and Margins" +.ds TP \(aq\,\fIL\/\fP\(aq\,\fIM\/\fP\(aq\,\fIR\/\fP\(aq +.pp +Headers and footers +are known as +.i "three-part titles" +for their left, +middle, +and right-hand components +.i L, +.i M, +and +.i R. +The components are separated +by a +.i delimiter, +shown here as a neutral apostrophe, +but which can be any character +that does not occur in any of the components. +Any defined title is +placed on the page automatically, +set in font +.NR (tf +[3] +at size +.NR (tp +[10p]. +Each title definition +applies starting with the +.i next +page; +titles intended for output on the first page +should be defined prior to any sectioning or paragraphing macro calls. +A title +must be quoted +if it contains more than two adjacent spaces +or more than eight spaces total. +.pp +The placement +of headers and footers +is controlled by four registers +initialized to values scaled +with respect to the default type size and vertical spacing. +.NR (hm +[4v] +is the distance from the top of the page +to the top of the header, +.NR (fm +[3v] +that from the bottom of the page +to the bottom of the footer, +.NR (tm +[7v] +that from the top of the page +to the top of the text, +and +.NR (bm +[6v] +that from the bottom of the page +to the (nominal) bottom of the text. +.pp +\*(ME uses \*T's environment 0 for body text, +1 for keeps +(see below), +and 2 for headers and footers. +The default line length is two inches less than the page width +(e.g., +6.5i on U.S.\& letter paper). +The default page offset +(left margin) +is determined by the output device; +it is typically 1.0i on typesetting devices and 0 on terminals. +.TL +.b .xl +.i \(+-n +.DE +Set line length to +.i n +[see above] +only in the current environment. +.TL +.b .ll +.i \(+-n +.DE +Set line length to +to +.i n +[see above] +in all environments used by \*(ME,\** +.(f +\** +\*(ME uses only the three environments of AT&T \*T, +but in GNU \*T, +the user can create additional ones. +.b .ll +works like +.b .xl +for the latter. +.)f +and store it in +.NR ($l . +This macro should not be used +after output has begun, +and particularly not in multi-column layouts. +.TL +.b .he +\*(TP +.DE +Define header +to be placed at the top +of every page. +.TL +.b .fo +\*(TP +.DE +Define footer +to be placed at the bottom +of every page. +.TL +.b .eh +\*(TP +.DE +Define header +to be placed at the top +of every even-numbered page. +.TL +.b .oh +\*(TP +.DE +Define header +to be placed at the top +of every odd-numbered page. +.TL +.b .ef +\*(TP +.DE +Define footer +to be placed at the bottom +of every even-numbered page. +.TL +.b .of +\*(TP +.DE +Define footer +to be placed at the bottom +of every odd-numbered page. +.TL +.b .hx +.DE +Suppress headers and footers +on the next page. +.TL +.b .$h +.DE +Output the page header. +Care should be taken when redefining this macro. +Doing so +can disable the +.b .he , +.b .fo , +.b .eh , +.b .oh , +.b .ef , +and +.b .of +macros, +as well as the chapter-style title feature +of +.b .+c . +.TL +.b .$f +.DE +Output the page footer; +the same comments apply +as to +.b .$h . +.TL +.b .$H +.DE +This hook macro is called +at the top of each page +(after the header and any +pending floating keeps are emitted) +and of each column in multi-column mode. +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +Use it for column headings. +.sh 1 "Displays" +.pp +Display macros enclose material; +their names are of the form +.b .( \c +.bi x +and +.b .) \c +.bi x , +and must be paired. +Not all display types can nest +with themselves or each other. +All displays except centered blocks +and long quotations +are preceded and followed +by an extra +.NR (bs +[0.35v] +of vertical space +and use a vertical spacing of +.NR (dv +[120]%. +Long quotation pre- and post-space is stored in a dedicated register, +while centered blocks have none; +both use the vertical spacing of normal text, +.NR (tv . +.TL +.b .(l +.i A +.i F +.DE +Begin list. +Text until +.b .)l +is set in font +.NR (df +[0] +with filling disabled. +If +.i A +[\c +.b I ] +is +.b I , +the list is indented by +.NR (bi +[4m]; +if +.b M , +it is set at the left margin; +if +.b L , +it is left-aligned +(distinguishably from +.b M +only if the base indentation +is not zero); +and if +.b C , +the list is centered on a line-by-line basis. +If +.i F +[empty] +is +.b F , +filling is enabled. +.TL +.b .)l +.DE +End list. +.\" dead-tree pagination +.br +.ne 4v +.TL +.b .(q +.DE +Begin long quotation. +Text until +.b .)q +is filled, +indented on the left and right +by +.NR (qi +[4n], +preceded and followed +by +.NR (qs +[0.35v] +space, +and set at type size +.NR (qp +[\-1p]. +.TL +.b .)q +.DE +End long quotation. +.TL +.b .(b +.i A +.i F +.DE +Begin a block, +a form of +.i keep: +\*(ME tries to avoid breaking a page +or column between +.b .(b +and +.b .)b . +Such a break is allowed anyway +if respecting the keep +would leave more than +.NR (bt +[0] +vees of blank space +below it. +If +.NR (bt +is zero, +this threshold feature +is disabled: +the break will not occur within the keep. +The font and +.i A +and +.i F +arguments are handled as with +.b .(l . +.TL +.b .)b +.DE +End block. +.\" dead-tree pagination +.br +.ne 3v +.TL +.b .(z +.i A +.i F +.DE +Begin floating keep. +Like +.b .(b , +except that +.i A +defaults to +.b M +and the keep +.i floats +to the bottom of the page or column +if it fits, +or the top of the next otherwise. +Its position relative to adjacent formatted text +is thus flexible. +.NR (zs +[1v] +space +precedes and follows +a floating keep. +.TL +.b .)z +.DE +End floating keep. +.TL +.b .(c +.DE +Begin centered block. +Input until +.b .)c +is collected, +its longest output line centered, +and the remainder aligned with respect to that line; +contrast with the line-by-line centering obtained with +\(lq\c +.b ".(b C" \(rq. +.TL +.b .)c +.DE +End centered block. +.sh 1 "Annotations" +.pp +Some annotation macros are also mandatorily paired enclosures, +as display macros are. +.TL +.b .(d +.DE +Begin delayed text. +Input until +.b .)d +is saved for later output by +.b .pd . +Delayed text regions are numbered +starting at 1; +the number is kept in +.NR ($d +and in the associated string +.ST # . +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +Endnotes are one application. +.TL +.b .)d +.DE +End delayed text. +.NR ($d +and the associated string +.ST # +are incremented. +.TL +.b .pd +.DE +Emit delayed text: +output everything accumulated with +.b .(d +since the last call to +.b .pd . +The delayed text number is reset to 1. +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +This might be used +at the end of each chapter. +.TL +.b .(f +.DE +Begin footnote. +Input until +.b .)f +is saved for output +when the foot of the page is reached. +Footnotes are numbered +starting at 1; +the number is kept in +.NR ($f +and in the associated string +.ST * . +The text of the footnote +floats to the bottom +of the page +and set in font +.NR (ff +[1] +at size +.NR (fp +[8p]. +Each entry +is preceded by +.NR (fs +[0.2v] +space, +indented +.NR (fi +[3n] +on its first line, +and +.q undented +(indented from the right margin) +by +.NR (fu +[0]. +Footnotes line up underneath +columns in the page layout. +.\" XXX: Quantify when debugged. See Savannah #58447, #63163, #63164. +If the footnote's content +does not fit on the page, +it carries over +to the next. +.TL +.b .)f +.DE +End footnote. +.NR ($f +and the associated string +.ST * +are incremented +if the latter has been interpolated +outside a footnote. +.TL +.b .$s +.DE +Output footnote separator: +draw a horizontal line up to 2 inches wide. +Called by +.b .(f . +Any redefinition should produce output +no more than one vee in height. +.TL +.b .(x +.i X +.DE +Begin index entry. +Input until +.b .)x +is saved in an index named +.i X +[\c +.b x ] +until called up with +.b .xp. +Each entry is preceded +by +.NR (xs +[0.2v] +of vertical space +and undented by +.NR (xu +[0.5i]; +that amount of space is reserved +on the right end of the line +for the +(possibly affixed) +page number. +.TL +.b .)x +.i P +.i A +.DE +End index entry. +The entry +is rendered with a +.i leader +(row of dots) +up to an affix +(such as a volume number and +separating punctuation) +.i A +[empty] +followed by +.i P +[\c +.NR % ] +right-aligned on the last line of the entry. +If +.i A +is specified, +.i P +must be as well. +If +.i P +is an underscore, +the leader, +.i P, +and any +.i A +are suppressed. +.TL +.b .xp +.i X +.DE +Emit index +.i X +[\c +.b x ] +using the current font and type size +with display vertical spacing +(\c +.NR (dv ). +.\" dead-tree pagination +.br +.ne 4v +.sh 1 "Columnated Output" +.TL +.b .2c +.i \(+-s +.i n +.DE +Enter multi-column mode, +formatting text in +.i n +[2] +columns of equal width. +The column separation +(\c +.q gutter ) +is set to +.i \(+-s +[4n], +saved +in +.NR ($s , +and persists until changed by this macro. +The +.i n +columns with +.i n \-1 +gutters +fill the single-column line length; +each column's line length +is stored in +.NR ($l . +The current column number +is in +.NR ($c +and the number of columns in +.NR ($m . +.TL +.b .1c +.DE +Leave multi-column mode; +return to single-column layout. +.TL +.b .bc +.DE +Begin new column. +Like +.b .bp , +but begin a column +on a new page +only if necessary. +.\" dead-tree pagination +.br +.ne 4v +.sh 1 "Type Size and Font Styles" +.TL +.b .sz +.i \(+-p +.DE +Set the type size to +.i \(+-p +[10p], +and the vertical spacing per +.NR (tv . +These do +.i not +persist beyond many \*(ME macro calls: +paragraph macros reset +the type size and vertical spacing. +Similarly, +headers/footers, +section headings, +long quotations, +footnotes, +and +chapter titles +alter them. +.pp +\*(ME assumes that font positions 1 through 4 correspond to +roman, +italic, +bold, +and bold-italic typefaces, +respectively. +Use the +.b .fp +request to mount your preferred fonts in these positions. +.pp +The following macros +style or decorate an argument +.i W +and accept an optional second argument +.i X, +formatted as the previous text without intervening space. +To suppress a word break after the call, +populate or suffix +.i X +with +.b \ec . +.TL +.b .r +.i W +.i X +.DE +Set +.i W +in the roman style. +If no parameters, +change to the roman style. +.TL +.b .i +.i W +.i X +.DE +Set +.i W +in italics. +If no parameters, +change to the italic style. +.TL +.b .b +.i W +.i X +.DE +Set +.i W +in boldface. +If no parameters, +switch to the bold style. +.TL +.b .bi +.i W +.i X +.DE +Set +.i W +in bold italics. +If no parameters, +switch to the bold-italic style. +.TL +.b .q +.i W +.i X +.DE +Quote +.i W , +surrounding it with +with +.b \(lq +and +.b \(rq . +.TL +.b .sm +.i W +.i X +.DE +Set +.i W +one point smaller than the surrounding type. +It has no effect in \*N mode. +.TL +.b .u +.i W +.i X +.DE +Underline +.i W. +On typesetting output devices, +this is true underlining, +in contrast to the +.b .ul +request, +which changes to the +.q "underline font" +(usually italics in \*G). +On terminal output devices, +.i W +is surrounded by underscores. +This argument should not be subject to adjustment, +hyphenation, +or breaking; +.b .u +is reliable only when filling is disabled. +.TL +.b .bx +.i W +.i X +.DE +Set +.i W +in a box. +On typesetting output devices, +.i W +is surrounded by rules (lines). +On terminal output devices, +.i W +is simulated with ISO\~6429 color escape sequences +or surrounded by vertical bars. +It is not marked specially on +.i groff 's +.b html +output device. +This argument should not be subject to adjustment, +hyphenation, +or breaking; +.b .bx +is reliable only when filling is disabled. +.sh 1 "Preprocessor Support" +.TL +.b .EQ +.i A +.i T +.DE +Begin +.i \%@g@eqn (1) +equation. +If +.i A +[\c +.b C ] +is +.b C , +the equation is centered; +if +.b I , +indented by +.NR (bi +[4m]; +and if +.b L , +left-aligned. +.i T +[empty] +is a title aligned to the right margin +next to the equation. +See +.q "Typesetting Mathematics \- User's Guide" +by Brian W. Kernighan +and Lorinda L. Cherry. +.TL +.b .EN +.i C +.DE +End +.i \%@g@eqn +equation. +If +.i C +[empty] +is +.b C , +and the equation is followed immediately +by another +.b .EQ , +the texts of each are centered together. +Otherwise, +the equation is typeset +within the page or column +with +.NR (es +[0.5v] +space +above and below it. +.TL +.b .TS +.i H +.DE +Begin (start) +.i \%@g@tbl (1) +table. +Tables are preceded and followed by +.NR (bs +of space. +If +.i H +[empty] +is +.b H , +you can call +.b .TH +after some table rows +to repeat them across columns or pages. +If you want a table to float, +surround the +.b .TS +and +.b .TE +calls with +.b .(z +and +.b .)z +calls. +.TL +.b .TH +.DE +With \(lq\c +.b ".TS H" \(rq, +end the +.i \%@g@tbl +table header. +.TL +.b .TE +.DE +End +.i \%@g@tbl +table. +.TL +.b .PS +.i h +.i w +.DE +Begin +.i \%@g@pic (1) +picture. +.i h +[empty] +and +.i w +[empty], +if present, +scale the image. +.\" XXX: That's vague, but DWB pic and GNU pic reportedly interpret +.\" these arguments differently and there's no room here to discuss it. +.TL +.b .PE +.DE +End +.i \%@g@pic +picture, +leaving the drawing position at the bottom of the picture. +.TL +.b .PF +.DE +End +.i \%@g@pic +picture, +leaving the drawing position at the top of the picture. +.TL +.b .IS +.DE +Begin +.i ideal (1)\** +picture. +.(f +\** +.i groff +does not provide an implementation of the +.i ideal +preprocessor. +.)f +.TL +.b .IE +.DE +End +.i ideal +picture, +leaving the drawing position at the bottom of the picture. +.TL +.b .IF +.DE +End +.i ideal +picture, +leaving the drawing position at the top of the picture. +.TL +.b .GS +.i A +.DE +Begin +.i \%@g@grn (1) +picture. +.i A +[\c +.b C ] +can be +.b C , +.b L , +or +.b R +to center, left-, or right-align +the picture. +.TL +.b .GE +.DE +End +.i \%@g@grn +picture, +leaving the drawing position at the bottom of the picture. +.TL +.b .GF +.DE +End +.i \%@g@grn +picture, +leaving the drawing position at the top of the picture. +.sh 1 "Formal Documents" +.TL +.b .tp +.DE +Begin title page. +Unusually, +.b .sp +calls at the top of the page +.i are +honored. +Headers and footers are suppressed. +The page number +is not incremented +for this page. +.TL +.b .++ +.i S +.i H +.DE +Begin a +.i segment +of an organized document, +affecting the values and formatting +of chapter and page numbers. +The chapter number in +.NR (ch +is reset to\~0. +A segment uses Arabic numerals +for chapter and page numbers +except where noted. +The mandatory segment type argument +.i S +must be one of +.b C +for chapters +(of the main matter), +.b A +for appendices +(uppercase alphabetical chapter numbers), +.b P +for preliminary (\(lqfront\(rq) matter +(such as a foreword; +lowercase Roman page numbers), +.b AB +for an abstract +(page numbering restarts at 1), +or +.b B +for \(lqback\(rq matter, +such as a bibliography. +.b C +or +.b A +may be prefixed with +.b R , +which specifies a restart of page numbering +when +.b .+c +is called within the applicable segment. +If present, +the +.i H +[empty] +parameter defines the new header, +which must be delimited as a three-part title\(em\c +if it contains spaces, +it must furthermore be quoted. +To include the chapter number in +.i H, +use the input sequence +.b "\eEn(ch" .\** +.(f +\** +If you wish to avoid use of the \*G\|\" prevent italic f \ ugliness +.b \eE +extension, +fully +.i eight +backslashes must precede +.q n(ch . +.)f +For example, +\[lq]\c +.b ".++ RA |||\eEn(ch.%|" \[rq] +numbers appendices and pages as +.bi A .\c +.bi n +in the right-hand header, +where +.i A +is the appendix letter +and +.i n +is the page number. +Each subdivision of a segment +(each chapter, +appendix, +etc.\&) +should be preceded by a +.b .+c +call. +It is easier when using +\*T to put the front matter +at the end of the paper, +so that the table of contents +can be collected and put out; +this material can then be resequenced +by a tool that processes the output format, +or physically moved +to the beginning of the printed document. +.TL +.b .+c +.i T +.DE +Begin chapter +(or appendix). +Reset the footnote number +in +.NR ($f +to 1. +If the segment type is +.b RA +or +.b RC , +reset the page number +in +.NR % +to 1. +If +.b .++ +has not been called, +a segment type of +.b C +is assumed. +If a header is defined, +it replaces the footer +on the first page +of each chapter. +If a title +.i T +[empty] +is supplied, +.b .$c +is called. +.TL +.b .$c +.i T +.DE +Format a chapter heading +centered in boldface. +The text +.ST (wc +[\c +.b Chapter ] +is output +if the segment type is +.b C +or +.b RC, +or that in +.ST (wa +[\c +.b Appendix ] +if the segment type is +.b A +or +.b RA. +The chapter number +is incremented and output. \" except for abstract and bibliography segs +If a chapter title +.i T +is present, +it is formatted the same way, +preceded by vertical space. +If the segment type is any of +.b C , +.b RC , +.b A , +or +.b RA , +.b $C +is called. +.TL +.b .$C +.i K +.i N +.i T +.DE +This hook macro +is called by +.b .+c +and +.b .$c . +.i K +is the chapter or appendix term supplied by +.b $c , +.i N +is the chapter or appendix number, +and +.i T +is its title. +.\" TODO: Move the following application note to meintro.me.in or some +.\" future non-introductory me(7) usage manual. +This hook can be used to insert chapter titles +into a table of contents. +.sh 1 "Miscellaneous" +.TL +.b .ld +.DE +Update the +.NR (y2 +and +.NR (y4 +registers based on the current value of +.NR (yr , +reinitialize the localized strings +.ST (dw , +.ST (mo , +.ST (wa , +and +.ST (wc , +and reset +.ST (td +based on the foregoing. +.TL +.b .re +.DE +Reset tab stops to every 0.5i. +.TL +.b .ba +.i \(+-n +.DE +Set the base indentation +to +.i \(+-n +[0]. +Paragraphs, +sections, +and displays +are indented by at least this amount, +stored in +.NR ($i . +Titles and footnotes +are unaffected. +.TL +.b .hl +.DE +Break and draw a horizontal line +of the current line length. +You might call +.b .hl +at the beginning and/or end +of a floating keep +to differentiate +the text from a figure. +.TL +.b .ep +.DE +End this page, +but do not begin the next page. +Useful for forcing out footnotes, +but other than +that hardly ever used. +Must be followed by a +.b .bp +request or the end of input. +.\" dead-tree pagination +.br +.ne 6v +.sh 1 "\f(BIroff\fP Support\fR\**" +.(f +\** +These facilities are provided to aid migration of +\(lqold +.i roff \(rq +documents. +See +.i roff (7) +for a history of +.i roff -related +typesetting systems. +.)f +.pp +.TL +.b .ix +.i \(+-n +.DE +Equivalent to \(lq\|\fB\[aq]in \fI\(+-n\/\fR\(rq. +.TL +.b .bl +.i n +.DE +Equivalent to \(lq\fB.sp \fIN\/\fR\(rq +inside a +.b .(b +block. +.TL +.b .m1 +.i \(+-n +.DE +Set/adjust the space between the top of the page +and the header to/by +.i \(+-n +[4v]. +.TL +.b .m2 +.i \(+-n +.DE +Set/adjust the space between the header +and the first line of text to/by +.i \(+-n +[2v]. +.TL +.b .m3 +.i \(+-n +.DE +Set/adjust the space +between the bottom of the text +and the footer to/by +.i \(+-n +[2v]. +.TL +.b .m4 +.i \(+-n +.DE +Set/adjust the space +between the footer +and the bottom of the page to/by +.i \(+-n +[4v]. +.TL +.b .pa +.i \(+-n +.DE +Equivalent to \(lq\fB.bp \fI\(+-n\/\fR\(rq. +.TL +.b .ro +.DE +Equivalent to \(lq\fB.af % i\fP\(rq. +.TL +.b .ar +.DE +Equivalent to \(lq\fB.af % 1\fP\(rq. +.TL +.b .n1 +.i C +.DE +Number output lines starting from 1. +If +.i C +[empty] +is +.b C , +the line length is reduced +and correspondingly indented; +otherwise, +the page offset is reduced +to accommodate the line number. +The amount in all cases is +.NR (no +[\ew\(aq0000\(aqu +(the width of four numerals +in the current font)]. +.TL +.b .n2 +.i \(+-n +.DE +Stop numbering output lines if +.i n +missing, +otherwise continue with the number modified by +\(+-\c +.i n. +.TL +.b .sk +.DE +Leave the next output page blank +except for headers and footers. +This can reserve space +for a full-page diagram +produced externally +and composited in later. +(To reserve only a partial page, +use \[lq]\c +.b .sv \~\c +.bi n \[rq], +where +.i n +is the amount of space required. +This space will be output immediately +if there is room, +and otherwise +at the top of the next page. +If +.i n +is greater than the space available +on an empty page, +none will be output.) +.sh 1 "Predefined Strings" +.TL +.ST * +.DE +Interpolate footnote number bracketed by superscripting strings: +.ST { \c +.\" \^ avoids 'f\' bad kerning in Times bold; wrong font metrics? +.NR ($f \^\c +.ST } . +.TL +.ST # +.DE +Interpolate delayed text number surrounded by square brackets: +.b [ \c +.NR ($d \c +.b ] . +.TL +.ST { +.DE +Begin superscripting: +move upward and reduce the type size. +The line height is increased above by +.NR (sx +[0.2m] +to accommodate the superscript. +In \*N mode, +output a left square bracket. +.TL +.ST } +.DE +End superscripting: +reverse the motion and type size change of +.ST { . +In \*N mode, +output a right square bracket. +.\" TODO: Move this example to a section on super- and subscripting in +.\" meintro. +.\"For example, +.\"to produce a superscript +.\"you might type +.\".b x \c +.\".ST { \c +.\".b 2 \c +.\".ST } , +.\"which will render as +.\".b x\*{2\*} +.\"on typesetters and as +.\".b x[2] +.\"on terminals. +.TL +.ST < +.DE +Begin subscripting: +move downward and reduce the type size. +The line height is increased below by +.NR (sx +to accommodate the subscript. +In \*N mode, +output a left angle bracket. +.TL +.ST > +.DE +End subscripting: +reverse the motion and type size change of +.ST < . +In \*N mode, +output a right angle bracket. +.\" dead-tree pagination +.br +.ne 6v +.pp +\*G \*(ME provides localized strings +to support documents in several input languages; +see the +.i groff_tmac (5) +man page. +The date-related strings are initialized +based on the current date +when the formatter runs. +To encode a different date in your document, +change the \*T date registers as desired +and then call +.b .ld +to update the strings. +The day of the week is +.i not +recomputed from a new calendar date; +.NR (dw +must be modified manually. +The strings can also be defined directly. +.(b L F +.TL +.ST (dw +.DE +Weekday name. +.TL +.ST (mo +.DE +Month name. +.TL +.ST (td +.DE +The date in a form suitable for correspondence. +Construct other date formats with +.ST (dw , +.NR (dy +(day of the month), +.ST (mo , +.NR (mo +(month of the year), +.NR (y4 +(year), +and +.NR (y2 +(year of the century). +.TL +.ST (wa +.DE +The term +.b .$c +uses for +.q appendix . +.TL +.ST (wc +.DE +The term +.b .$c +uses for +.q chapter . +.)b +.sh 1 "Special Characters" +.pp +For modern documents, +see the +.i groff_char (7) +man page. +.pp +For rendering of legacy \*(ME documents, +the macro package defines several strings that construct accent marks +and two symbols from mathematical set theory. +These strings are limited in multiple respects: +they can have a crude appearance, +they are unrecognizable on character-cell video terminals +because they rely on overstriking, +and they cannot in general be \(lqstacked\(rq, +as is required to correctly render words in +(for example) +Vietnamese. +Preferable \*G alternatives +are presented alongside them in the following table. +.sp +.\" dead-tree pagination +.ne 2v +.ta 5n +\w'There exists'u+2n +\w'Usage'u+3n +\w'Example'u+3n \ ++\w'Output'u+3n +\w'groff'u+3n +\w'Output'u+3n +.nf +.b " Name Usage Example Output \f(BIgroff\fP Output" + Acute \e*\(aq a\e*\(aq a\*' \e[a aa] \[a aa] + Grave \e*\(ga e\e*\(ga e\*` \e[e ga] \[e ga] + Umlaut \e*: u\e*: u\*: \e[u ad] \[u ad] + Tilde \e*\(ti n\e*\(ti n\*~ \e[n a\(ti] \[n a~] + Caret \e*\(ha e\e*\(ha e\*^ \e[e a\(ha] \[e a^] + Cedilla \e*, c\e*, c\*, \e[c ac] \[c ac] + Caron \e*v s\e*v s\*v \e[s ah] \[s ah] + Ring \e*o A\e*o A\*o \e[A ao] \[A ao] + There exists \e*(qe \*(qe \e[te] \[te] + For all \e*(qa \*(qa \e[fa] \[fa] +.fi +.pp +Three further string definitions cause no particular problems but have +no advantage over \*G special character escape sequences +apart from portability to BSD Unix systems. +(The last lacks even that distinction, +since +Unix Version\~7 \*T +supported the +.b \e(em +special character.) +.TL +.ST (lq +.DE +Left double quotation mark. +Use +.b \e(lq +instead. +.TL +.ST (rq +.DE +Right double quotation mark. +Use +.b \e(rq +instead. +.TL +.ST \- +.DE +Em dash. +Use +.b \e(em +instead. +.uh Acknowledgments +.pp +Allman would like to thank +Bob Epstein, +Bill Joy, +and Larry Rowe +for having the courage +to use the \*(ME macros +to produce non-trivial papers +during the development stages; +Ricki Blau, +Pamela Humphrey, +and Jim Joyce +for their help with the documentation phase; +peter kessler +for numerous complaints, +most accompanied by fixes; +and the plethora of people who have contributed ideas +and have given support for the project. +.bp +.uh Summary +.pp +Almost all macros, +strings, +and registers +available in the \*(ME package +are summarized below; +the legacy strings from section +.q "Special Characters" +are omitted. +Selected \*T +requests, +registers, +and escape sequences are included as well; +those listed can generally be used with impunity. +The list is sorted by Unicode code point +(basic Latin subset) +keyed on the identifier: +escape and control characters are disregarded, +as are the escape function selectors for register and string +interpolation, +.b n +and +.b * . +.pp +Each row contains the name of the +macro (or request), +register, +string, +or escape function; +a code for the name's type +(one of the foregoing); +and its description. +The type codes are +.b M +for a macro or \*T +request +(shown prefixed with the control character +.b . , +but the no-break control character +.b \(aq +can also be used), +.b S +for a string +(shown using its interpolation syntax, +.b \e* +or +.b \e*( ), +.b R +for a register +(shown using its interpolation syntax, +.b \en +or +.b \en( ), +and +.b F +for a \*T built-in function +(shown prefixed with the escape character +.b \e ). +.pp +The type code can carry a variety of annotations. +A section sign \(sc indicates features interpreted by \*T +rather than the \*(ME package. +The dagger \(dg and double dagger \(dd identify user-definable macros. +Those marked with +\(dd have default definitions; +changing them may have unexpected side effects. +The degree sign \(de notes features requiring AT&T device-independent +\*T extensions +(ca.\& 1981), +and a square \(sq labels \*G extensions. +.de $H +.ev 1 +.ta \w'\enewline\(sc'u +\w'TYPE'u+2n +.b "Name Type Description" +.ev +.. +.sp +.if t .2c +.if n .(c +.(l L +.$H +\e\fI\,newline\fP F\(sc continue input line +\e" F\(sc comment (to end of input line) +\e*# S delayed text marker +\e$\fI\,n\fP F\(sc interpolate \fIn\/\fPth macro argument +\en($0 R section depth +\&.$0 M\(dg post-section heading hook +\en($1 R first section number component +\&.$1 M\(dg pre-section heading depth 1 hook +\en($2 R second section number component +\&.$2 M\(dg pre-section heading depth 2 hook +\en($3 R third section number component +\&.$3 M\(dg pre-section heading depth 3 hook +\en($4 R fourth section number component +\&.$4 M\(dg pre-section heading depth 4 hook +\en($5 R fifth section number component +\&.$5 M\(dg pre-section heading depth 5 hook +\en($6 R sixth section number component +\&.$6 M\(dg pre-section heading depth 6 hook +\&.$C M\(dg post-chapter title heading hook +\&.$H M\(dg page/column heading hook +\en($c R current column number +\&.$c M\(dd output chapter number and title +\en($d R delayed text number +\en($f R footnote number +\&.$f M\(dd output footer +\&.$h M\(dd output header +\en($i R paragraph base indentation +\en($l R column width +\en($m R number of available columns +\e*($n S concatenated section number +\en($p R numbered paragraph number +\&.$p M\(dd output section heading +\en($s R column spacing (indentation) +\&.$s M\(dd output footnote area separator +\e% F\(sc control hyphenation +\en% R\(sc current page number +\e& F\(sc dummy character +\e(\fI\,xx\fP F\(sc interpolate special character \fIxx\fP +\&.(b M begin block +\&.(c M begin centered block +\&.(d M begin delayed text +\&.(f M begin footnote +\&.(l M begin list +\&.(q M begin long quotation +\&.(x M begin index entry +\&.(z M begin floating keep +\e\(aq F\(sc acute accent +\&.)b M end block +\&.)c M end centered block +\&.)d M end delayed text +\&.)f M end footnote +\&.)l M end list +\&.)q M end long quotation +\&.)x M end index entry +\&.)z M end floating keep +\e*\fI\,x\fP F\(sc interpolate string \fIx\fP +\e*(\fI\,xx\fP F\(sc interpolate string \fIxx\fP +\e** S footnote marker +\&.++ M set document segment type +\&.+c M begin chapter or appendix +\e\- F\(sc minus sign +\e*\- S em dash +\en(.$ R\(sc macro parameter count +\en(.i R\(sc current indentation +\en(.l R\(sc current line length +\en(.p R\(sc current page length +\en(.s R\(sc current type size in points +\e0 F\(sc unadjustable digit-width space +\&.1c M end multi-column layout +\&.2c M begin multi-column layout +\e*< S begin subscripting +\e*> S end subscripting +\&.EN M end \fI@g@eqn\fP equation +\&.EQ M begin \fI@g@eqn\fP equation +\&.GE M\(de end \fI@g@grn\fP picture with position at bottom +\&.GF M\(de end \fI@g@grn\fP picture with position at top +\&.GS M\(de start \fI@g@grn\fP picture +\&.IE M\(de end \fIideal\fP picture with position at bottom +\&.IF M\(de end \fIideal\fP picture with position at top +\&.IS M\(de start \fIideal\fP picture +\eL\(aq\fI\,d\/\fP\(aq F\(sc draw vertical line of length \fId\fP +\&.PE M\(de end \fI@g@pic\fP picture with position at bottom +\&.PF M\(de end \fI@g@pic\fP picture with position at top +\&.PS M\(de start \fI@g@pic\fP picture +\&.TE M end \fI@g@tbl\fP table +\&.TH M end heading for multi-page \fI@g@tbl\fP table +\&.TS M begin \fI@g@tbl\fP table +\e\(ha F\(sc 1/12 em unbreakable hair space +\e_ F\(sc underrule +\e\(ga F\(sc grave accent +\&.ad M\(sc set text adjustment mode +\&.af M\(sc assign register format +\&.am M\(sc append to macro +\&.ar M use Arabic numerals for page numbers +\&.as M\(sc append to string +\&.b M embolden argument +\&.ba M set base indentation +\&.bc M begin new column +\&.bi M embolden and italicize argument +\en(bi R display (block) indentation +\&.bl M insert space (even at page top; cf.\& \fB.sp\fP) +\en(bm R distance from text area to page bottom +\&.bp M\(sc begin new page +\&.br M\(sc break output line +\en(bs R display (block) pre/post space +\en(bt R block threshold for keeps +\&.bx M box argument +\ec F\(sc continue output line +\&.ce M\(sc center output lines +\en(ch R current chapter number +\&.cp M\(sc\(sq toggle AT&T \*T compatibility mode +\&.de M\(sc define macro +\en(df R display font +\&.do M\(sc\(sq operate with compatibility mode off +\&.ds M\(sc define string +\en(dv R\(sq vertical spacing of displayed text (%) +\en(dw R\(sc day of the week +\e*(dw S weekday name +\en(dy R\(sc day of the month +\ee F\(sc printable version of escape character \fB\e\fP +\&.ef M set even-numbered page footer +\&.eh M set even-numbered page header +\&.el M\(sc else part of \fB.ie\fP conditional +\&.ep M end page +\en(es R equation pre/post space +\ef\fI\,f\fP F\(sc inline font change to font \fIf\fP +\ef(\fI\,ff\fP F\(sc inline font change to font \fIff\fP +\&.fc M\(sc set field characters +\en(ff R footnote font +\&.fi M\(sc enable filling +\en(fi R footnote indentation (first line only) +\en(fm R footer margin +\&.fo M set footer +\&.fp M mount font at position +\en(fp R footnote type size in points +\en(fs R footnote prespace +\en(fu R footnote undent (right indentation) +\eh\(aq\fI\,d\/\fP\(aq F\(sc move distance \fId\fP horizontally +\&.hc M\(sc set hyphenation character +\&.he M set header +\&.hl M draw horizontal line +\en(hm R header margin +\&.hx M suppress next page's headers/footers +\&.hy M\(sc set automatic hyphenation mode +\&.i M italicize argument +\&.ie M\(sc conditional with \fB.el\fP +\&.if M\(sc conditional +\en(ii R indented paragraph indentation +\&.in M\(sc set indentation (transient; cf.\& \fB.ba\fP) +\&.ip M begin indented paragraph +\&.ix M set indentation without break +\el\(aq\fI\,d\/\fP\(aq F\(sc draw horizontal line of length \fId\fP +\&.lc M\(sc set leader repetition character +\&.ld M\(sq reset localization and date info +\&.ll M set line length in \fIme\fP environments +\&.lp M begin fully left-aligned paragraph +\e*(lq S left double quotation mark +\&.ls M\(sc set multi-line spacing +\&.m1 M set page top to header distance +\&.m2 M set header to text distance +\&.m3 M set text to footer distance +\&.m4 M set footer to page bottom distance +\&.mc M\(sc set margin character +\&.mk M\(sc mark vertical position (see \fB.rt\fP) +\en(mo R\(sc month of the year +\e*(mo S month name +\en\fI\,x\fP F\(sc interpolate register \fIx\fP +\en(\fI\,xx\fP F\(sc interpolate register \fIxx\fP +\&.n1 M begin output line numbering +\&.n2 M end or alter output line numbering +\&.na M\(sc disable adjustment +\&.ne M\(sc need vertical space +\&.nf M\(sc disable filling +\&.nh M\(sc disable automatic hyphenation +\en(no R\(sq line numbering offset +\&.np M begin numbered paragraph +\&.nr M\(sc set register +\&.ns M\(sc begin no-space mode +\&.of M set odd-numbered page footer +\&.oh M set odd-numbered page header +\&.pa M begin page +\&.pd M output delayed text +\en(pf R paragraph font +\en(pi R paragraph indentation +\&.pl M\(sc set page length +\&.pn M\(sc set next page number +\&.po M\(sc set page offset +\en(po R paragraph offset +\&.pp M begin first-line indented paragraph +\en(pp R paragraph type size in points +\en(ps R paragraph prespace +\&.q M quote argument +\en(qi R long quotation left/right indentation +\en(qp R long quotation type size in points +\en(qs R long quotation pre/post space +\&.r M set argument in roman +\&.re M reset tab stops +\&.rj M\(sq right-align output lines +\&.rm M\(sc remove macro, string, or request +\&.rn M\(sc rename macro, string, or request +\&.ro M use Roman numerals for page numbers +\e*(rq S right double quotation mark +\&.rr M\(sc remove register +\&.rs M\(sc restore spacing (end no-space mode) +\&.rt M\(sc return to vertical position set by \fB.mk\fP +\es\(aq\fI\,\(+-n\/\fP\(aq F\(sc\(de inline type size change\ + to/by \fIn\fP points +\en(sf R section title font +\&.sh M begin numbered section +\en(si R section indentation per level of depth +\&.sk M skip next page +\&.sm M set argument at smaller type size +\&.so M\(sc source (interpolate) input file +\en(so R additional section title offset +\&.sp M\(sc insert space (except at page top; cf.\& \fB.bl\fP) +\en(sp R section title type size in points +\en(ss R section prespace +\&.sx M change section depth +\en(sx R\(sq super/subscript line height increase +\&.sz M set type size and vertical spacing +\&.ta M\(sc set tab stops +\&.tc M\(sc set tab repetition character +\e*(td S today's date +\en(tf R title font +\&.ti M\(sc temporary indentation (next line only) +\&.tl M\(sc output three-part title +\en(tm R distance from page top to text area +\&.tp M begin title page +\en(tp R title type size in points +\&.tr M\(sc translate characters +\en(tv R\(sq vertical spacing of text (%) +\&.u M underline argument +\&.uh M begin unnumbered section +\&.ul M\(sc underline output lines +\ev\(aq\fI\,d\/\fP\(aq F\(sc move distance \fId\fP vertically +\ew\(aq\fI\,S\/\fP\(aq F\(sc interpolate formatted width of \fIS\fP +\e*(wa S\(sq term for \(lqappendix\(rq used by \fB.$c\fP +\e*(wc S\(sq term for \(lqchapter\(rq used by \fB.$c\fP +\&.xl M set line length (current environment) +\&.xp M output index +\en(xs R index entry prespace +\en(xu R index undent (right indentation) +\en(y2 R\(sq year of the century +\en(y4 R\(sq year +\en(yr R\(sc year minus 1900 +\en(zs R floating keep pre/post space +\e{ F\(sc begin conditional group +\e*{ S begin superscripting +\e| F\(sc 1/6 em unbreakable thin space +\e} F\(sc end conditional group +\e*} S end superscripting +\e\(ti F\(sc\(sq unbreakable word space +.)l +.if n .)c +.ds $H \" empty +.\" If we're laying out the final column, `1c` will produce an +.\" unnecessary empty page. If we're not, omitting `1c` will format a +.\" column of headers with nothing underneath. +.if \n($c<\n($m .1c +.\" Local Variables: +.\" mode: nroff +.\" End: +.\" vim: filetype=groff: |