[TUHS] Original print of V7 manual? / My own version of troff

Mychaela Falconia falcon at freecalypso.org
Mon Jan 8 15:10:38 AEST 2024


G. Branden Robinson <g.branden.robinson at gmail.com> wrote:

> This sort of broad, nonspecific, reflexive derogation of groff (or GNU
> generally) is unproductive and frequently indicative of ignorance.

I don't have enough spoons to engage in political fights any more, so
I'll just focus on technical aspects.

> The C/A/T's fonts did not even exist in the digital domain.  They were
> produced from photographic plates.  Their reproduction is consequently
> something of a pickle.

I am very keenly aware of this fact!

> But if you are going for pixel-perfect reproduction of documents that
> used fonts you don't have, you're going to need to recreate the fonts
> somehow--perfectly (at least for the glyphs that a given document uses).

The problem you are describing is one which I am *not* actively working
on presently.  I am _contemplating_ this problem, but not actively
working on it.  In my current stage of 4.3BSD document set reprinting,
I am willing to accept that hyphenations, line breaks and page breaks
will be different from the original because of slightly different font
metrics, and accept the use of only fi and fl ligatures (in running
text, outside of explicit demonstrations) because Adobe's version
dropped ff, ffi and ffl.  (In places where original troff docs
explicitly demonstrate the use of all 5 ligatures, I have a hack that
pulls the missing ligs from a different, not-really-matching font.)

I am willing to accept this imperfection because it is fundamentally
no different from what UCB/Usenix themselves did in 1986: they took
Bell Labs docs that were originally written for CAT and troffed them
on their APS-5 ditroff setup - but those two typesetters also had
slight diffs in their font metrics, causing line and page breaks to
move around!

OTOH I am very willing to entertain, as an intellectual exercise, what
would it take to produce a new font set that would *truly* replicate
the CAT font set at Bell Labs.  The spacing widths of the original
fonts (the key determinant of where breaks will land) are known, right
here:

https://www.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/troff/tab3.c

Back in 2004 in one afternoon I threw together a quick-hack program
that takes the output of original troff (CAT binary codes) and prints
it in PostScript, using standard Adobe fonts.  The character
positioning is that of original troff, but because the actual font
characters don't perfectly match these metrics, the result is not
pretty - but the non-pretty result does show *exactly* where every
line and page break lands per original intent!

So what would it take to do such a re-creation properly?  My feeling
is that the task would require hiring a professional typeface designer
to produce a modified version of Times font family: modify the fonts
to produce good visual results (change actual characters as needed) to
fit the prescribed, unchangeable metrics as in spacing widths.  And
design all 5 f-ligatures while at it.

I have no slightest idea how much it would cost to hire a professional
typeface designer to do what I just described, hence I have no idea
whether or not it is something that the hobbyist community could
potentially afford, even collectively.  But it is an interesting idea
to ponder nonetheless - which is where I leave it for now.

> There is a third problem, whose resolution is in progress, when
> producing PDF output from this document; slanted Greek symbols are
> present but "not quite right".  This is because unlike PostScript, PDF
> font repertoires generally don't provide a "slanted symbol" face.

Can you please elaborate?  I personally hate PDF with a passion, but I
concede that in order to make my documents readable by people other
than me, I have to rcp my .ps file from the 4.3BSD machine to a
semi-modern-ish (Slackware) Linux box and run ps2pdf on the file.
But what "slanted symbol" font are you talking about that exists in
PostScript but not in PDF?  The only PostScript fonts whose existence
I take as a given (as opposed to downloading the font explicitly) are
the standard 14: 4 Times family fonts, 4 Helvetica family fonts, 4
Courier family fonts, Symbol and ZapfDingbats.  Which of these 14 is
missing in PDF, and how does "standard" ps2pdf (Ghostscript) handle it?

> Like AT&T troff, groff attempts to be a practical typesetting system.

I wrote *my* version of troff with exact same goals, and I've been
using it as my personal everyday TPS report formatter for the past 20 y.
It's just that for deeply personal reasons which I would rather not go
into on this list, I chose to develop my own tool instead of using one
that bears GNU branding.  I also wanted my troff to run under 4.3BSD,
using only K&R C, which I reason would probably be impossible with
groff.  (I recall reading somewhere that groff is written in C++ - so
it is completely out of consideration for something that needs to run
under 4.3BSD.)

> But there is room in the world for such things, particularly if they are
> Free Software.  I was unable to determine that qjtroff is, except for a
> few portions retaining UC Regents' copyright notices from the 1980s,[3]

My software is written BY a pirate (me) FOR other pirates.  If you are
not a pirate, my sw is not for you.

M~


More information about the TUHS mailing list