At 2025-06-05T23:24:26-0500, G. Branden Robinson wrote:
> I could also extend the `defcolor` request to accept a zero-argument
> form that would erase the internal dictionary of defined color names,
> restoring the state of the formatter in this respect when launched
> with "troff -R".[1]  If one hated colors and wanted to make sure a
> document didn't use them, the "-wcolor" option plus `.defcolor` at the
> top of a document (or in one's "troffrc-end" file), should accomplish
> that.

I'm having second thoughts, not about this functionality but about where
to site it.  It's important to me that the GNU troff language be
orthogonal and consistent, accepting that due to historical inertia
there are some glitchy exceptions.

It would thus be more consistent with the existing request repertoire to
implement color definition removal with a new request, `rdefcolor`, by
analogy with `rchar` and `rfschar`, and two other removal features I've
mulled over but not implemented, `rhw` and `rev`, for removing
hyphenation exceptions and environments, respectively.

I mildly prefer naming the color-removal request `rcolor`.  I feel
like the `defcolor` request name is a wart because the `color` request
for toggling color support arrived around the same time.  I'd complain
about that more strongly if I had a better idea what name to give the
latter, but I don't.

This would be easy to do[1] in time for groff 1.24, but I've tried to
restrain myself from adding more features to the formatter at this
point.  That said, in a fit of indiscipline and eagerness to aid users,
I recently added yet another debugging/formatter-state-disclosing
request, `pfp`, which lists the mounting positions in use.

groff(7):
       .pfp       Report, to the standard error stream, the list of
                  occupied font mounting positions.  Occupied mounting
                  positions are listed, one per line, in increasing
                  order, followed by the typeface name; if the name
                  corresponds to an abstract style, the entry ends
                  there.  Otherwise, the name of the font description
                  file and the font’s “internal name” datum, the meaning
                  of which varies by output device, follow.

Illustration:

$ echo .pfp | ~/groff-HEAD/bin/groff -T ps
1       R
2       I
3       B
4       BI
5       TR      TR      Times-Roman
6       CR      CR      Courier
7       CI      CI      Courier-Oblique
8       CB      CB      Courier-Bold
9       CBI     CBI     Courier-BoldOblique
10      SS      SS      Symbol-Slanted
11      S       S       Symbol
12      ZD      ZD      ZapfDingbats
13      ZDR     ZDR     ZapfDingbats-Reverse
14      AB      AB      AvantGarde-Demi
15      ABI     ABI     AvantGarde-DemiOblique
16      AI      AI      AvantGarde-BookOblique
17      AR      AR      AvantGarde-Book
18      BMB     BMB     Bookman-Demi
19      BMBI    BMBI    Bookman-DemiItalic
20      BMI     BMI     Bookman-LightItalic
21      BMR     BMR     Bookman-Light
22      HB      HB      Helvetica-Bold
23      HBI     HBI     Helvetica-BoldOblique
24      HI      HI      Helvetica-Oblique
25      HR      HR      Helvetica
26      HNB     HNB     Helvetica-Narrow-Bold
27      HNBI    HNBI    Helvetica-Narrow-BoldOblique
28      HNI     HNI     Helvetica-Narrow-Oblique
29      HNR     HNR     Helvetica-Narrow
30      NB      NB      NewCenturySchlbk-Bold
31      NBI     NBI     NewCenturySchlbk-BoldItalic
32      NI      NI      NewCenturySchlbk-Italic
33      NR      NR      NewCenturySchlbk-Roman
34      PB      PB      Palatino-Bold
35      PBI     PBI     Palatino-BoldItalic
36      PI      PI      Palatino-Italic
37      PR      PR      Palatino-Roman
38      TB      TB      Times-Bold
39      TBI     TBI     Times-BoldItalic
40      TI      TI      Times-Italic
$ echo .pfp | ~/groff-HEAD/bin/nroff
1       R       R
2       I       I       1
3       B       B       2
4       BI      BI      3
5       CSH     CSH     2
6       CSS     CSS
7       CTS     CTS
8       CTH     CTH     2
9       JPG     JPG     2
10      JPM     JPM
11      KOG     KOG     2
12      KOM     KOM

If I could have gotten SunOS troff to tell me something like the
foregoing back in 1993 or so, I might have gotten involved with groff
development many years ago.

Regards,
Branden

[1] famous last words

Attachment: signature.asc
Description: PGP signature

Reply via email to