bug-groff
[Top][All Lists]
Advanced

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

[bug #24047] [mm] footer moved between groff 1.17.2 and 1.18


From: G. Branden Robinson
Subject: [bug #24047] [mm] footer moved between groff 1.17.2 and 1.18
Date: Tue, 15 Feb 2022 02:37:17 -0500 (EST)

Update of bug #24047 (project groff):

                  Status:               Confirmed => Wont Fix               
             Assigned to:                    None => gbranden               
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #3:


[comment #2 comment #2:]
>   I don't see anything that can be done with this report,
> except to close it.
> 
>   It is 16 years old.
> 
>   A workaround is provided by an Ubuntu report.
>

Thanks, Bjarni.  I think you're right.

Here are a few chunks of relevant information.


Version 1.17.2 released
=======================

2001-07-07  Werner LEMBERG  <wl@gnu.org>

Version 1.18.0 released
=======================

2002-07-19  Gaius Mulley  <gaius@glam.ac.uk>


Between these two milestones we see...


commit 00733e541c05d4af0d8a15de5658a4f40a5f186c
Author: Jörgen Hägg <jorgen.hagg@axis.com>
Date:   Thu May 30 05:39:54 2002 +0000

    * adding -T to VM for setting the total
      header and footer size.
    * changing pg*extra-header-size unit from v to u in DS-size
      calculation

diff --git a/contrib/mm/ChangeLog b/contrib/mm/ChangeLog
index c16f7a631..96d249e9e 100644
--- a/contrib/mm/ChangeLog
+++ b/contrib/mm/ChangeLog
@@ -1,3 +1,10 @@
+Thu May 06:30:06 2002  Joergen Haegg <jh@axis.com>
+
+       * adding -T to VM for setting the total
+         header and footer size.
+       * changing pg*extra-header-size unit from v to u in DS-size
+         calculation
+
 Mon May 05:40:16 2002  Joergen Haegg <jh@axis.com>
 
        * All lists now get an empty line before the list
diff --git a/contrib/mm/groff_mm.man b/contrib/mm/groff_mm.man
index 7fedefc66..9856951f4 100644
--- a/contrib/mm/groff_mm.man
+++ b/contrib/mm/groff_mm.man
@@ -1605,8 +1605,14 @@ the distance from the current indent to the mark.
 A third argument will prohibit printing of a blank line before each
 item.
 .TP
-.B "VM [top [bottom]]"
-Vertical margin.
+.B "VM [-T] [top [bottom]]"
+Vertical margin. Adds extra vertical top and margin space.
+Option \fB-T\fP set the total space instead.
+No argument resets the margin to zero or the default
+\fI(7v 5v)\fP if \fB-T\fP
+was used. It is higly recommended that macro \fBTP\fP and/or
+\fBEOP\fP are defined
+if using \fB-T\fP and setting top and/or bottom margin to less than the
default.
 .TP
 .B "WA [writer-name [title]]"
 Begins specification of the writer and writer's address.
diff --git a/contrib/mm/m.tmac b/contrib/mm/m.tmac
index 1b189446c..1d038d9b0 100644
--- a/contrib/mm/m.tmac
+++ b/contrib/mm/m.tmac
@@ -433,16 +433,16 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .\"------------
 .de nP
 .\"    skip P if previous heading
-.ie !((\\n[nl]=\\n[hd*last-pos]):(\\n[nl]=(\\n[hd*last-pos]-.5v))) \{\
-.      if \\n[D]>2 .tm Paragraph nl=\\n[nl]
-.      par@doit \\$*
-\\n[H2].\\n+[par*number2]\ \ \c
+.if \\n[D]>2 \{\
+.      tm Paragraph nl=\\n[nl], last=\\n[hd*last-pos]
+.      tm Paragraph .k=\\n[.k], hsize=\\n[hd*last-hsize]
 .\}
-.el .if !(\\n[hd*last-hsize]=\\n[.k]) \{\
-.      if \\n[D]>2 .tm Paragraph nl=\\n[nl]
-.      par@doit \\$*
-\\n[H2].\\n+[par*number2]\ \ \c
+.if !((\\n[nl]=\\n[hd*last-pos]):(\\n[hd*last-hsize]=\\n[.k])) \{\
+.      if \\n[D]>2 .tm Paragraph set ind-flag=1
+.      nr par@ind-flag 1
 .\}
+.par@doit \\$*
+\\n[H2].\\n+[par*number2]\ \ \c
 .nr par@ind-flag 1
 ..
 .\"------------
@@ -1109,8 +1109,8 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .nr pg*top-margin 0
 .nr pg*foot-margin 0
 .nr pg*block-size 0
-.nr pg*footer-size 5\"                  1v+footer+even/odd footer+2v
-.nr pg*header-size 7\"                  3v+header+even/odd header+2v
+.nr pg*footer-size 5v\"                         1v+footer+even/odd footer+2v
+.nr pg*header-size 7v\"                         3v+header+even/odd header+2v
 .nr pg*extra-footer-size 0
 .nr pg*extra-header-size 0
 .nr ft*note-size 0
@@ -1124,14 +1124,14 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 .\"-------------------------
 .\" footer TRAPS: set, enable and disable
 .de pg@set-new-trap
-.nr pg*foot-trap
\\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u)
+.nr pg*foot-trap
\\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u)
 .\"
-.if \\n[D]>2 .tm pg*foot-trap
\\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v+\\n[pg*extra-footer-size]u)
= \\n[pg*foot-trap]
+.if \\n[D]>2 .tm pg*foot-trap
\\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u)
= \\n[pg*foot-trap]
 .\"
 .\" last-pos points to the position of the footer and bottom 
 .\" block below foot-notes.
-.nr pg*last-pos
\\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v)
-.if \\n[D]>2 .tm pg*last-pos
\\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]v) =
\\n[pg*last-pos]
+.nr pg*last-pos
\\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u)
+.if \\n[D]>2 .tm pg*last-pos
\\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u) =
\\n[pg*last-pos]
 ..
 .de pg@enable-trap
 .wh \\n[pg*foot-trap]u pg@footer
@@ -1395,16 +1395,28 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 ..
 .\"-------------------------
 .\" set top and bottom margins 
+.\" -T sets pg*footer-size and pg*header-size instead
 .de VM
-.if \\n[.$]=0 \{\
-.      nr pg*extra-footer-size 0
-.      nr pg*extra-header-size 0
+.ie '\\$1'-T' \{\
+.      shift
+.      if \\n[.$]=0 \{\
+.              nr pg*footer-size 5v
+.              nr pg*header-size 7v
+.      \}
+.      if \\n[.$]>0 .nr pg*header-size (v;\\$1)
+.      if \\n[.$]>1 .nr pg*footer-size (v;\\$2)
 .\}
-.if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1)
-.if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2)
-.if \\n[D]>2 \{\
-.      tm extra top \\n[pg*extra-footer-size]
-.      tm extra bottom \\n[pg*extra-header-size]
+.el \{
+.      if \\n[.$]=0 \{\
+.              nr pg*extra-footer-size 0
+.              nr pg*extra-header-size 0
+.      \}
+.      if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1)
+.      if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2)
+.      if \\n[D]>2 \{\
+.              tm extra top \\n[pg*extra-footer-size]
+.              tm extra bottom \\n[pg*extra-header-size]
+.      \}
 .\}
 .pg@move-trap
 ..
@@ -2029,7 +2041,7 @@ in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%]
 'nf
 .\" calculate needed space
 .nr ds*need \\n[ds*height]
-.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]v-\\n[pg*extra-header-size]v
+.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]u-\\n[pg*extra-header-size]u
 .if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .nr ds*need
\\n[.t]u+1v
 .if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .nr ds*need
\\n[.t]u+1v
 .\"    Eject page if display will fit one page and


It appears to me that the change was deliberate.  Whether it produced better
compatibility with AT&T mm documents I cannot say.
It is not at all clear to me which behavior is more correct.  Unfortunately,
Joergen is not around anymore to discuss such things, but Ralph is.  I invite
him to lobby for a change, possibly a more disruptive one than that which he
reported to Ubuntu 16 years ago.

Closing as "Won't Fix" as it's much too late to revise the 1.18 release
series, but we can of course consider future revision of the 'mm' package in
this area.  Given the many years that have passed, I suggest reasoning from
first principles rather than reference to groff 1.17.2 behavior.

    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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