bug-groff
[Top][All Lists]
Advanced

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

[bug #50770] .PSPIC macro at bottom of page causes unwarranted page brea


From: Dave
Subject: [bug #50770] .PSPIC macro at bottom of page causes unwarranted page break
Date: Fri, 13 Sep 2024 20:06:05 -0400 (EDT)

Follow-up Comment #16, bug #50770 (group groff):

[comment #15 comment #15:]
> I guess I was simply casting about for something useful I can do
> to resolve this ticket.  :)

If you agree with my analysis in comment #11, I believe resolving this ticket
is as simple as removing the "+1v" from the .ne line in the .PSPIC macro.

Deri previously raised some objections to this:

[comment #6 comment #6:]
> The problem with changing it is that it breaks backward
> compatibility.... A document created 15 years ago should render
> the same now as it did then. This is an aspiration, it is not
> always true, but it is something we should aim for.

Deri and I seem to have different concepts of backward compatibility.  What he
suggests seems akin to saying a compiler, in order to be backward compatible,
must produce the same executable from version to version.  This philosophy
would forestall any new optimizations a new version of a compiler might be
able to make.

My concept is that the same input should continue to behave in the way it's
documented.  Deri is right that the extra +1v in the .ne request has been
around for groff's entire known history (though as I argue in comment #11, I
believe it's an artifact from a very early version where it was necessary),
but .PSPIC has never been _documented_ to require this extra line at the
bottom of a page.

The plain fact is, groff makes changes to improve typography all the time. 
For example, by updating the hyphenation patterns,
[http://git.savannah.gnu.org/cgit/groff.git/commit/?id=b2284ab01 commit
b2284ab01] may have changed where some word is broken, which might be trivial,
or might have the cascading effect of changing the number of lines in a
paragraph, which then changes the location of a page break, which then changes
where a diversion is output.

I think groff needs to be able to make changes that demonstrably improve
output as long as such changes are in line with its historically documented
behavior.  And removing an undocumented adjustment to a .ne call--an
adjustment that, if my comment #11 analysis is correct, remained in place only
as an oversight in a 1992 update--seems to fall under that umbrella.

> If you consider the case where a graphic does not extend too
> close to the bottom of the page, it is "usual" to have a line of
> white space between the bottom of the image and following text.
> So, if this behaviour was altered, any document which relied on
> this behaviour would look ugly since this space would disappear.

This doesn't actually apply, as the .ne request affects only whether or not a
page break happens.  It changes nothing about the spacing after the graphic if
text continues on the same page.

> Any change would also have to consider the impact if PSPIC is
> used within a diversion, i.e. not at the point it is actually
> being output to the page.

AIUI, within a diversion, .ne is effectively a no-op, so changing the value
given to .ne should not affect this case either.


    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature


reply via email to

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