At 2024-04-01T09:27:27-0400, Chet Ramey wrote:
> On 3/28/24 5:11 PM, G. Branden Robinson wrote:
> > Now that we're using a correct caret/circumflex/hat glyph on
> > modern typesetters (and terminals with a Unicode repertoire), drop the
> > thicket of partial-line motion and type size-altering escape sequences,
> > certain to frighten and confuse any unfrozen caveman page authors.
> 
> I'm almost positive this came from an original BSD csh(1) man page.

Checking minnie @ TUHS, I don't see it in /usr/man/man1/csh.1 in 3BSD,
2.9BSD (which actually came later), 4BSD, or 4.4BSD.  Given those
samples, I didn't check others.

Also I should retract a concession I made.  This patch doesn't regress
the typography on AT&T troff on typesetters (or nroff to whatever line
and daisy-wheel printers people still have in service)--that was an
assumption I made.  Rather, my patch improves it.

Looking closely at the original *roff, the reason is obvious (to those
poor souls trained in reading *roff):

.B \d\s+2\*^\s-2\u\fIstring1\fP\d\s+2\*^\s-2\u\fIstring2\fP\d\s+2\*^\s-2\u
.Q !!:s\d\s+2\*^\s-2\u\fIstring1\fP\d\s+2\*^\s-2\u\fIstring2\fP\d\s+2\*^\s-2\u

If those are supposed to be _superscripts_, they're backwards.  The
"move up half line" (\u) and "move down half line" (\d) escape sequences
are swapped.

Demonstrator man(7) document and PostScript output from DWB 3.3, Solaris
10, and Heirloom Doctools troffs attached.

Regards,
Branden
.TH foo 1 2024-04-02 "groff test suite"
.ie \n(.g .ds ^ \(ha
.el       .ds ^ ^
.
.de Q
.ie \n(.g \(lq\\$1\(rq\\$2
.el \{\
.  if t ``\\$1''\\$2
.  if n "\\$1"\\$2
.\}
..
.SH Name
microtypography \- a demonstration of a change to
.IR history (3)
formatting
.SH Description
.SS Formerly
.TP
.B \d\s+2\*^\s-2\u\fIstring1\fP\d\s+2\*^\s-2\u\fIstring2\fP\d\s+2\*^\s-2\u
Quick substitution.  Repeat the last command, replacing
.I string1
with
.IR string2 .
Equivalent to
.Q !!:s\d\s+2\*^\s-2\u\fIstring1\fP\d\s+2\*^\s-2\u\fIstring2\fP\d\s+2\*^\s-2\u
(see \fBModifiers\fP below).
.SS Now
.TP
.B \*^\fIstring1\fP\*^\fIstring2\fP\*^
Quick substitution.  Repeat the last command, replacing
.I string1
with
.IR string2 .
Equivalent to
.Q !!:s\*^\fIstring1\fP\*^\fIstring2\fP\*^
(see \fBModifiers\fP below).

Attachment: microtypography.dwb.ps
Description: PostScript document

Attachment: microtypography.solaris10.ps
Description: PostScript document

Attachment: microtypography.heirloom.ps
Description: PostScript document

Attachment: signature.asc
Description: PGP signature

Reply via email to