Update of bug #67902 (group groff):
Status: None => Need Info
Assigned to: None => barx
_______________________________________________________
Follow-up Comment #12:
[comment #9 comment #9:]
> [comment #8 comment #8:]
>> The common case _isn't_ having vertical page margins of zero.
>
> * Sure, maybe only 5% of users do that. But of that subset of users, if 95%
> of them want the last page to have content, and 5% of them want it to be
> blank, which should be the default? Phrased differently, for said subset of
> users, what is the justification for making it their responsibility to take
> an extra step to avoid the blank page?
As I understand the formatter, the justification is that, because the program
scans ahead in its input as little as possible, it does not know at the time
it finalizes and writes out an output line that advancement to the next output
line will both cause a page break *and* that the input will supply nothing
useful to populate the page with.
Our Texinfo manual goes into considerable detail about the line output
procedure.
When a break occurs, GNU 'troff' performs the following procedure.
* Move the drawing position vertically by the "extra pre-vertical
line space", the minimum of all negative '\x' escape sequence
arguments in the pending output line. If this motion springs a
vertical position trap,(3) (*note Changing the Vertical
Spacing-Footnote-3::) including the implicit page trap,(4) (*note
Changing the Vertical Spacing-Footnote-4::) interrupt this
procedure.
* Move the drawing position vertically by the vertical line spacing.
If this motion springs a trap, including the implicit page trap,
interrupt this procedure.
* An interrupted break procedure resumes here after traps are
handled. Apply any configured adjustment and marginal
annotations,(5) (*note Changing the Vertical Spacing-Footnote-5::)
and append the pending output line to the current diversion(6)
(*note Changing the Vertical Spacing-Footnote-6::). (Often, the
"diversion" corresponds to the the output device's current page.)
* Move the drawing position vertically by the "extra post-vertical
line space", the maximum of all positive '\x' escape sequence
arguments in the line that has just been output. If this motion
springs a trap, including the implicit page trap, abort this
procedure.
* Move the drawing position vertically by the "post-vertical line
spacing" (see below). If this motion springs a trap, including the
implicit page trap, abort this procedure.
If the break procedure is interrupted or aborted because a vertical
position trap is sprung, GNU 'troff' updates the values of the '.ne' and
'.trunc' registers.(7) (*note Changing the Vertical
Spacing-Footnote-7::) Encountering the implicit page trap (ibid.) does
not alter them.
(I'm not completely happy with this material's location; to me, it feels
"buried" in the description of the `vs` request, and should be moved somewhere
more prominent.)
Throwing back to Dave to mull over my defense of (or apology for) the existing
behavior.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67902>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
