MS(7)

πŸ“¦ version 0_git20260208, in alpine 3.24, arch rolling, nixos 26.05, nixpkgs unstable

πŸ’… MS β€” macros for formatting manuscripts

okay bestie, gather round, because this one is a whole vibe. The manual page name is ms (under MS(7), in the Miscellaneous Information Manual section), and it's basically a whole canned formatting situation for nroff and troff. It's giving "senior researcher who does their own typesetting" energy and honestly? iconic.


✨ SYNOPSIS ✨

nroff -ms [ options ] file ...
troff -ms [ options ] file ...

that's it. that's the whole invocation. you just slap -ms on and let the macros carry you πŸ’…


🌸 DESCRIPTION 🌸

So this package of nroff and troff(1) macro definitions gives you a canned formatting facility for technical papers in various formats. Like, pre-packaged glow-up for your document. no cap.

The macro requests are defined below (scroll down, there are so many, we love a comprehensive queen πŸ‘‘). Real talk though: many nroff and troff requests are unsafe in conjunction with this package β€” but the following requests may be used with impunity after the first .PP:

Output of the eqn(1), tbl(1), pic(1) and grap(1) preprocessors for equations, tables, pictures, and graphs is acceptable as input. so yes, you can absolutely bring your equation friends and your table friends to the party 🫢


πŸŽ€ FILES πŸŽ€

  • /tmac/tmac.s

that's the whole file list. one file. minimal. she's low maintenance.


πŸ¦‹ SEE ALSO πŸ¦‹

  • M. E. Lesk, ``Typing Documents on the UNIX System: Using the -ms Macros with Troff and Nroff'', Unix Research System Programmer's Manual, Tenth Edition, Volume 2.
  • eqn(1), troff(1), tbl(1), pic(1)

the Lesk paper is the reading, fr fr. go read it, it's the moment.


πŸ”₯ REQUESTS πŸ”₯

okay this is the main character section. every request has an initial value (what it's set to before you touch it) and a cause break (whether it yeets you to a new line). - means there's no initial value listed, k? don't come for me, that's just what the page says πŸ’€

  • .1C β€” initial value: yes, causes break: yes β€” one column format on a new page.
  • .2C β€” initial value: no, causes break: yes β€” two column format.
  • .AB β€” initial value: no, causes break: yes β€” begin abstract.
  • .AE β€” initial value: -, causes break: yes β€” end abstract.
  • .AI β€” initial value: no, causes break: yes β€” author's institution follows. suppressed in .TM.
  • .AT β€” initial value: no, causes break: yes β€” print Attached and turn off line filling.
  • .AU x y β€” initial value: no, causes break: yes β€” author's name follows. x is location and y is extension, ignored except in TM.
  • .B x y β€” initial value: no, causes break: no β€” print x in boldface, append y; if there's no argument, switch to boldface.
  • .B1 β€” initial value: no, causes break: yes β€” begin text to be enclosed in a box.
  • .B2 β€” initial value: no, causes break: yes β€” end boxed text.
  • .BI x y β€” initial value: no, causes break: no β€” print x in bold italic and append y; if there's no argument, switch to bold italic.
  • .BT date β€” initial value: date, causes break: no β€” bottom title, automatically invoked at the foot of the page. may be redefined.
  • .BX x β€” initial value: no, causes break: no β€” print x in a box.
  • .CW x y β€” initial value: no, causes break: no β€” constant width font for x, append y; if there's no argument, switch to constant width.
  • .CT β€” initial value: no, causes break: yes β€” print Copies to and turn off line filling.
  • .DA x β€” initial value: nroff, causes break: no β€” the Date line at the bottom of the page is x. default is today.
  • .DE β€” initial value: -, causes break: yes β€” end displayed text. implies .KE.
  • .DS x β€” initial value: no, causes break: yes β€” start of displayed text, to appear verbatim line-by-line: indented (default), left-justified, centered, (block) centered with straight left margin. implies .KS.
  • .EG β€” initial value: no, causes break: - β€” print document in BTL format for Engineer's Notes. must be first.
  • .EN β€” initial value: -, causes break: yes β€” space after equation produced by neqn or eqn(1).
  • .EQ x y β€” initial value: -, causes break: yes β€” display equation. equation number is y. optional x is I, L, C as in .DS.
  • .FE β€” initial value: -, causes break: yes β€” end footnote.
  • .FP x β€” initial value: -, causes break: no β€” set font positions for a family, e.g.,
  • .FS β€” initial value: no, causes break: no β€” start footnote. the note will be moved to the bottom of the page.
  • .HO β€” initial value: -, causes break: no β€” Bell Laboratories, Holmdel, New Jersey 07733.
  • .I x y β€” initial value: no, causes break: no β€” italicize x, append y; if there's no argument, switch to italic.
  • .IH β€” initial value: no, causes break: no β€” Bell Laboratories, Naperville, Illinois 60540.
  • .IM β€” initial value: no, causes break: no β€” print document in BTL format for an internal memorandum. must be first.
  • .IP x y β€” initial value: no, causes break: yes β€” start indented paragraph, with hanging tag x. indentation is y ens (default 5).
  • .KE β€” initial value: -, causes break: yes β€” end keep. put kept text on next page if not enough room.
  • .KF β€” initial value: no, causes break: yes β€” start floating keep. if the kept text must be moved to the next page, float later text back to this page.
  • .KS β€” initial value: no, causes break: yes β€” start keeping following text.
  • .LG β€” initial value: no, causes break: no β€” make letters larger.
  • .LP β€” initial value: yes, causes break: yes β€” start left-blocked paragraph.
  • .LT β€” initial value: no, causes break: yes β€” start a letter; a non-empty first argument produces a full Lucent letterhead, a second argument is a room number, a third argument is a telephone number.
  • .MF β€” initial value: -, causes break: - β€” print document in BTL format for Memorandum for File. must be first.
  • .MH β€” initial value: -, causes break: no β€” Bell Laboratories, Murray Hill, New Jersey 07974.
  • .MR β€” initial value: -, causes break: - β€” print document in BTL format for Memorandum for Record. must be first.
  • .ND date β€” initial value: troff, causes break: no β€” use date supplied (if any) only in special BTL format positions; omit from page footer.
  • .NH n β€” initial value: -, causes break: yes β€” same as .SH, with automatic section numbers like 1.2.3; n is subsection level (default 1).
  • .NL β€” initial value: yes, causes break: no β€” make letters normal size.
  • .P1 β€” initial value: -, causes break: yes β€” begin program display in constant width font.
  • .P2 β€” initial value: -, causes break: yes β€” end program display.
  • .PE β€” initial value: -, causes break: yes β€” end picture; see pic(1).
  • .PF β€” initial value: -, causes break: yes β€” end picture; restore vertical position.
  • .PP β€” initial value: no, causes break: yes β€” begin paragraph. first line indented.
  • .PS h w β€” initial value: -, causes break: yes β€” start picture; height and width in inches.
  • .PY β€” initial value: -, causes break: no β€” Bell Laboratories, Piscataway, New Jersey 08854.
  • .QE β€” initial value: -, causes break: yes β€” end quoted material.
  • .QP β€” initial value: -, causes break: yes β€” begin quoted paragraph (indent both margins).
  • .QS β€” initial value: -, causes break: yes β€” begin quoted material (indent both margins).
  • .R β€” initial value: yes, causes break: no β€” roman text follows.
  • .RE β€” initial value: -, causes break: yes β€” end relative indent level.
  • .RP β€” initial value: no, causes break: - β€” cover sheet and first page for released paper. must precede other requests.
  • .RS β€” initial value: -, causes break: yes β€” start level of relative indentation from which subsequent indentation is measured.
  • .SG x β€” initial value: no, causes break: yes β€” insert signature(s) of author(s), ignored except in .TM and .LT. x is the reference line (initials of author and typist).
  • .SH β€” initial value: -, causes break: yes β€” section head follows, font automatically bold.
  • .SM β€” initial value: no, causes break: no β€” make letters smaller.
  • .TA x... β€” initial value: 5..., causes break: no β€” set tabs in ens. default is 5 10 15 ...
  • .TE β€” initial value: -, causes break: yes β€” end table; see tbl(1).
  • .TH β€” initial value: -, causes break: yes β€” end heading section of table.
  • .TL β€” initial value: no, causes break: yes β€” title follows.
  • .TM x... β€” initial value: no, causes break: - β€” print document in BTL technical memorandum format. arguments are TM number, (quoted list of) case number(s), and file number. must precede other requests.
  • .TR x β€” initial value: -, causes break: - β€” print in BTL technical report format; report number is x. must be first.
  • .TS x β€” initial value: -, causes break: yes β€” begin table; if x is H, table heading is repeated on new pages.
  • .UL x β€” initial value: -, causes break: no β€” underline argument (even in troff).
  • .UX y z β€” initial value: -, causes break: no β€” zUNIXy; first use gives registered trademark notice.
  • .WH β€” initial value: -, causes break: no β€” Bell Laboratories, Whippany, New Jersey 07981.
⚠️ bestie read the fine print: .EG, .IM, .MF, .MR, .TM, and .TR all say must be first (and .RP must precede other requests). don't be the person who puts them in the middle, okay? that's not the vibe 😭

okay and that's the whole page!! huge shoutout to whoever typed this up β€” it lives in the Miscellaneous Information Manual and the page itself is MS(7). periodt. go format something gorgeous, you got this πŸ§šπŸ’œ