Next: ms Legacy Features, Previous: ms Page Layout, Up: ms [Contents][Index]
The
groff
ms
macros are an independent reimplementation,
using no AT&T code.
Since they take advantage of the extended features of
GNU
troff, they cannot be used with AT&T
troff. groff
ms
supports features described above
as Berkeley and Research Tenth Edition Unix extensions,
and adds several of its own.
groff
ms
differ from those of AT&T
ms.
Documents that depend upon implementation details of AT&T
ms
may not format properly with
groff
ms.
Such details include macros whose function was not documented in the
AT&T
ms
manual.17
groff ms is to detect and
report errors, rather than to ignore them silently.
P1/P2 macros to bracket code
examples; groff ms does not.
groff
ms
does not work in
GNU
troff’s AT&T compatibility mode.
If loaded when that mode is enabled,
it aborts processing with a diagnostic message.
groff ms uses the same header and footer defaults in both
nroff and troff modes as AT&T ms does in
troff mode; AT&T’s default in nroff mode is to
put the date, in U.S. traditional format (e.g., “January 1, 2021”),
in the center footer (the CF string).
groff ms macros, including those for paragraphs,
headings, and displays, cause a reset of paragraph rendering parameters,
and may change the indentation; they do so not by incrementing or
decrementing it, but by setting it absolutely. This can cause problems
for documents that define additional macros of their own that manipulate
indentation. Use the ms RS and RE macros instead
of the in request.
PS and VS in points, and did not support the use of
scaling units with them. groff ms interprets values of
the registers PS, VS, FPS, and FVS equal to
or larger than 1,000 (one thousand) as decimal fractions multiplied
by 1,000.18 This threshold makes use of a
scaling unit with these parameters practical for high-resolution
devices while preserving backward compatibility. It also permits
expression of non-integral type sizes.
For example,
‘groff -rPS=10.5p’
at the shell prompt is equivalent to placing
‘.nr PS 10.5p’
at the beginning of the document.
AU macro supported arguments whose
values were used with some non-RP document types; that of
groff ms does not.
groff ms,
it does.
groff ms use the default page offset (which also
specifies the left margin), the PO register must stay undefined
until the first ms macro is called.
This implies that ‘\n[PO]’ should not be used early in the document, unless it is changed also: accessing an undefined register automatically defines it.
groff ms supports the PN register, but it is not
necessary; you can access the page number via the usual %
register and invoke the af request to assign a different format
to it if desired.19
CW and
GW as setting the default column width and “intercolumn gap”,
respectively, and which applied when MC was called with fewer
than two arguments. groff ms instead treats MC
without arguments as synonymous with 2C; there is thus no
occasion for a default column width register. Further, the MINGW
register and the second argument to MC specify a minimum
space between columns, not the fixed gutter width of AT&T
ms.
QI
register; Berkeley and groff ms do.
groff ms sets the register GS to 1;
AT&T ms does not use it. A document can test its value
to determine whether it is being formatted with groff ms
or another implementation.
| • Missing Unix Version 7 ms Macros |
Next: ms Legacy Features, Previous: ms Page Layout, Up: ms [Contents][Index]