ms documents are plain text files; prepare them with your preferred text editor. If you’re in a hurry to start, know that ms needs one of its macros called at the beginning of a document so that it can initialize. A macro is a formatting instruction to ms. Put a macro call on a line by itself. Use ‘.PP’ if you want your paragraph’s first line to be indented, or ‘.LP’ if you don’t.
After that, start typing normally. It is a good practice to start each sentence on a new line, or to put two spaces after sentence-ending punctuation, so that the formatter knows where the sentence boundaries are. You can separate paragraphs with further paragraphing macros, or with blank lines, and you can indent with tabs. When you need one of the features mentioned earlier (see ms), return to this part of the manual.
Format the document with the groff
command. nroff
can be useful for previewing.
$ editor radical.ms $ nroff -ww -z -ms radical.ms # check for errors $ nroff -ms radical.ms | less -R $ groff -T ps -ms radical.ms > radical.ps $ see radical.ps |
Our radical.ms document might look like this.
.LP Radical novelties are so disturbing that they tend to be suppressed or ignored, to the extent that even the possibility of their existence in general is more often denied than admitted. →That's what Dijkstra said, anyway. |
ms exposes many aspects of document layout to user control via
groff
’s registers and strings, which store numbers
and text, respectively. Measurements in groff
are expressed with
a suffix called a scaling unit.
i
inches
c
centimeters
p
points (1/72 inch)
P
picas (1/6 inch)
v
vees; current vertical spacing
m
ems; width of an “M” in the current font
n
ens; one-half em
Set registers with the nr
request and strings with the ds
request. Requests are like macro calls; they go on lines by
themselves and start with the control character, a dot (.
).
The difference is that they directly instruct the formatter program,
rather than the macro package. We’ll discuss a few as applicable. It
is wise to specify a scaling unit when setting any register that
represents a length, size, or distance.
.nr PS 10.5p \" Use 10.5-point type. .ds FAM P \" Use Palatino font family. |
In the foregoing, we see that \"
begins a comment. This is an
example of an escape sequence, the other kind of formatting
instruction. Escape sequences can appear anywhere. They begin with the
escape character (\
) and are followed by at least one more
character. ms documents
tend to use only a few of groff
’s many requests and escape
sequences; see Request Index and Escape Sequence Index or
the groff(7) man page for complete lists.
\"
Begin comment; ignore remainder of line.
\n[reg]
Interpolate value of register reg.
\*[str]
Interpolate contents of string str.
\*s
abbreviation of \*[s]
; the name s must be only one
character
\[char]
Interpolate glyph of special character named char.
\&
dummy character
\~
Insert an unbreakable space that is adjustable like a normal space.
\|
Move horizontally by one-sixth em (“thin space”).
Prefix any words that start with a dot ‘.’ or neutral apostrophe
‘'’ with \&
if they are at the beginning of an input line
(or might become that way in editing) to prevent them from being
interpreted as macro calls or requests. Suffix ‘.’, ‘?’, and
‘!’ with \&
when needed to cancel end-of-sentence detection.
My exposure was \&.5 to \&.6 Sv of neutrons, said Dr.\& Wallace after the criticality incident. |