[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [mmse] Adding a footnote yields a infinite loop.
From: |
G. Branden Robinson |
Subject: |
Re: [mmse] Adding a footnote yields a infinite loop. |
Date: |
Sat, 19 Nov 2022 15:24:03 -0600 |
Hi Hans,
At 2022-11-19T21:42:41+0100, hbezemer--- via wrote:
> I noticed that when using mmse it seems to give an error when adding a
> footnote. Groff terminates with the following error message:
> "fatal error: input stack limit exceeded (probable infinite loop)"
> I can reproduce it with:
> groff -Tpdf -mmse SE.groff > SE.pdf
I was able to reproduce it too. Thanks!
Here's a fix.
diff --git a/contrib/mm/mse.tmac b/contrib/mm/mse.tmac
index dedfb10bb..8184b1434 100644
--- a/contrib/mm/mse.tmac
+++ b/contrib/mm/mse.tmac
@@ -43,7 +43,7 @@ http://savannah.gnu.org/bugs/?group=groff.
.po \n[@po]u
.pl \n[@pl]u
.
-.nr pg*footer-size 4\" 1v+footer+even/odd footer+1v
+.nr pg*footer-size 4v\" 1v+footer+even/odd footer+1v
.\"------------------------------------------------
.\" Dokumentnamn
.ds LetDNAMN
The problem is that someone (presumably macro package author Jörgen
Hägg) left the scaling unit off of the `pg*footer-size` register
assignment, so the size used for the page footer was 4 basic units
instead of 4 vees. The former value is too small by five orders of
magnitude (a factor of twelve thousand).
I hadn't really looked at mse.tmac before but I observe that it forces
the page dimensions (and offset) to fit, I think, A4 paper in portrait
format if they are not already set via the L, W, and O registers. I
suspect that will need to change to work more smoothly with groff's
papersize.tmac macro file.
I may need to add a comment about this (in English :-/) to the
groff_mmse(7) page.
In the meantime a good way to render documents requiring mmse will be as
follows.
$ groff -dpaper=a4 -mm -mmse -P -p -P a4 lorem-svenska.mm
If a different paper format is desired, setting the aforementioned
command-line registers will be important, so add the following flags.
-rLxx -rWyy -rOzz
...where xx is the paper length, yy the line length, and zz the page
offset. Use of scaling units ('c' for centimeters will be common, I
reckon) is recommended.
I'm attaching my own reproducer for your convenience. Its mostly
equivalent to yours.
Regards,
Branden
lorem.mm
Description: application/troff-mm
signature.asc
Description: PGP signature