[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: -ms regression
From: |
G. Branden Robinson |
Subject: |
Re: -ms regression |
Date: |
Fri, 10 Nov 2023 17:56:25 -0600 |
Hi Doug,
At 2023-11-10T17:55:18-0500, Douglas McIlroy wrote:
> This diagnostic in -ms 1.23.0 breaks a document that works with 1.22.4:
>
> error: .AB is not allowed after first .AB, .LP, .PP, .IP, .SH or .NH
>
> This dictum is unreasonably prescriptive. The "error" is the
> appearance of .LP in a cover sheet for the document.
Where in the cover sheet? I find I can use it without error or
disruption inside an abstract. See attachment.
If I abuse `LP` to try to put some space after an author, say to name
another author, then I get similar diagnostics.
--- /tmp/LP-in-abstract-OK.ms 2023-11-10 17:27:48.780369355 -0600
+++ /tmp/LP-in-abstract-BAD.ms 2023-11-10 17:27:48.780369355 -0600
@@ -3,6 +3,8 @@
The Twin Prime Paradox
.AU
I. M. Brilliante
+.LP
+T. S. Clown
.AI
Bumblescum College
.AB
$ nroff -ms -z /tmp/LP-in-abstract-BAD.ms
s.tmac:/tmp/LP-in-abstract-BAD.ms:10: error: .AB is not allowed after first
.AB, .LP, .PP, .IP, .SH or .NH
s.tmac:/tmp/LP-in-abstract-BAD.ms:22: error: .AE without .AB
But without seeing your input, I can't be sure that's what's going on.
Let me attempt to stick to my prescriptivist guns and see if I am
persuasive.
In ms(7), paragraphing macros have multiple functions. They end a
previous paragraph, they start a new one, and--importantly for our
purposes--they tell the macro package that the document's front matter
is complete and that the document proper is starting.
Document description macros
Define information describing the document by calling the macros
below in the order shown; .DA or .ND can be called to set the
document date (or other identifier) at any time before (a) the
abstract, if present, or (b) its information is required in a
header or footer. Use of these macros is optional, except that
.TL is mandatory if any of .RP, .AU, .AI, or .AB is called, and
.AE is mandatory if .AB is called.
[synopses for RP, TL, AU, AI, DA, ND, AB, and AE follow]
So when `LP` or `PP` appears as the next macro call after `TL`,[1] how
is the package to know whether you're using it to get some space in the
output, or inaugurating your main matter?
After my "Retypesetting Mathematics" adventure, where I observed many
differences among ms(7) implementations in vertical placement of cover
sheet material,[2] I decided that only safe way to manage vertical
spacing in ms(7) front matter was with formatter requests--except inside
an abstract, where you have more flexibility because it's
block-structured: there _must_ be an `AE` call to conclude the abstract,
so the macro package does not get into a confused state.
What do you think?
If I am not persuasive, please consider sharing the document source, or
at least the initial part of it, with me and I'll see what happens when
I crash my mental model of The Right Way(tm) up against the work of your
practiced hand.
Regards,
Branden
[1] or `AU`, or `AI`
[2] https://github.com/g-branden-robinson/retypesetting-mathematics
LP-in-abstract-OK.ms
Description: Troff MS-macros document
signature.asc
Description: PGP signature
- -ms regression, Douglas McIlroy, 2023/11/10
- Re: -ms regression,
G. Branden Robinson <=