bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #62921] want another monospaced font in the default set


From: G. Branden Robinson
Subject: [bug #62921] want another monospaced font in the default set
Date: Sat, 20 Aug 2022 09:54:38 -0400 (EDT)

Update of bug #62921 (project groff):

                  Status:                    None => Need Info              

    _______________________________________________________

Follow-up Comment #1:

[comment #0 original submission:]
> By default groff comes with 6 proportional fonts (Avant Garde, Bookman,
Helvetica, New Century Schoolbook, Palatino, Times New Roman), but only 1
monospaced font: Courier. I like Courier but it would be nice to have another
option. Especially for typesetting code listings, a monospaced font with a
slashed or dotted zero, along with a clearer difference between 1 and l, would
come in handy.
> 
> I know there is a mechanism for users to manually add such a font to groff
themselves, but when sharing code it seems like a needless burden to put on
other people.

As I understand it, the reason the font repertoire looks the way it does is
because those are (some of) the base 35 typefaces mandated by the PostScript
Level 2 and PDF standards.

Font repertoire is _not_ standardized across _groff_ output devices.  I admit
that this historically hasn't been very clear in _groff_ documentation, though
the issue was painfully obvious to _troff_ users of the 1980s when common
practice was even less standardized.

> Possible choices would be DejaVu Sans Mono, Liberation Mono, or Adobe Source
Code Pro, though there are many others.

The main practical problem here is that while we could certainly generate
_groff_ font descriptions file for some or all of those, and ship them, users
_still_ won't get those fonts in the output they generate unless they have the
font files installed where the output driver programs, like _grops_ and
_gropdf_, can find them.

This is a matter of populating the "download" files that these programs
respectively read.

But if that problem is addressed, generating the fonts' descriptions in
_troff_/_groff_ format isn't the long pole anymore.

Do you agree?

>  Only the Regular style would be truly needed; Bold and Italic would be a
nice bonus but not really necessary.

The rest of this reply is going to dump a lot of information on you and it's
not strictly necessary to advance discussion of this ticket.

They're more useful than it may at first appear because if a typeface has the
four styles "roman", "bold", "italic", and "bold-italic" all available, then
_groff_ can treat them as a "family".  This is convenient because most macro
packages don't have (and, frankly, don't need) particularized support for a
variety of fonts.  You can pick a family (the default is "Times") and then
switch between styles at will.  This also makes it easier to change your mind
about the families you use.  _groff_'s implementation of the _ms_ package has
pretty solid support for this.

I guess I should note that the bold-italic face is kind of a red-headed
stepchild and support for it is not consistently exposed by historical macro
packages.  This is for the frustratingly dumb reason that the cheap Graphic
Systems C/A/T phototypesetter that the Bell Labs CSRC acquired in ~1973
support roman, bold, and italic, but not bold-italic.  It was nearly 1980
before the Labs got a more featureful typesetter, but dealing productively
with the manufacturers of those devices proved challenging (see the
Kernighan/Condon/Thompson paper).  On top of that, it seems AT&T largely took
_troff_ development away from the CSRC because they wanted to commercialize
it.  But they didn't pay people to do much if any development on _troff_
itself, the formatter--just on, as far as I know, macro packages (mostly _mm_)
and output drivers.  I don't know how else to explain how PostScript came
along, with its four standard styles applied orthogonally to three faces, and
this had zero impact on the formatter's architecture.  After a few years I
guess AT&T decided _troff_ wasn't making much money (just like their computers
weren't), and they sold a source license to SoftQuad in Canada, which then
proceeded, shockingly, to undertake software development.  (That would never
fly today.  It is now understood in the software industry that you acquire a
property like this for only 2 reasons: (1) to kill it, or (2) to milk it for
rents it has already proven itself capable of extracting.  There is always a
pitch by the exponents of the acquisition on the receiving end that (3) some
kind of integration or "synergy" with another product already owned will
increase the revenue flow from factor 2, but this almost never eventuates.[1] 
It doesn't matter, because big bonuses get paid to those principals for having
wangled the acquisition in the first place, and, having pocketed the proceeds
with much glad-handling in the C suite, change jobs before the evidence of
failure is obvious.)

Come to think of it, groff's _ms_ and _me_ have support for bold-italic
already (and have for decades), and it wouldn't be hard to add it to our _mm_
either; the extension furrow there has already been deeply plowed.  (What our
_me_ and _mm_ lack is any concept of font family.)  I'm sure Peter Schaffter's
_mom_ has this area covered, too.

That leaves the man page packages, _man_ and _mdoc_.  I am confident that Ingo
Schwarze would try to melt my face off if I proposed adding bold-italic
styling macros to those.  To be fair, there isn't much need.  In groff 1.23
(forthcoming), the _man_(7) package will render bold-italics anyway in certain
cases, like if you use italics in a section heading (which is set in bold by
default), because I like section headings to have a consistent weight and am
nefarious enough to make it happen.

[1] You really level up as a "strategist" when you have multiple acquisition
efforts going at once, with the "synergies" dependent on all of them coming
off.  The more the better, really, because it lengthens the time before the
people who actually do software engineering can climb out of the all the pits
of undocumented proprietary shitware your company bought and report back to
leadership regarding the huge costs of overcoming interfacing and
impedance-matching problems between the components to get the "leverage" that
was promised.  The obvious thing to do then is kill or unload the asset, the
latter making you selling counterparty in the great fecal ouroborus of M&A.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?62921>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]