[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #62686] [ms] manages no-space mode suboptimally when switching colu
From: |
G. Branden Robinson |
Subject: |
[bug #62686] [ms] manages no-space mode suboptimally when switching columnation |
Date: |
Thu, 30 Jun 2022 21:03:02 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?62686>
Summary: [ms] manages no-space mode suboptimally when
switching columnation
Project: GNU troff
Submitter: gbranden
Submitted: Fri 01 Jul 2022 01:03:01 AM UTC
Category: Macro ms
Severity: 2 - Minor
Item Group: Rendering/Cosmetics
Status: In Progress
Privacy: Public
Assigned to: gbranden
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Fri 01 Jul 2022 01:03:01 AM UTC By: G. Branden Robinson <gbranden>
The `MC` macro (which is wrapped by `2C` and `1C`) sets no-space mode, but it
does so _before_ a paragraph reset `par@reset`, which does a lot of things,
including, apparently including the placement of vertical motion that no-space
mode doesn't suppress. The problem is that this spacing then occurs after the
mark for the top of the column has been set, so the columns don't appear to
align.
This causes Unix V7 ms documents from the _Unix Programmer's Manual_ to render
inconsistently with the originals, and in a needlessly uglier way besides.
Here's an example of input and nroff mode output. troff mode output is
similar.
$ cat EXPERIMENTS/MC-no-space-mode.ms
.de Li
.PP
Sed ut perspiciatis, unde omnis iste natus error sit voluptatem
accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab
illo inventore veritatis et quasi architecto beatae vitae dicta sunt,
explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur
aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione
voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum,
quia dolor sit amet consectetur adipiscivelit, sed quia non-numquam eius
modi tempora incidunt, ut labore et dolore magnam aliquam quaerat
voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam
corporis suscipitlaboriosam, nisi ut aliquid ex ea commodi consequatur?
Quis autem vel eum iure reprehenderit, qui inea voluptate velit esse,
quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo
voluptas nulla pariatur? At vero eos et accusamus et iusto odio
dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti
atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati
cupiditate non-provident, similique sunt in culpa, qui officia deserunt
mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum
facilis est et expedita distinctio. Nam libero tempore, cum soluta
nobis est eligendi optio, cumque nihil impedit, quo minus id, quod
maxime placeat, facere possimus, omnis voluptas assumenda est, omnis
dolor repellendus. Temporibus autem quibusdam et aut officiis debitis
aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae
sint et molestiae non-recusandae. Itaque earum rerum hic tenetur a
sapiente delectus, ut aut reiciendis voluptatibus maiores alias
consequatur aut perferendis doloribus asperiores repellat.
..
.TL
J'accuse, Voluptatem!
.AU
Augustine
.AI
University of Hippo
.AB
I et espicy habaniero et totam regrette id.
.AE
.MC
.SH
Introduction
.Li
.Li
groff 1.22.4 output:
$ nroff -ms EXPERIMENTS/MC-no-space-mode.ms | cat -s
J’accuse, Voluptatem!
Augustine
University of Hippo
ABSTRACT
I et espicy habaniero et totam regrette id.
voluptatum deleniti atque
Introduction corrupti, quos dolores et
quas molestias excepturi
Sed ut perspiciatis, sint, obcaecati cupiditate
unde omnis iste natus error non‐provident, similique
sit voluptatem accusantium sunt in culpa, qui officia
doloremque laudantium, totam deserunt mollitia animi, id
rem aperiam eaque ipsa, quae est laborum et dolorum fuga.
ab illo inventore veritatis Et harum quidem rerum fa‐
et quasi architecto beatae cilis est et expedita dis‐
vitae dicta sunt, explicabo. tinctio. Nam libero tem‐
Nemo enim ipsam voluptatem, pore, cum soluta nobis est
quia voluptas sit, asper‐ eligendi optio, cumque nihil
natur aut odit aut fugit, impedit, quo minus id, quod
sed quia consequuntur magni maxime placeat, facere pos‐
dolores eos, qui ratione simus, omnis voluptas as‐
voluptatem sequi nesciunt, sumenda est, omnis dolor re‐
neque porro quisquam est, pellendus. Temporibus autem
qui dolorem ipsum, quia do‐ quibusdam et aut officiis
lor sit amet consectetur debitis aut rerum necessi‐
adipiscivelit, sed quia non‐ tatibus saepe eveniet, ut et
numquam eius modi tempora voluptates repudiandae sint
incidunt, ut labore et do‐ et molestiae non‐recusandae.
lore magnam aliquam quaerat Itaque earum rerum hic tene‐
voluptatem. Ut enim ad min‐ tur a sapiente delectus, ut
ima veniam, quis nostrum ex‐ aut reiciendis voluptatibus
ercitationem ullam corporis maiores alias consequatur
suscipitlaboriosam, nisi ut aut perferendis doloribus
aliquid ex ea commodi conse‐ asperiores repellat.
quatur? Quis autem vel eum
iure reprehenderit, qui inea Sed ut perspiciatis,
voluptate velit esse, quam unde omnis iste natus error
nihil molestiae consequatur, sit voluptatem accusantium
vel illum, qui dolorem eum doloremque laudantium, totam
fugiat, quo voluptas nulla rem aperiam eaque ipsa, quae
pariatur? At vero eos et ab illo inventore veritatis
accusamus et iusto odio dig‐ et quasi architecto beatae
nissimos ducimus, qui blan‐ vitae dicta sunt, explicabo.
ditiis praesentium Nemo enim ipsam voluptatem,
‐2‐
quia voluptas sit, asper‐ aut perferendis doloribus
natur aut odit aut fugit, asperiores repellat.
sed quia consequuntur magni
dolores eos, qui ratione
voluptatem sequi nesciunt,
neque porro quisquam est,
qui dolorem ipsum, quia do‐
lor sit amet consectetur
adipiscivelit, sed quia non‐
numquam eius modi tempora
incidunt, ut labore et do‐
lore magnam aliquam quaerat
voluptatem. Ut enim ad min‐
ima veniam, quis nostrum ex‐
ercitationem ullam corporis
suscipitlaboriosam, nisi ut
aliquid ex ea commodi conse‐
quatur? Quis autem vel eum
iure reprehenderit, qui inea
voluptate velit esse, quam
nihil molestiae consequatur,
vel illum, qui dolorem eum
fugiat, quo voluptas nulla
pariatur? At vero eos et
accusamus et iusto odio dig‐
nissimos ducimus, qui blan‐
ditiis praesentium volupta‐
tum deleniti atque corrupti,
quos dolores et quas moles‐
tias excepturi sint, obcae‐
cati cupiditate non‐provi‐
dent, similique sunt in
culpa, qui officia deserunt
mollitia animi, id est labo‐
rum et dolorum fuga. Et
harum quidem rerum facilis
est et expedita distinctio.
Nam libero tempore, cum so‐
luta nobis est eligendi op‐
tio, cumque nihil impedit,
quo minus id, quod maxime
placeat, facere possimus,
omnis voluptas assumenda
est, omnis dolor repellen‐
dus. Temporibus autem
quibusdam et aut officiis
debitis aut rerum necessi‐
tatibus saepe eveniet, ut et
voluptates repudiandae sint
et molestiae non‐recusandae.
Itaque earum rerum hic tene‐
tur a sapiente delectus, ut
aut reiciendis voluptatibus
maiores alias consequatur
Here's a patch.
$ git diff tmac
diff --git a/tmac/s.tmac b/tmac/s.tmac
index f72a8d698..f93bc64de 100644
--- a/tmac/s.tmac
+++ b/tmac/s.tmac
@@ -555,10 +555,10 @@ along with this program. If not, see
<http://www.gnu.org/licenses/>.
. el .nr pg*gutw 0
.\}
.DEVTAG ".mc \\n[pg@ncols] \\n[pg@colw] \\n[pg*gutw]"
-.ns
.nr pg*col-num 0
.nr pg@fn-colw \\n[pg@colw]*\\*[FR]
.par@reset
+.ns
.mk pg*col-top
..
.de 2C
...and the result using the same input.
$ ./build/test-groff -T utf8 -ms EXPERIMENTS/MC-no-space-mode.ms | cat -s
J’accuse, Voluptatem!
Augustine
University of Hippo
ABSTRACT
I et espicy habaniero et totam regrette id.
Introduction corrupti, quos dolores et
quas molestias excepturi
Sed ut perspiciatis, sint, obcaecati cupiditate
unde omnis iste natus error non‐provident, similique
sit voluptatem accusantium sunt in culpa, qui officia
doloremque laudantium, totam deserunt mollitia animi, id
rem aperiam eaque ipsa, quae est laborum et dolorum fuga.
ab illo inventore veritatis Et harum quidem rerum fa‐
et quasi architecto beatae cilis est et expedita dis‐
vitae dicta sunt, explicabo. tinctio. Nam libero tem‐
Nemo enim ipsam voluptatem, pore, cum soluta nobis est
quia voluptas sit, asper‐ eligendi optio, cumque nihil
natur aut odit aut fugit, impedit, quo minus id, quod
sed quia consequuntur magni maxime placeat, facere pos‐
dolores eos, qui ratione simus, omnis voluptas as‐
voluptatem sequi nesciunt, sumenda est, omnis dolor re‐
neque porro quisquam est, pellendus. Temporibus autem
qui dolorem ipsum, quia do‐ quibusdam et aut officiis
lor sit amet consectetur debitis aut rerum necessi‐
adipiscivelit, sed quia non‐ tatibus saepe eveniet, ut et
numquam eius modi tempora voluptates repudiandae sint
incidunt, ut labore et do‐ et molestiae non‐recusandae.
lore magnam aliquam quaerat Itaque earum rerum hic tene‐
voluptatem. Ut enim ad min‐ tur a sapiente delectus, ut
ima veniam, quis nostrum ex‐ aut reiciendis voluptatibus
ercitationem ullam corporis maiores alias consequatur
suscipitlaboriosam, nisi ut aut perferendis doloribus
aliquid ex ea commodi conse‐ asperiores repellat.
quatur? Quis autem vel eum
iure reprehenderit, qui inea Sed ut perspiciatis,
voluptate velit esse, quam unde omnis iste natus error
nihil molestiae consequatur, sit voluptatem accusantium
vel illum, qui dolorem eum doloremque laudantium, totam
fugiat, quo voluptas nulla rem aperiam eaque ipsa, quae
pariatur? At vero eos et ab illo inventore veritatis
accusamus et iusto odio dig‐ et quasi architecto beatae
nissimos ducimus, qui vitae dicta sunt, explicabo.
blanditiis praesentium Nemo enim ipsam voluptatem,
voluptatum deleniti atque quia voluptas sit,
‐2‐
aspernatur aut odit aut asperiores repellat.
fugit, sed quia consequuntur
magni dolores eos, qui ra‐
tione voluptatem sequi
nesciunt, neque porro
quisquam est, qui dolorem
ipsum, quia dolor sit amet
consectetur adipiscivelit,
sed quia non‐numquam eius
modi tempora incidunt, ut
labore et dolore magnam ali‐
quam quaerat voluptatem. Ut
enim ad minima veniam, quis
nostrum exercitationem ullam
corporis suscipitlaboriosam,
nisi ut aliquid ex ea com‐
modi consequatur? Quis
autem vel eum iure reprehen‐
derit, qui inea voluptate
velit esse, quam nihil mo‐
lestiae consequatur, vel il‐
lum, qui dolorem eum fugiat,
quo voluptas nulla pariatur?
At vero eos et accusamus et
iusto odio dignissimos
ducimus, qui blanditiis
praesentium voluptatum de‐
leniti atque corrupti, quos
dolores et quas molestias
excepturi sint, obcaecati
cupiditate non‐provident,
similique sunt in culpa, qui
officia deserunt mollitia
animi, id est laborum et do‐
lorum fuga. Et harum quidem
rerum facilis est et expe‐
dita distinctio. Nam libero
tempore, cum soluta nobis
est eligendi optio, cumque
nihil impedit, quo minus id,
quod maxime placeat, facere
possimus, omnis voluptas as‐
sumenda est, omnis dolor re‐
pellendus. Temporibus autem
quibusdam et aut officiis
debitis aut rerum necessi‐
tatibus saepe eveniet, ut et
voluptates repudiandae sint
et molestiae non‐recusandae.
Itaque earum rerum hic tene‐
tur a sapiente delectus, ut
aut reiciendis voluptatibus
maiores alias consequatur
aut perferendis doloribus
I'm putting this ticket in item group "Rendering/Cosmetics" rather than
"Incorrect Behavior" because ms(7) is fairly loosely specified, and I don't
think this detail is documented anywhere. I welcome correction on this point.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?62686>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #62686] [ms] manages no-space mode suboptimally when switching columnation,
G. Branden Robinson <=