bug-groff
[Top][All Lists]
Advanced

[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/




reply via email to

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