At 2026-01-28T11:40:18-0500, Peter Schaffter wrote:
> On Wed, Jan 28, 2026, G. Branden Robinson wrote:
> > * The gropdf(1) output driver has several new features.
> > - JFIF/JPEG and JPEG 2000 image files are embeddable in documents.
> > - If PerlMagic is installed, many more image formats are as well.
> > - It ships a grops(1)-compatible "SS" (slanted symbol) font.
> > - It subsets fonts by default, reducing file size.
> > - Its output conforms to the ISO 32000/PDF 1.7a standard by default.
> > - It permits control of page numbers in a PDF reader's outline pane.
> > - It supports characters outside the Unicode Basic Latin subset
> > in bookmarks, named destinations, and external hyperlinks.
>
> The changes to gropdf are new and shiny and much-hoped-for. I'd be
> inclined to put this item near the top of the list.
That occurred to me too. I have a second draft wherein I've moved it
up. Not to the top, but above all the stuff about changes to the
formatter itself.
> Personal bias, of course, since mom's thrust is toward generation of
> pdf documents.
I think that's a reasonable bias. There's more to groff than paging
Unix manuals on a terminal. That man(7) and mdoc(7) are the tail
wagging our dog need not put groff's friendly typesetting face at the
other end of an unfortunate dachsund falling into a black hole.
> On the subject of mom,
> > * groff 1.24.0 includes mom 2.6, a macro package contributed by
> > Peter Schaffter.
>
> "...a macro packaged contributed by..." The indefinite article
> makes it sound as if mom just popped out of thin air. Since mom has
> been part of groff since just shy of 25 years, I propose:
>
> "groff 1.24.0 includes version 2.6 of Peter Schaffter's mom macro
> package"
>
> or, more succinctly,
>
> "groff 1.24.0 includes version 2.6 of the mom macro package"
I anticipated this too, and dropped authorial credits from the headlines
altogether. Not without a twinge, but they're still more than a screen
long; my old training in cutting down column inches overbore me.
I'm attaching my second draft.
Regards,
Branden
* groff_man(7) and groff_mdoc(7) now support hyperlinks between man
pages in PDF. They use the "man:" scheme for URLs, and can prepared
to use PDF bookmarks internal to the document in a collection of man
pages if desired. groff builds a "groff-man-pages.pdf" file that
illustrates.
* The groff_man(7) extension macros `SY` and `YS` macros have been
changed to enable greater user control over vertical spacing and to
make them convenient for synopsizing C language functions, not just
commands. In a "Synopsis" section of a man page, existing synopses
consisting of a single item require no migration. This is the most
common case.
* groff 1.24.0 includes version 2.6 of the mom macro package.
* The groff_mm(7) macro package has been adjusted in dozens of minor
ways to clean up its user interface and more accurately reproduce
historical mm documents, such as London & Reiser's 1978 paper
describing Unix/V32, the Unix port to the VAX-11/780.
* groff 1.24.0 includes "install-font.bash", an example
script to aid integration of third-party fonts with groff,
* The pic(1) preprocessor supports a new "polygon" command, and extends
reference point syntax to permit selection of objects' vertices and
midpoints (where applicable).
* The gropdf(1) output driver has several new features.
- JFIF/JPEG and JPEG 2000 image files are embeddable in documents.
- If PerlMagic is installed, many more image formats are as well.
- It ships a grops(1)-compatible "SS" (slanted symbol) font.
- It subsets fonts by default, reducing file size.
- Its output conforms to the ISO 32000/PDF 1.7a standard by default.
- It permits control of page numbers in a PDF reader's outline pane.
- It supports characters outside the Unicode Basic Latin subset
in bookmarks, named destinations, and external hyperlinks.
* The grops(1) output driver now supports fonts encoded using UTF-16.
* The new "-t" option to the grotty(1) output driver causes it to
output ECMA SGR 38 and 48 escape sequences, which permit
specification of character cell foreground and background colors in
the RGB color space with 8 bits per channel.
* GNU troff's new `hydefault` request permits a distinct hyphenation
mode default to be configured for each environment. groff's
localization macro files configure an appropriate default for the
selected language.
* The formatter, GNU troff, has many new features to aid debugging
of documents and macro files. All write to the standard error
stream. `pchar`, `pcolor`, `pcomposite`, `pfp`, `pftr`, and `phw`
report the state of data manipulated by requests of the same name
without the "p" prefix. `ptr` has been renamed to `pwh` accordingly.
`pm` now dumps, in JSON encoding, the contents of macros, strings,
and diversions named as arguments. `pline` does the same for a
pending output line. `pstream` reports the status of open file
streams. `pnr` accepts register names as arguments, reporting only
those requsted, and now discloses the autoincrementation amount and
interpolation format of each register (if it is not string-valued).
* GNU troff now implements saturating rather than wrapping integer
arithmetic.
* GNU troff now implements a more regular request syntax. The requests
`cf`, `hpf`, hpfa`, `lf`, `mso`, msoquiet`, `ns`, pi`, `pso`, `so`,
`soquiet`, `sy`, and `trf` now handle their arguments as the string-
populating requests `ds` and `as` do, stripping a leading neutral
double quote from relevant arguments and thereby permitting leading
spaces to be embedded in them. A consequence is that GNU troff
requests now handle file names with spaces in them as easily as any
other file name, unlike other troffs.
* The soelim(1) preprocessor interprets `.so` tokens compatibly with
the foregoing change to GNU troff(1).
* Output localizations for Russian and Spanish, including hyphenation
patterns and macro package string translations.
* A new macro file "koi8-r.tmac" supports the KOI8-R character
encoding, which in turn supports the new Russian locale for groff.
* groff's "configure" script now supports a "--without-urw-fonts"
option to better support systems that don't require full PDF support
from groff.
Much attention has been given to fixing bugs, improving diagnostic
messages, and correcting and expanding documentation. The previous
release shipped with 164 automated tests; this one ships with over 300.