This section lists the (minor) differences between the groff -ms
macros and AT&T troff -ms macros.
groff -ms differ from the internals of
AT&T troff -ms. Documents that depend upon
implementation details of AT&T troff -ms may not format
properly with groff -ms.
groff -ms is to detect and
report errors, rather than silently to ignore them.
groff -ms does not work in compatibility mode (this is, with the
-C option).
groff -ms does not provide cut marks.
ms documentation says that the CW and
GW number registers can be used to control the column width and
gutter width, respectively. These number registers are not used in
groff -ms.
in request but instead the RS
and RE macros.
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 evaluated. This implies that
PO should not be used early in the document, unless it is changed
also: Remember that accessing an undefined register automatically
defines it.
This number register is set to 1 by the
groff -msmacros, but it is not used by theAT&Ttroff -msmacros. Documents that need to determine whether they are being formatted withAT&Ttroff -msorgroff -msshould use this number register.
Emulations of a few ancient Bell Labs macros can be re-enabled by
calling the otherwise undocumented SC section-header macro.
Calling SC enables UC for marking up a product or
application name, and the pair P1/P2 for surrounding code
example displays.
These are not enabled by default because (a) they were not
documented, in the original ms manual, and (b) the P1
and UC macros collide with different macros with the same names
in the Berkeley version of ms.
These groff emulations are sufficient to give back the 1976
Kernighan & Cherry paper Typsetting Mathematics – User's
Guide its section headings, and restore some text that had gone missing
as arguments of undefined macros. No warranty express or implied is
given as to how well the typographic details these produce match the
original Bell Labs macros.