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/

Attachment: signature.asc
Description: PGP signature

Reply via email to