groff_me

Name
Synopsis
Description
Name space
Macros
Registers
Strings
Files
Notes
See also

Name

groff_me - “me” macro package for formatting roff documents

Synopsis

groff -me [option ...] [file ...] groff -m me [option ...] [file ...]

Description

The GNU implementation of the me macro package is part of the groff document formatting system. The me package of macro definitions for the roff language provides a convenient facility for preparing technical papers in various formats. This version is based on the me distributed with 4.4BSD and can be used with the GNU troff formatter as well as those descended from AT&T troff.

Some formatter requests affect page layout unpredictably when used in conjunction with this package; however, the following may be used with impunity after the first call to a paragraphing macro like lp or pp. Some arguments are optional; see groff(7) for details, particularly of requests whose argument list is designated with an ellipsis. An asterisk * marks groff extensions.

adcset text adjustment mode to cafr fassign format f to register ram m eappend to macro m until e calledass tappend rest of line t to string sbp nbegin new page numbered nbrbreak output linecencenter next n output linescpnen-/disable AT&T troff compatibility mode*dem edefine macro m until e calleddotinterpret input t with compatibility mode off*dss tdefine rest of line t as string seltinterpret t if corresponding ie falsefcc dset field delimiter c and padding glyph dfienable fillinghccset hyphenation character to chymset automatic hyphenation mode to miep tas if, but enable interpretation of later elifp tif condition p, interpret rest of line tinhset indentation to distance hlccset leader repetition glyph to clsnset line spacing to nmc c hset (right) margin glyph to c at distance hmk rmark vertical position in register rnadisable adjustment of textnevneed vertical space of distance vnfdisable fillingnhdisable automatic hyphenationnrr n iassign register r value n with auto-increment insbegin no-space modeplvset page length to vpn nset next page number to npohset page offset to hrjnright-align next n output lines*rm mremove macro, string, or request mrnm nrename macro, string, or request m to nrrrremove register rrsresume spacing (end no-space mode)rtvreturn to vertical position set by mk, or vsofsource (interpolate) input file fspninsert n lines of vertical spaceta. . . set tab stopstccset tab repetition glyph to ctihset temporary indentation (next line only) to htl. . . output three-part titletr. . . translate charactersulnunderline next n output lines

Except on title pages (produced by calling tp), me suppresses the output of vertical space at the tops of pages (after the output of any page header); the sp request will thus not work there. You can instead call bl or enclose the desired spacing request in a diversion, for instance by calling (b and )b. me also intercepts the ll request; see the “me Reference Manual” for details.

Name space

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 sequence of letters and numerals with at least one uppercase letter. (For portability between BSD and groff me, limit names to two characters, and avoid the name [ (left square bracket).) The names employed by any preprocessors in use should also not be repurposed.

Macros

$0post-section heading hook$1pre-section depth 1 hook$2pre-section depth 2 hook$3pre-section depth 3 hook$4pre-section depth 4 hook$5pre-section depth 5 hook$6pre-section depth 6 hook$Cpost-chapter title hook$Hpage/column heading hook$coutput chapter number and title$foutput footer$houtput header$poutput section heading$soutput footnote area separator(bbegin block(cbegin centered block(dbegin delayed text(fbegin footnote(lbegin list(qbegin long quotation(xbegin index entry(zbegin floating keep)bend block)cend centered block)dend delayed text)fend footnote)lend list)qend long quotation)xend index entry)zend floating keep++set document segment type+cbegin chapter1cend multi-column layout2cbegin multi-column layoutENend eqn equationEQbegin eqn equationGEend grn picture with drawing position at bottomGFend grn picture with drawing position at topGSstart grn pictureIEend ideal picture with drawing position at bottomIFend ideal picture with drawing position at topISstart ideal picturePEend pic picture with drawing position at bottomPFend pic picture with drawing position at topPSstart pic pictureTEend tbl tableTHend heading for multi-page tbl tableTSstart tbl tablebembolden argumentbaset base indentationbcbegin new columnbiembolden and italicize argumentbxbox argumentefset even-numbered page footerehset even-numbered page headerepend pagefoset footerheset headerhldraw horizontal linehxsuppress next page’s headers/footersiitalicize argumentipbegin indented paragraphldreset localization and date registers and strings*llset line lengthlpbegin fully left-aligned paragraphnpbegin numbered paragraphofset odd-numbered page footerohset odd-numbered page headerpdoutput delayed textppbegin first-line indented paragraphqquote argumentrset argument in romanrereset tab stopsshbegin numbered sectionsmset argument at smaller type sizesxchange section depthszset type size and vertical spacingtpbegin title pageuunderline argumentuhbegin unnumbered sectionxlset line length (local)xpoutput index

Some macros are provided for “old” roff(1) compatibility. The “me Reference Manual” describes alternatives for modern documents.

aruse Arabic numerals for page numbersblinsert space (even at page top; cf. sp)ixset indentation without breakm1set page top to header distancem2set header to text distancem3set text to footer distancem4set footer to page bottom distancen1begin output line numberingn2end or alter output line numberingpabegin pagerouse Roman numerals for page numbersskskip next page

Registers

$0section depth$1first section number component$2second section number component$3third section number component$4fourth section number component$5fifth section number component$6sixth section number component$ccurrent column number$ddelayed text number$ffootnote number$iparagraph base indentation$lcolumn width$mnumber of available columns$pnumbered paragraph number$scolumn spacing (indentation)bidisplay (block) indentationbmdistance from text area to page bottombsdisplay (block) pre/post spacebtblock threshold for keepschcurrent chapter numberdfdisplay fontdvvertical spacing of displayed text (as percentage)*esequation pre/post spacefffootnote fontfifootnote indentation (first line only)fmfooter marginfpfootnote type size in pointsfsfootnote prespacefufootnote undent (right indentation)hmheader marginiiindented paragraph indentationnoline numbering offset*pfparagraph fontpiparagraph indentationpopage offsetppparagraph type size in pointspsparagraph prespaceqilong quotation left/right indentationqplong quotation type size in pointsqslong quotation pre/post spacesfsection title fontsisection indentation per level of depthsoadditional section title offsetspsection title type size in pointssssection prespacesxsuper/subscript line height increase*tftitle fonttmdistance from page top to text areatptitle type size in pointstvvertical spacing of text (as percentage)*xsindex entry prespacexuindex undent (right indentation)y2year of the century*y4year*yryear minus 1900zsfloating keep pre/post space

Strings

#delayed text marker$nconcatenated section number*footnote markerem dash<begin subscripting>end subscriptingdwweekday namelqleft double quotation markmomonth namerqright double quotation marktddatewaterm for “appendix” used by .$c*wcterm for “chapter” used by .$c*{begin superscripting}end superscripting

Files

/usr/local/share/groff/1.23.0/tmac/e.tmac

implements the package.

/usr/local/share/groff/1.23.0/tmac/refer-me.tmac

implements refer(1) support for me.

/usr/local/share/groff/1.23.0/tmac/me.tmac

is a wrapper enabling the package to be loaded with “groff -m me”.

Notes

Early roff macro packages often limited their names to a single letter, which followed the formatter’s m flag letter, resulting in mm, ms, mv, mn, and so on. The “e” in “me” stands for “Eric P. Allman”, who wrote the macro package and the original technical papers documenting it while an undergraduate at the University of California.

See also

Two manuals are available in source and rendered form. On your system, they may be compressed and/or available in additional formats.
/usr/local/share/doc/groff-1.23.0/meintro.me
/usr/local/share/doc/groff-1.23.0/meintro.ps

is “Writing Papers with Groff Using -me”, by Eric P. Allman, adapted for groff by James Clark.

/usr/local/share/doc/groff-1.23.0/meref.me
/usr/local/share/doc/groff-1.23.0/meref.ps

is the “me Reference Manual”, by Eric P. Allman, adapted for groff by James Clark and G. Branden Robinson.

Groff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary groff manual. You can browse it interactively with “info groff”.

For preprocessors supported by me, see eqn(1), grn(1), pic(1), refer(1), and tbl(1).

groff(1), troff(1), groff(7)