groff
[Top][All Lists]
Advanced

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

Re: [Groff] Proper Small Caps.


From: Ralph Corderoy
Subject: Re: [Groff] Proper Small Caps.
Date: Wed, 21 Jan 2015 16:46:39 +0000

Hi Doug and Eric,

> > Ralph wrote:
> > > IIRC, Dennis Ritchie said they did it because the CAT gave them
> > > the possibility, but it was regretted for the UNIX/Unix confusion
> > > it caused.

> Doug wrote:
> > I think this is urban legend. Small caps were not used in UNIX
> > manuals or in the Bell System Technical Journal articles about UNIX.
> > Fairly early on, we in the Unix lab began to treat Unix as a proper
> > noun, but the lawyers had trademarked the uppercase name and got
> > their way in many publications, including the books by Kernighan and
> > Ritchie and Kernighan and Pike. U\s-2NIX\s0 was very rare, if it
> > ever happened at all.

Eric wrote:
> Thank you for clearing that up.  It's a minor point, never worth
> bothering you about, but I've been wondering about it for decades.

I've done a little digging, wondering if I could find dmr saying this.
The closest, and probably were I learnt it, is (Eric's) _The Jargon
File_.

    http://www.catb.org/jargon/html/U/Unix.html
    Some people are confused over whether this word is appropriately
    ‘UNIX’ or ‘Unix’; both forms are common, and used interchangeably.
    Dennis Ritchie says that the ‘UNIX’ spelling originally happened in
    CACM's 1974 paper The UNIX Time-Sharing System because “we had a new
    typesetter and troff had just been invented and we were intoxicated
    by being able to produce small caps.”  Later, dmr tried to get the
    spelling changed to ‘Unix’ in a couple of Bell Labs papers, on the
    grounds that the word is not acronymic.  He failed, and eventually
    (his words) “wimped out” on the issue.

Eric, perhaps your private data might show the source of those quotes.

I used Debian Code Search, a newish very handy tool to search Debian's
source base now that Google have taken down Russ Cox's Google Code
Search.  That turned up definitions for UX and Ux in package 9base.
That's part of Russ Cox's plan9port;  Plan 9's commands on Unix.
9base's troff/tmac/tmac.soft has UX as \s-2UNIX\s0 and Ux was
U\s-2NIX\s0, but that's been commented out and replaced by \s-2UNIX\s0.

    http://sources.debian.net/src/9base/1:6-6/troff/tmac/tmac.soft/#L607
    .de UX
    .ie \\n(GA>0 \\$2\s-2UNIX\s0\\$1
    .el \{\
    .if n \\$2UNIX\(dg\\$1
    .if t \\$2\s-2UNIX\s0\(dg\\$1
    .FS
    \(dg \s-2UNIX\s0 is a registered trademark of X/Open.
    .FE
    .nr GA 1\}
    ..
    .de Ux \" cap-small cap, not used
    .\" .ie \\n(GA>0 \\$2U\s-2NIX\s0\\$1
    .ie \\n(GA>0 \\$2\s-2UNIX\s0\\$1
    .el \{\
    .if n \\$2UNIX*\\$1
    .\".if t \\$2U\s-2NIX\s0*\\$1
    .if t \\$2\s-2UNIX\s0*\\$1
    .FS
    * \s-2UNIX\s0 is a registered trademark of X/Open.
    .FE
    .nr GA 1\}
    ..

Going to Plan 9, http://www.plan9.bell-labs.com/wiki/plan9/tmac/ says
tmac.soft is "macros from mel…, not documented - perhaps for "SOFTWARE -
Practice and Experience"".  tmac.soft at
http://plan9.bell-labs.com/sources/plan9/sys/lib/tmac/tmac.soft also has
U\s-2NIX\s0, but commented out.

Another historical branch, Unix International, an ancestor of X/Open,
formed by AT&T and Sun, amongst others, turns up these few strings.

    
http://sources.debian.net/src/dwarfutils/20120410-2/libdwarf/dwarf.v2.mm/?hl=58#L58
    .ds aX U\s-2NIX\s+2
    .ds iX \*(aX International
    .ds uL \s-2AT&T\ USL\s+2

Lastly, 7th Ed. Unix from
http://minnie.tuhs.org/Archive/PDP-11/Distributions/research/Henry_Spencer_v7/v7.tar.gz
gives

    $ grep -r 'U\\.*NIX' .
    ./usr/doc/tbl:``The U\s-2NIX\s0 Time-Sharing System,''
    ./usr/doc/tbl:Typing Documents on U\s-2NIX\s0,
    ./usr/doc/tbl:Computer Typesetting of Technical Journals on U\s-2NIX\s0,
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Time-Sharing System: Document 
Preparation
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Time-Sharing System: The 
Programmer's Workbench
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Time-Sharing System: U\s-2NIX\s0 on 
a Microprocessor
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Time-Sharing System: The 
U\s-2NIX\s0 Shell
    ./usr/dict/papers/Rv7man:%T M\s-2UNIX\s0, A Multiprocessing Version of 
U\s-2NIX\s0
    ./usr/dict/papers/Rv7man:%T The U\s-2NIX\s0 Time-Sharing System
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Programmer's Man\&ual
    ./usr/dict/papers/Rv7man:%T The U\s-2NIX\s0 Command Language
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Time-Sharing System: Portability of 
C Programs and the U\s-2NIX\s0 System
    ./usr/dict/papers/Rv7man:%T U\s-2NIX\s0 Programmer's Manual
    ./usr/dict/papers/Rv7man:%T The Network U\s-2NIX\s0 System
    $

tbl is Mike Lesk's paper on his program.  Rv7man is refer input for
Unix/v7-related papers.  Lesk also wrote refer so probably put together
those references.  Perhaps he's the source of U\s-2NIX\s0?  (Unless it's
that Eric Schmidt chipping in;  whatever happened to him?  :-)

Mike wrote -ms too IIRC, but it does \s-2UNIX\s0.

    $ sed -n '/^\.de UX/,/^\.\.$/p' usr/lib/tmac/tmac.s
    .de UX
    .ie \\n(GA>0 \\$2\s-2UNIX\s0\\$1
    .el \{\
    .if n \\$2UNIX\\$1*
    .if t \\$2\s-2UNIX\\s0\\$1\\f1\(dg\\fP
    .FS
    .if n *UNIX
    .if t \(dgUNIX
    .ie \\$3=1 is a Footnote of Bell Laboratories.
    .el is a Trademark of Bell Laboratories.
    .FE
    .nr GA 1\}
    ..
    $

Its .SM allows for `.SM NIX "" U', but nothing in v7.tar does that.

    $ sed -n '/^\.de SM/,/^\.\.$/p' usr/lib/tmac/tmac.s
    .de SM
    .if \\n(.$>0 \&\\$3\s-2\\$1\s0\\$2
    .if \\n(.$=0 .ps -2
    ..
    $

Searching for small caps that isn't UNIX turns up some more.  (I've
deleted the ones seen above.)

    $ LC_ALL=C grep -r '[A-Z]\\s-[0-9][A-Z]' .
    ./usr/man/man1/refer.1:Capitalize (with C\s-2APS\s0 S\s-2MALL\s+2 
C\s-2APS\s0)
    ./usr/doc/troff/m4:\fB&rd\fI|prompt\fR  -       \fIprompt=\fR\s-1BEL\s+1    
    -       \
    ./usr/doc/troff/m.mac:.ds Nr "N\s-2ROFF\s+2
    ./usr/doc/troff/m.mac:.ds Tr "T\s-2ROFF\s+2
    ./usr/doc/tbl:O\s-2PTIONS.\s0
    ./usr/doc/tbl:F\s-2ORMAT\s0.
    ./usr/doc/tbl:D\s-2ATA\s0.
    ./usr/doc/tbl:A\s-2DDITIONAL COMMAND LINES\s0.
    ./usr/doc/tbl:N\s-2ROFF\s0/T\s-2ROFF\s0 User's Manual,
    ./usr/doc/refer/refer:Selecting and Formatting References for T\s-2ROFF\s0
    ./usr/doc/refer/refer:(C\s-2APS\s+2-S\s-2MALL\s+2 C\s-2APS\s+2
    ./usr/doc/refer/refer:K\s-2ERNIGHAN\s0, B. W. \s-2AND\s0 C\s-2HERRY\s0, L. 
L.\&
    ./usr/dict/papers/Rv7man:%T The M\s-2ULTICS\s0 System
    $

refer.1 has a -c option,

    .BI \-c string
    Capitalize (with C\s-2APS\s0 S\s-2MALL\s+2 C\s-2APS\s0)
    the fields whose key-letters are in
    .IR string .

-mm has Nr and Tr strings for N\s-2ROFF\s+2 and T\s-2ROFF\s+2, but a
closer look shows it has NR and TR too, and not quite so small either.

    .ds NR "\s-1NROFF\s+1
    .ds TR "\s-1TROFF\s+1
    .ds Nr "N\s-2ROFF\s+2
    .ds Tr "T\s-2ROFF\s+2

tbl and refer are again the other parties keen on S\s-2MALL\s0.

Going back to refer's -c option, it runs the fields through caps(),
turning "Unix" into "U\s-2NIX\s+2", so actually uppercasing the string.

    caps(a, b)
            char *a, *b;
    {
    char *p;
    int c, alph, this;
    p=b;
    alph = 0;
    while (c = *a++)
            {
            this = isalpha(c);
            if (this && alph==1)
                    {
                    *b++ = '\\';
                    *b++ = 's';
                    *b++ = '-';
                    *b++ = '2';
                    }
            if (!this && alph>1)
                    {
                    *b++ = '\\';
                    *b++ = 's';
                    *b++ = '+';
                    *b++ = '2';
                    }
            if (this)
                    c &= (~040);
            *b++ = c;
            alph = this ? alph+1 : 0;
            }
    if (alph>1)
            {
            *b++ = '\\';
            *b++ = 's';
            *b++ = '+';
            *b++ = '2';
            }
    *b=0;
    return (p);
    }

CSTR 54, 1992's troff user manual, small-caps the PDP in PDP-11, but not
CAT, C, etc.  ASCII is set normally and small-capped, e.g. the Roman
text "Characters are input as themselves (ASCII), ...  By default all
ASCII character are valid." has the first small, including the A.
Perhaps an earlier troff manual does small-caps differently?

CACM's _The UNIX Time-Sharing System_,
http://cacm.acm.org/magazines/1974/7/11695-the-unix-time-sharing-system/abstract
makes a PDF available,
http://delivery.acm.org/10.1145/370000/361061/p365-ritchie.pdf.  It
small-caps UNIX and the PDP of PDP-11, QED, BCPL but not C, BASIC, YACC,
Morris's TMG but not M6, I/O though not the /, ID, and maybe more.  When
UNIX starts a sentence, e.g. "UNIX differs from other systems", it's all
small, no big U.

So, U\s-2NIX\s0 is about, but not as common as \s-2UNIX\s0.  Mike Lesk
might be U\s-2NIX\s0's originator, or at least know more about its
origin.  Was \s-2UNIX\s0 imposed by external publications, e.g. CACM and
Software Practice & Experience?  Then we have Unix International with
U\s-2NIX\s0 too.

Cheers, Ralph.



reply via email to

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