bug-groff
[Top][All Lists]
Advanced

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

[bug #61453] want native mechanism for continuous (non-paginated) render


From: G. Branden Robinson
Subject: [bug #61453] want native mechanism for continuous (non-paginated) rendering
Date: Thu, 30 Mar 2023 08:42:30 -0400 (EDT)

Follow-up Comment #7, bug #61453 (project groff):

At present I'm thinking that resolving bug #63587 will enable this well
enough.

I'm a little nervous of meddling with the semantics of a negative page length
given the potential for interaction with negative vertical drawing positions.

For one thing, one might reasonably draw a geometric primitive, like an arc,
from a negative vertical (or horizontal, for that matter) drawing position.

As #63587 proposes, we could fix the built-in, read-only register to "INT_MAX"
instead of ten thousand.

We could then migrate (some of) our macro packages to support continuous
rendering under this approach rather than the current one, which has caused
other problems.  See bug #57665 and bug #63960.

Certainly, doing


.pl \n[.R]u


lays a trap for the document/macro package author if they unthinkingly do
something like


.pl +1v


somewhere, as groff man(7) and mdoc(7) do.  This will cause an arithmetic
overflow error.

However, incrementing the page length appears to be an uncommon operation.


$ git grep 'pl +'
contrib/hdtbl/hdmisc.tmac:.    pl +1            \"      without arg increase
page length by 1v
contrib/hdtbl/hdmisc.tmac:.    pl +\\$1         \"      otherwise use \\$1
doc/groff.texi:.pl +1v
tmac/an.tmac:.    pl +(\\n[an-amount]u - \\n[.t]u + 1v)
tmac/an.tmac:.    if ((\\n[.p] - \\n[nl]) <= \\n[.V]) .pl +1v
tmac/an.tmac:.    pl +1v
tmac/an.tmac:.      pl +1v
tmac/an.tmac:.  ie \\n[cR] .pl +1v
tmac/an.tmac:.    pl +1v
tmac/an.tmac:.  if \\n[cR] .pl +1v
tmac/mdoc/doc-common:.    pl +(\n[doc-amount]u - \n[.t]u + 1v)
tmac/mdoc/doc-common:.  ie \n[cR] .pl +1v
tmac/mdoc/doc-common:.    pl +1v
tmac/mdoc/doc-common:.    if ((\n[.p] - \n[nl]) <= \n[.V]) .pl +1v
tmac/mdoc/doc-common:.    pl +1v
tmac/mdoc/doc-common:.      pl +1v


I expect the man(7) and mdoc(7) instances to go away when this ticket is
resolved, and hdtbl.tmac needs to be audited on this point.  (I think it
targets only HTML output, where the meaning of "page length" is not obvious.)

In principle, this approach could be adapted to conventional macro packages;
pending footnotes could be flushed at appropriate times (the end of a section,
chapter, or document).

The above also suggests that we have an example to review in our Texinfo
manual, if/when this ticket is addressed.


    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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