package groff
retitle 241394 groff: please support 4.2BSD TM and CT extensions to ms(7)
tag 241394 + upstream
thanks
First, a point of clarification--there were many extensions to ms(7) in
4.2BSD, and groff supports all of them _except_ the TM and CT macros.
Upstream, groff has resurrected and updated Larry Kollar's ms.ms
document from ~2000 and I have updated it to include a great deal of
information about portability. Find it at
<https://git.savannah.gnu.org/cgit/groff.git/tree/doc/ms.ms>.
This document, along with corresponding updates to groff_ms(7), is
expected in the groff 1.23 release.
I'm not certain if groff _should_ try to support these macros, at least
by default, given that doing so means choosing between AT&T and BSD
dialects (AT&T also defined a `TM` macro.) Historically, GNU ms
supported the common denominator of AT&T and BSD ms(7) names and added
its own extensions on top.
However, Keith Marshall has recently added an `FP` macro and that may
force us to choose the BSD dialect by default, and/or add a string
configuring the dialect to be supported. And we kind of started down
that road already by supporting BSD's `P1` over Research Unix's `P1` and
`P2`.
While we sort out these issues, users might find it convenient to simply
inline the BSD `TM` and `CT` macro definitions into their documents or a
bespoke macro file.
Here is the entirety of "s.ths", which shipped with 4.2BSD[1].
. \" TM - U.C. Berkeley thesis mode
.ls 2
.if v .nr PO 1.5i
.rm CH
.ds RH \\n(PN
.rm CF
.P1
.nr TM 1
. \" CT - chapter title
.de CT
.rn RH R@
.if \\n(1T .bp
.RT
.if \\n(1T .sp
.if !\\n(1T .BG
.RT
.ft 3
.if n .ul 100
.ps \\n(PS+2
.ce 100
.nr CT 1
.rn R@ RH
..
Regards,
Branden
[1] https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.2BSD/usr/lib/ms/s.ths