Re: All caps .TH page name

G. Branden Robinson
2022-07-21T18:36:28Z

[-- Attachment #1: Type: text/plain, Size: 2697 bytes --]

Hi Alex,

At 2022-07-21T16:29:21+0200, Alejandro Colomar wrote:
> I've never been convinced about the page title being in all caps in
> the .TH line. From recent groff@ discussions, I guess that neither of
> you are either.

Well, Ingo was more comfortable with it than I was.

> I'd like to know why this has been the case historically, and any
> opinions you might have about me changing the man-pages to use the
> same caps as the actual identifier that I'm documenting (most of the
> time that would mean lowercase). Basically, the same rules as within
> .SH NAME.

I've read every edition of the Unix manual from Version 1 (1971) to
Version 7 (1979) and my surmise is that it was sheer inertia. The
Teletype machines that were used to set the original versions of the
manual--remember, this is before troff even existed--might have been
capable of boldface through overstriking, but was not used this way as
far as I can tell in the V1 through V3 manual.

So this means that, for emphasis, you had regular type and underlined
type and that was it.

Under such limitations, the use of full capitals for emphasis is not
surprising.

After that--the V4 manual was the first to be typeset with troff--the
practice of full-capping the page titles in the headers was retained.

How deliberate a choice this was is not something I can answer. The
decision was made in 1972. You could ask some of the surviving
principal Bell Labs CSRC figures on the TUHS mailing list.

> Also, does it have any functional implications? I'm especially
> interested in knowing if that may affect in any way the ability of
> man(1) to find a page when invoked as `man TIMESPEC` for example.

My understanding is that mandb(8) indexes based solely on the second
argument to the `TH` macro call and (what it interprets as) the contents
of the "Name" (or "NAME") section of the page. It parses *roff itself
as best it can to determine this. So the fact that the _first_ argument
to `TH` might be in full caps doesn't deter it. (It might in fact have
made mandb(8) authors' job easier if an "honest lettercase" practice had
arisen back in the day--but it didn't).

Since he's a mandb(8) author/maintainer, I would again defer to Colin
Watson's knowledge and expertise in this area.

> I'm not saying necessarily that I'd like to keep that behavior. I
> wouldn't mind breaking it, if it means that users will be able to
> differentiate upper- and lowercase pages. We're not in Windows (nor
> MacOS), anyway.

True, although I would take a jaundiced view toward any software project
that distinguished its man page names, whether internally or from
others' solely by a difference in lettercase.

Regards,
Branden

[-- Attachment #2: signature.asc --]