The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Mychaela Falconia <falcon@freecalypso.org>
To: tuhs@tuhs.org, g.branden.robinson@gmail.com
Cc: groff@gnu.org
Subject: [TUHS] Re: Original print of V7 manual? / My own version of troff
Date: Sun, 07 Jan 2024 21:10:38 -0800	[thread overview]
Message-ID: <20240108051049.7643537404E9@freecalypso.org> (raw)
In-Reply-To: <20240108032428.co3ozmlneoop6sa2@illithid>

G. Branden Robinson <g.branden.robinson@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~

  reply	other threads:[~2024-01-08  5:11 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-05 22:17 [TUHS] Original print of V7 manual? Mychaela Falconia
2024-01-05 23:19 ` [TUHS] " segaloco via TUHS
2024-01-06  0:12   ` Will Senn
2024-01-06  1:26   ` Mychaela Falconia
2024-01-06  5:08     ` segaloco via TUHS
2024-01-06  6:12       ` Mychaela Falconia
2024-01-06 15:06       ` Will Senn
2024-01-06  1:06 ` Al Kossow
2024-01-06  1:45   ` segaloco via TUHS
2024-01-06 14:42     ` amp1ron
2024-01-06  3:02   ` Mychaela Falconia
2024-01-06  3:22     ` G. Branden Robinson
2024-01-06  4:06       ` Jonathan Gray
2024-01-06  4:06       ` Mychaela Falconia
2024-01-06 18:33         ` Clem Cole
2024-01-06 21:04           ` Rich Salz
2024-01-06 21:38             ` Clem Cole
2024-01-10 16:32             ` Michael Parson
2024-02-10 19:43               ` Al Kossow
2024-01-07  2:17           ` Mychaela Falconia
2024-01-07  2:25             ` Al Kossow
2024-01-07  2:54             ` Phil Budne
2024-01-07  3:21               ` Mychaela Falconia
2024-01-07  3:55             ` Clem Cole
2024-01-10 16:53             ` Michael Parson
2024-01-10 17:45               ` Clem Cole
2024-01-07 10:54         ` Brian Walden
2024-01-07 12:12           ` arnold
2024-01-08  0:20           ` Mychaela Falconia
2024-01-07 21:59             ` [TUHS] My own version of troff Mychaela Falconia
2024-01-08  3:24               ` [TUHS] Re: Original print of V7 manual? / " G. Branden Robinson
2024-01-08  5:10                 ` Mychaela Falconia [this message]
2024-01-08  7:11                   ` G. Branden Robinson
2024-01-09  9:38                     ` Mychaela Falconia
2024-01-09 16:27                       ` Al Kossow
2024-01-09 17:18                         ` segaloco via TUHS
2024-01-09 18:05                           ` Phil Budne
2024-01-09 18:30                             ` Grant Taylor via TUHS
2024-01-09 20:29                           ` Al Kossow
2024-01-09 20:31                             ` Al Kossow
2024-01-09 22:07                           ` Clem Cole
     [not found]                   ` <CAGcdajdc5GfTOeP_Vw_AC0E6BdnrBLape1+GEd2JGDCg4n31eQ@mail.gmail.com>
2024-01-17 14:08                     ` G. Branden Robinson
2024-01-17 15:32                       ` Brad Spencer
2024-01-17 15:48                         ` Clem Cole
2024-01-17 16:25                           ` Rich Salz
2024-01-18  7:00                     ` Mychaela Falconia
     [not found]                       ` <CAGcdaje=RHbLNZv2Cy=xtuEMaYU7RXMtnom7gYuAMMju2xrHgw@mail.gmail.com>
2024-01-18  8:22                         ` Mychaela Falconia
2024-01-18 13:27                       ` G. Branden Robinson
     [not found]                     ` <ZalHs6DAuvRwXTuS@fluorine>
2024-01-19 16:52                       ` G. Branden Robinson
2024-01-06 14:52       ` [TUHS] Re: Original print of V7 manual? Will Senn
2024-01-06 16:52         ` Al Kossow
2024-01-06 16:54           ` Al Kossow
2024-01-06 18:28         ` G. Branden Robinson
2024-01-10 18:50 [TUHS] Original print of V7 manual? / My own version of troff tuhs
2024-01-10 22:04 ` [TUHS] " Diomidis Spinellis
2024-01-10 23:46   ` segaloco via TUHS
2024-01-11  2:20     ` Mychaela Falconia
2024-01-11 13:52 ` Sebastien F4GRX
2024-01-11 22:48 ` Dave Horsfall
2024-01-11 23:47   ` Greg 'groggy' Lehey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240108051049.7643537404E9@freecalypso.org \
    --to=falcon@freecalypso.org \
    --cc=g.branden.robinson@gmail.com \
    --cc=groff@gnu.org \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).