[Top][All Lists]

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

Re: [groff] Regularize (sub)section cross references.

From: Ingo Schwarze
Subject: Re: [groff] Regularize (sub)section cross references.
Date: Sun, 16 Dec 2018 17:15:47 +0100
User-agent: Mutt/1.8.0 (2017-02-23)

Hi Tadziu,

Tadziu Hoffmann wrote on Sun, Dec 16, 2018 at 03:13:21PM +0100:
> someone wrote:

>> "LOUD, SHOUTING HEADINGS" are ultimately a relic from
>> the (tele)typewriter era.

> It's just a technical limitation of teletypes that they
> usually could not deal with different font sizes.  For the
> actual printed manuals, the man macros traditionally had
> the section headings printed one point size smaller, to
> lessen that impression of "shouting".  This tells us that
> the capitalization was intended as a presentational effect.
> (But it's not clear why they did not attempt to achieve
> this automatically with .tr.)

Jerry Saltzer's RUNOFF (1964) did not have a .tr request,
see the last page of

By AT&T Version 3 UNIX (1973), nroff(1) did have it, see

It seems the famous CSTR#54 only appeared in 1976, which is even
after AT&T Version 6 UNIX (1975).  And indeed, while the v7 troff(1)
manual page in 1979 says "SEE ALSO: J. F. Ossanna, Nroff/Troff
user's manual", the v6 manual page still says "SEE ALSO: TROFF
User's Manual (internal memorandum)".

The v1 roff(1) manual page only says even less, "roff is fully
described in a separate publication [reference]" (sic!), so apparently
in November 1971, even the author and the title of the roff user
manual weren't decided yet.

So it's not clear to me whether UNIX v1 roff(1) already supported
the .tr request.  But even if it did, that would not have helped:
programmable macros only appeared in nroff(1), in 1972, at least a
year after the v1 manual pages were completed - let alone begun.

We still have the source code of the v3 manual pages - the sources
of the v1 and v2 manuals appear to be lost, only scans of printed
versions and OCR'ed PostScript/PDF from those are available.  In
v3, formatting of manual pages looks like this:

   $ head /co/v3/man/man1/roff.1
  .pa 1
  .he 'ROFF (I)'6/12/72'ROFF (I)'
  .ti 0
  NAME          roff  --  format text   \" note the literal tabs here
  .ti 0
  SYNOPSIS      ...

and not even a request or escape for underline existed yet:

   $ hexdump -C /co/v3/man/man1/roff.1
00000050  30 0a 2e 6e 66 0a 53 59  4e 4f 50 53 49 53 09 72  ||
00000060  6f 66 66 08 08 08 08 5f  5f 5f 5f 20 5b 20 2b 08  |off....____ [ +.|
00000070  5f 6e 75 6d 62 65 72 20  5d 20 5b 20 2d 73 08 08  |_number ] [ -s..|
00000080  5f 5f 20 5d 20 5b 20 2d  68 08 08 5f 5f 20 5d 20  |__ ] [ -h..__ ] |

You see literal ASCII U+0008 backspace characters embedded in the
source code of that manual page!  The \fB and \fI requests then
first appear in the v4 manuals, together with the first macros;
by far not the man(7) macros yet.  For example, the v4 .sh macro
is still quite simplistic:

  .de sh
  .ne 5
  .ti 0
  .de s1
  .sp 1
  .ne 4

Not the kind of coding that would give people the idea of reformatting
headers with .tr, right?  And that is already at least three years
later than the decision to set section headers in all caps.

So i don't regard it as a big mystery how the rule "put all caps
into the source code for section headers" came to be.  The question
only is whether it is worth editing thousands of manual pages for
each operating system to get rid of the rule now.


reply via email to

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