bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #63960] [tbl] roff...rc3: missing vertical line in long tables with


From: G. Branden Robinson
Subject: [bug #63960] [tbl] roff...rc3: missing vertical line in long tables with cR=1 (default value)
Date: Sun, 26 Mar 2023 12:15:55 -0400 (EDT)

Update of bug #63960 (project groff):

                  Status:                    None => Confirmed              

    _______________________________________________________

Follow-up Comment #1:

Confirmed; thanks for the report.

The version of the ascii(7) man page in Linux man-pages 5.10 on my Debian
system did not reproduce this behavior, but the one from my Git checkout of
its project did.

I'm attaching a bespoke reproducer.

The problem appears to be that even with continuous rendering on, a notional
page length of 11 inches remains in place, extended in places by certain
macros a line at a time.  However, when we start a table with `TS`, that macro
can't have any idea how long the table will ultimately be.

Thus, if the table should happen to be long enough to cross a "page" boundary,
the vertical line (which is always drawn from the bottom up in GNU tbl) is of
the wrong length (and starts from the wrong place, too).

Here's a patch that appears to solve the problem.  It's a bit of a hack (but
so is what we do for line length in HTML output.)

Before committing, which might wait until after 1.23.0 final anyway, I'd like
to see if this hack obviates the need for the "3usekeeps" hack which I also
put in place for managing tbl tables in man pages when continuous rendering.

And ultimately, both of those hacks as well as a lot of tedium in man(7) and
mdoc(7) might be obviated if we proceed with my plans in bug #63587.


$ git di
diff --git a/tmac/an.tmac b/tmac/an.tmac
index 0d540fbcb..df92dfa27 100644
--- a/tmac/an.tmac
+++ b/tmac/an.tmac
@@ -1203,6 +1203,10 @@ contains unsupported escape sequence
 .  \" If continuous rendering, tell tbl not to use keeps.
 .  ie \\n[cR] .nr 3usekeeps 0
 .  el         .nr 3usekeeps 1
+.  if \\n[cR] \{\
+.    nr an*saved-trap-distance \\n[.t]
+.    pl +1000i
+.  \}
 .  if \\n[an*is-output-html] \{\
 .    nr an-TS-ll \\n[.l]
 .    ll 1000n
@@ -1218,6 +1222,10 @@ contains unsupported escape sequence
 .de1 TE
 .  HTML-IMAGE-END
 .  if \\n[an*is-output-html] .ll \\n[an-TS-ll]u
+.  if \\n[cR] \{\
+.    pl (u;\\n[nl] + \\n[an*saved-trap-distance])
+.    rr an*saved-trap-distance
+.  \}
 .  if !r TW .if !\\n[an-was-tbl-failure-reported] \{\
 .    ds an-msg tbl preprocessor failed, or it or soelim was not run;\"
 .    as an-msg " table(s) likely not rendered\"


Feel free to apply this to your local derivative of groff; please report any
collateral problems arising from it.

(file #54526)

    _______________________________________________________

Additional Item Attachment:

File name: brascii.7                      Size:2 KB
    <https://file.savannah.gnu.org/file/brascii.7?file_id=54526>



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?63960>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

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