[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposed GNU troff behavior change: require end-of-input macros to e
From: |
G. Branden Robinson |
Subject: |
Re: Proposed GNU troff behavior change: require end-of-input macros to exit |
Date: |
Sun, 17 Dec 2023 14:53:52 -0600 |
Hi Deri,
At 2023-12-10T18:43:42+0000, Deri wrote:
> On Saturday, 9 December 2023 19:25:27 GMT G. Branden Robinson wrote:
> > When a line of output is "finished" and sent to the device
> > (device-independent output is prepared for it), the vertical
> > position advances by one vee, and, (in groff, if vertical position
> > traps are not disabled,) any visible vertical position traps planted
> > between the previous text baseline and the new one are sprung.[1]
> > If one of these traps is what I term "the implicit page trap"[2],
> > then the page is ejected and a new one started.
>
> Is this the problem? It does not make sense to start a new page until
> groff "knows" there will be further output.
Changing that is a deeper, more intrusive change than I am proposing.
It would affect approximately all page transitions processed by the
formatter.
Not saying that it's wrong or a bad idea, but it's significantly more
ambitious than what I proposed.
> So if the implicit page trap is triggered it should set a flag to
> trigger the new page code if further output, other than "x trailer",
> is output. This is an example of troff output:-
>
> x T pdf
> x res 72000 1 1
> x init
> p1
> x font 5 TR
> f5
> s10000
> V12000
> H72000
> mr 0 0 0
> DFd
> tline
> n12000 0
> V792000
> H72000
> tline
> n12000 0
> V792000
> p2
> x trailer
> V792000
> x stop
>
> The V792000 and p2 are unnecessary unless there is further output.
That's true, but my hunch is that most *roff users over the years to
want to write within 1v of the page bottom use "local" vertical motions
from a safe distance to do so.
Hmmm, I was going to show you an exhibit involving `\V` but managed to
surprise myself.
Here's a counterexample.
$ cat ATTIC/kiss-foot.tr
.\" U.S. letter paper assumed
.sp 65v
Hello!
This produces a ONE page PostScript document with "Hello!"'s text
baseline sitting at the very boundary of the paper. And there is no
blank second page. I had predicted one, so obviously there is more for
me to understand here. (And another trip back to groff.texi with my
text editor after that.)
Obviously when the formatter performed a break and pushed the output
line, it recognized that there was no more input, and didn't break the
page as well.
Here's the grout:
$ groff -Z ATTIC/kiss-foot.tr
x T ps
x res 72000 1 1
x init
p1
x font 5 TR
f5
s10000
V792000
H72000
md
DFd
tHello!
n12000 0
x trailer
V792000
x stop
(It even _SAYS_ there's a break after the text, with the 'n12000 0'
documentary command.)
I challenge you to explain! :D
Regards,
Branden
signature.asc
Description: PGP signature