groff_me(7)

πŸŽ€ NAME πŸŽ€

groff_me(7) β€” Miscellaneous Information Manual β€” is the manual page for the β€œme” macro package for formatting roff documents. Bestie, this is your group-chat guide to the me macros, and it's lowkey iconic. πŸ’…

✨ SYNOPSIS ✨

Two ways to summon it, no cap:

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

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

πŸ’– DESCRIPTION πŸ’–

Okay so, 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 gives you 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. Slay. ✨

Heads up, bestie: 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. 🫢

Here's the request roster, and yes, every single one is included:

  • ad c β€” set text adjustment mode to c.
  • af r f β€” assign format f to register r.
  • am m e β€” append to macro m until e called.
  • as s t β€” append rest of line t to string s.
  • bp n β€” begin new page numbered n.
  • br β€” break output line.
  • ce n β€” center next n productive input lines.
  • cp n β€” en-/disable AT&T troff compatibility mode *.
  • de m e β€” define macro m until e called.
  • do t β€” interpret input t with compatibility mode off *.
  • ds s t β€” define rest of line t as string s.
  • el t β€” interpret t if corresponding ie's p false.
  • fc c d β€” set field delimiter c and padding glyph d.
  • fi β€” enable filling.
  • hc c β€” set hyphenation character to c.
  • hy m β€” set automatic hyphenation mode to m.
  • ie p t β€” as if, but enable interpretation of later el.
  • if p t β€” if condition p, interpret rest of line t.
  • in h β€” set indentation to distance h.
  • lc c β€” set leader repetition glyph to c.
  • ls n β€” set line spacing to n.
  • mc c h β€” set (right) margin glyph to c at distance h.
  • mk r β€” mark vertical position in register r.
  • na β€” disable adjustment of text.
  • ne v β€” need vertical space of distance v.
  • nf β€” disable filling.
  • nh β€” disable automatic hyphenation.
  • nr r n i β€” assign register r value n with auto-increment i.
  • ns β€” begin no-space mode.
  • pl v β€” set page length to v.
  • pn n β€” set next page number to n.
  • po h β€” set page offset to h.
  • rj n β€” right-align next n productive input lines *.
  • rm m β€” remove macro, string, or request m.
  • rn m n β€” rename macro, string, or request m to n.
  • rr r β€” remove register r.
  • rs β€” resume spacing (end no-space mode).
  • rt v β€” return to vertical position set by mk, or v.
  • so f β€” source (interpolate) input file f.
  • sp n β€” insert n lines of vertical space.
  • ta ... β€” set tab stops.
  • tc c β€” set tab repetition glyph to c.
  • ti h β€” set temporary indentation (next line only) to h.
  • tl ... β€” output three-part title.
  • tr ... β€” translate characters.
  • ul n β€” underline next n productive input 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 thus does 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. Periodt. πŸ’…

πŸ¦‹ Macros πŸ¦‹

Here's the macro squad β€” every hook, opener, closer, and utility macro, no skipping:

  • $0 β€” post-section heading hook.
  • $1 β€” pre-section depth 1 hook.
  • $2 β€” pre-section depth 2 hook.
  • $3 β€” pre-section depth 3 hook.
  • $4 β€” pre-section depth 4 hook.
  • $5 β€” pre-section depth 5 hook.
  • $6 β€” pre-section depth 6 hook.
  • $C β€” post-chapter title hook.
  • $H β€” page/column heading hook.
  • $c β€” output chapter number and title.
  • $f β€” output footer.
  • $h β€” output header.
  • $p β€” output section heading.
  • $s β€” output footnote area separator.
  • (b β€” begin block.
  • (c β€” begin centered block.
  • (d β€” begin delayed text.
  • (f β€” begin footnote.
  • (l β€” begin list.
  • (q β€” begin long quotation.
  • (x β€” begin index entry.
  • (z β€” begin floating keep.
  • )b β€” end block.
  • )c β€” end centered block.
  • )d β€” end delayed text.
  • )f β€” end footnote.
  • )l β€” end list.
  • )q β€” end long quotation.
  • )x β€” end index entry.
  • )z β€” end floating keep.
  • ++ β€” set document segment type.
  • +c β€” begin chapter.
  • 1c β€” end multi-column layout.
  • 2c β€” begin multi-column layout.
  • EN β€” end eqn equation.
  • EQ β€” begin eqn equation.
  • GE β€” end grn picture with drawing position at bottom.
  • GF β€” end grn picture with drawing position at top.
  • GS β€” start grn picture.
  • IE β€” end ideal picture with drawing position at bottom.
  • IF β€” end ideal picture with drawing position at top.
  • IS β€” start ideal picture.
  • PE β€” end pic picture with drawing position at bottom.
  • PF β€” end pic picture with drawing position at top.
  • PS β€” start pic picture.
  • TE β€” end tbl table.
  • TH β€” end heading for multi-page tbl table.
  • TS β€” start tbl table.
  • b β€” embolden argument.
  • ba β€” set base indentation.
  • bc β€” begin new column.
  • bi β€” embolden and italicize argument.
  • bx β€” box argument.
  • ef β€” set even-numbered page footer.
  • eh β€” set even-numbered page header.
  • ep β€” end page.
  • fo β€” set footer.
  • he β€” set header.
  • hl β€” draw horizontal line.
  • hx β€” suppress next page's headers/footers.
  • i β€” italicize argument.
  • ip β€” begin indented paragraph.
  • ld β€” reset localization and date registers and strings *.
  • ll β€” set line length.
  • lp β€” begin fully left-aligned paragraph.
  • np β€” begin numbered paragraph.
  • of β€” set odd-numbered page footer.
  • oh β€” set odd-numbered page header.
  • pd β€” output delayed text.
  • pp β€” begin first-line indented paragraph.
  • q β€” quote argument.
  • r β€” set argument in roman.
  • re β€” reset tab stops.
  • sh β€” begin numbered section.
  • sm β€” set argument at smaller type size.
  • sx β€” change section depth.
  • sz β€” set type size and vertical spacing.
  • tp β€” begin title page.
  • u β€” underline argument.
  • uh β€” begin unnumbered section.
  • xl β€” set line length (current environment only).
  • xp β€” output index.

Some macros are provided for β€œold” roff(1) compatibility. The β€œme Reference Manual” describes alternatives for modern documents. The old-school crew is right here:

  • ar β€” use Arabic numerals for page numbers.
  • bl β€” insert space (even at page top; cf. sp).
  • ix β€” set indentation without break.
  • m1 β€” set page top to header distance.
  • m2 β€” set header to text distance.
  • m3 β€” set text to footer distance.
  • m4 β€” set footer to page bottom distance.
  • n1 β€” begin output line numbering.
  • n2 β€” end or alter output line numbering.
  • pa β€” begin page.
  • ro β€” use Roman numerals for page numbers.
  • sk β€” skip next page.

πŸ’… Registers πŸ’…

Registers are the little variables me keeps around. Full roster, bestie:

  • $0 β€” section depth.
  • $1 β€” first section number component.
  • $2 β€” second section number component.
  • $3 β€” third section number component.
  • $4 β€” fourth section number component.
  • $5 β€” fifth section number component.
  • $6 β€” sixth section number component.
  • $c β€” current column number.
  • $d β€” delayed text number.
  • $f β€” footnote number.
  • $i β€” paragraph base indentation.
  • $l β€” column width.
  • $m β€” number of available columns.
  • $p β€” numbered paragraph number.
  • $s β€” column spacing (indentation).
  • bi β€” display (block) indentation.
  • bm β€” distance from text area to page bottom.
  • bs β€” display (block) pre/post space.
  • bt β€” block threshold for keeps.
  • ch β€” current chapter number.
  • df β€” display font.
  • dv β€” vertical spacing of displayed text (as percentage) *.
  • es β€” equation pre/post space.
  • ff β€” footnote font.
  • fi β€” footnote indentation (first line only).
  • fm β€” footer margin.
  • fp β€” footnote type size in points.
  • fs β€” footnote prespace.
  • fu β€” footnote undent (right indentation).
  • hm β€” header margin.
  • ii β€” indented paragraph indentation.
  • no β€” line numbering offset *.
  • pf β€” paragraph font.
  • pi β€” paragraph indentation.
  • po β€” page offset.
  • pp β€” paragraph type size in points.
  • ps β€” paragraph prespace.
  • qi β€” long quotation left/right indentation.
  • qp β€” long quotation type size in points.
  • qs β€” long quotation pre/post space.
  • sf β€” section title font.
  • si β€” section indentation per level of depth.
  • so β€” additional section title offset.
  • sp β€” section title type size in points.
  • ss β€” section prespace.
  • sx β€” super/subscript line height increase *.
  • tf β€” title font.
  • tm β€” distance from page top to text area.
  • tp β€” title type size in points.
  • tv β€” vertical spacing of text (as percentage) *.
  • xs β€” index entry prespace.
  • xu β€” index undent (right indentation).
  • y2 β€” year of the century *.
  • y4 β€” year *.
  • yr β€” year minus 1900.
  • zs β€” floating keep pre/post space.

πŸ“ Strings πŸ“

Strings are the little text snippets and special glyphs. Here's every one:

  • # β€” delayed text marker.
  • $n β€” catenated section number.
  • * β€” footnote marker.
  • - β€” em dash.
  • < β€” begin subscripting.
  • > β€” end subscripting.
  • dw β€” weekday name.
  • lq β€” left double quotation mark.
  • mo β€” month name.
  • rq β€” right double quotation mark.
  • td β€” date.
  • wa β€” term for β€œappendix” used by .$c*.
  • wc β€” term for β€œchapter” used by .$c*.
  • { β€” begin superscripting.
  • } β€” end superscripting.

🧚 Files 🧚

The files in question:

  • /usr/share/groff/1.24.2/tmac/e.tmac β€” implements the package.
  • /usr/share/groff/1.24.2/tmac/refer-me.tmac β€” implements refer(1) support for me.
  • /usr/share/groff/1.24.2/tmac/me.tmac β€” is a wrapper enabling the package to be loaded with the option β€œ-m me”.

πŸ‘‘ Notes πŸ‘‘

A little lore for you: some early roff macro packages limited their names to a single letter, which followed the formatter's m option, resulting in β€œnames” like -mm, -ms, -mv, and -mn. me's β€œe” stands for β€œEric P. Allman”, the author of the original macro package and the technical papers documenting it. Iconic behavior, honestly. πŸ’œ

🌸 SEE ALSO 🌸

okay bestie, final stretch, and it's literally just your reading list πŸ’–. There are two manuals available for you, and they come in both source and rendered form β€” though heads up, on your system they may be compressed and/or available in additional formats, so don't come for me if they look a little different 🫢.

  • /usr/share/doc/groff-1.24.2/meintro.me
  • /usr/share/doc/groff-1.24.2/meintro.ps β€” together these are "Writing Papers with Groff Using -me", by Eric P. Allman, adapted for groff by James Clark. iconic author lineup, no cap πŸ‘‘
  • /usr/share/doc/groff-1.24.2/meref.me
  • /usr/share/doc/groff-1.24.2/meref.ps β€” and these two are the "me Reference Manual", by Eric P. Allman, adapted for groff by James Clark and G. Branden Robinson. a whole reference manual, serving looks ✨

also, Groff: The GNU Implementation of troff, by Trent A. Fisher and Werner Lemberg, is the primary groff manual β€” like, the main character of manuals fr fr. You can browse it interactively with info groff πŸ’….

and if you're curious about the preprocessors supported by me, go check eqn(1), grn(1), pic(1), refer(1), and tbl(1) β€” the whole squad 🌈.

lastly, your other go-tos: groff(1), troff(1), and groff(7) πŸ¦‹.


and that's the whole page, bestie!! you ate that πŸ’…βœ¨ this one's from groff 1.24.2, dated 2026-10-01, and its footer says groff_me(7) β€” so if anyone asks, you know exactly where it came from πŸŽ€

πŸ“¦ where this page comes from
  • alpine 3.24: groff-doc 1.24.2-r0 Β· GPL-3.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms