Guess which chapter of UTP I'm working on right now? :-P
I'm a little over halfway through Chapter 5, in the "Displays" section.
There are some wild differences between Groff's -ms and what UTP
documents, when it comes to displays, and I think UTP isn't correct.
Quoting from UTP (starting at line 1548 in my copy, but I've been
yoinking things around):
We have already used
. CW .DS
and
. CW .DE
to mark the beginning and end of a static display.
To specify a floating display, the closing mark is the same but the
beginning is marked by a different macro:
. RS
. TS
tab(#);
lf(CW) l l .
\&.ID##Same as \f(CW.DS I\fP (indented) but floating
\&.LD##Same as \f(CW.DS L\fP (left justified) but floating
\&.CD##Same as \f(CW.DS C\fP (center each line) but floating
\&.BD##Same as \f(CW.DS B\fP (center display) but floating
. TE
But that's not what I see in groff: the .DS x macros do a static keep, as
documented in both UTP and groff docs, but the .xD macros do no keep
at all, floating or otherwise . M.E. Lesk's -ms doc[2] agrees with what I see.
Another "interesting" thing I ran across: it looks like .DS requires a
preceding
.br request to work properly. I've attached a test.n source document, and
nroff outputs for .DS with and without a preceding .br , and another using .BD
.
Without that break, the last line of the paragraph before the display follows
the
display to the next page. If I need to file a formal bug report, I'll grimace
and
get set up on savannah.
Oh, here's what Kubuntu's groff package says:
$ nroff -v
GNU nroff (groff) version 1.23.0.1528-d5d4-dirty
GNU groff version 1.23.0.1528-d5d4-dirty
It would be interesting to know where the OG UTP authors came up with
the floating keep info… is there a version of -ms out there somewhere that
does it that way? Without that info, the floating keep stuff is gone in the
next
commit. Probably tomorrow morning.
— Larry
[1] One thing about being on vacation: I have time to tackle this stuff at
night after everyone else is in bed, but I'm using the laptop with a web
client instead of the normal Mail.app - so things might look a little
different.
[2] [ https://www.troff.org/using-ms.pdf | https://www.troff.org/using-ms.pdf ]
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
qui. Sunt nihil incidunt aliquid at cum aut.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
qui. Sunt nihil incidunt aliquid at cum aut.
This chunk of blockâcentered text should
end up taking enough space that it
â 1 â
Testing Teâs2tâing One Two Three Four
and everything else below it gets pushed
to the next page.
Letâs see if it happens.
âA bold strategy, Cotton...
letâs see if it pays off for him.â
A
few
more
lines
to
waste
vertical
space.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
â 2 â
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
qui. Sunt nihil incidunt aliquid at cum aut.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
qui. Sunt nihil incidunt aliquid at cum aut.
â 1 â
Testing Teâs2tâing One Two Three Four
This chunk of blockâcentered text should
end up taking enough space that it
and everything else below it gets pushed
to the next page.
Letâs see if it happens.
âA bold strategy, Cotton...
letâs see if it pays off for him.â
A
few
more
lines
to
waste
vertical
space.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
â 2 â
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
qui. Sunt nihil incidunt aliquid at cum aut.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
Qui corporis ea beatae. Consequatur aut sed
dolorum est qui officia magnam voluptatem. Ut
aut velit fugit. Repellat rerum iste placeat
et praesentium dolores. Consectetur sit
numquam minus exercitationem commodi tempoâ
ribus ab quam. Optio sit aut voluptatem sapiâ
ente doloremque.
Nesciunt voluptas et alias non et veniam omâ
nis aliquid. Incidunt qui reprehenderit corâ
poris. Consectetur maxime ex temporibus quia
et aut. Reprehenderit ipsum beatae ut susâ
cipit placeat sapiente.
Modi ut minus repellat quaerat. Minima aut
animi ratione. Deleniti rem et architecto
quidem accusamus sed. Dolor ut cum totam.
Aliquam rerum quis illo possimus perspiciatis
â 1 â
Testing Teâs2tâing One Two Three Four
qui. Sunt nihil incidunt aliquid at cum aut.
This chunk of blockâcentered text should
end up taking enough space that it
and everything else below it gets pushed
to the next page.
Letâs see if it happens.
âA bold strategy, Cotton...
letâs see if it pays off for him.â
A
few
more
lines
to
waste
vertical
space.
Enim facilis non et error rem rem non. Nisi
ex quia et. Quia quisquam officia eveniet.
Modi quia dolore non quis rerum itaque facere
praesentium.
Ut libero ratione exercitationem aliquam.
Quod quae consequuntur ullam. Fugiat dicta
assumenda placeat sint sunt delectus doâ
loremque hic. Non quibusdam quia laborum perâ
ferendis saepe sed. Deleniti soluta aliquid
ut tenetur velit maxime dolor sit.
â 2 â
.nr LL 4.5i
.ds RH Testing Testing One Two Three Four
.ds CF - % -
.LP
Qui corporis ea beatae. Consequatur aut sed dolorum est qui officia magnam
voluptatem. Ut aut velit fugit. Repellat rerum iste placeat et praesentium
dolores. Consectetur sit numquam minus exercitationem commodi temporibus ab
quam. Optio sit aut voluptatem sapiente doloremque.
.LP
Nesciunt voluptas et alias non et veniam omnis aliquid. Incidunt qui
reprehenderit corporis. Consectetur maxime ex temporibus quia et aut.
Reprehenderit ipsum beatae ut suscipit placeat sapiente.
.LP
Modi ut minus repellat quaerat. Minima aut animi ratione. Deleniti rem et
architecto quidem accusamus sed. Dolor ut cum totam. Aliquam rerum quis illo
possimus perspiciatis qui. Sunt nihil incidunt aliquid at cum aut.
.LP
Enim facilis non et error rem rem non. Nisi ex quia et. Quia quisquam officia
eveniet. Modi quia dolore non quis rerum itaque facere praesentium.
.LP
Ut libero ratione exercitationem aliquam. Quod quae consequuntur ullam. Fugiat
dicta assumenda placeat sint sunt delectus doloremque hic. Non quibusdam quia
laborum perferendis saepe sed. Deleniti soluta aliquid ut tenetur velit maxime
dolor sit.
.LP
Qui corporis ea beatae. Consequatur aut sed dolorum est qui officia magnam
voluptatem. Ut aut velit fugit. Repellat rerum iste placeat et praesentium
dolores. Consectetur sit numquam minus exercitationem commodi temporibus ab
quam. Optio sit aut voluptatem sapiente doloremque.
.LP
Nesciunt voluptas et alias non et veniam omnis aliquid. Incidunt qui
reprehenderit corporis. Consectetur maxime ex temporibus quia et aut.
Reprehenderit ipsum beatae ut suscipit placeat sapiente.
.LP
Modi ut minus repellat quaerat. Minima aut animi ratione. Deleniti rem et
architecto quidem accusamus sed. Dolor ut cum totam. Aliquam rerum quis illo
possimus perspiciatis qui. Sunt nihil incidunt aliquid at cum aut.
.br
.DS B
This chunk of block-centered text should
end up taking enough space that it
and everything else below it gets pushed
to the next page.
Let's see if it happens.
\[lq]A bold strategy, Cotton...
let's see if it pays off for him.\[rq]
A
few
more
lines
to
waste
vertical
space.
.DE
.LP
Enim facilis non et error rem rem non. Nisi ex quia et. Quia quisquam officia
eveniet. Modi quia dolore non quis rerum itaque facere praesentium.
.LP
Ut libero ratione exercitationem aliquam. Quod quae consequuntur ullam. Fugiat
dicta assumenda placeat sint sunt delectus doloremque hic. Non quibusdam quia
laborum perferendis saepe sed. Deleniti soluta aliquid ut tenetur velit maxime
dolor sit.