help-texinfo
[Top][All Lists]
Advanced

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

Re: [help-texinfo] Overfull vbox in Concept Index leads to a blank page


From: Gavin Smith
Subject: Re: [help-texinfo] Overfull vbox in Concept Index leads to a blank page in the middle of the index
Date: Wed, 15 Jun 2016 20:57:29 +0100

On 14 June 2016 at 22:02, Robert Weiner <address@hidden> wrote:
> I am finishing a Texinfo manual and getting this one error where an overfull
> vbox in TeX causes a blank page in the Concept Index.  I don't see anything
> wrong with any of the index entries but the problem always occurs at the
> same spot in the index.
>
> Could someone have a look at the .log file and suggest how to fix this so I
> can get this published?

Thanks for sending the files.

First, the bug doesn't seem to be present with Texinfo 6.0, only with
6.1, so you could use the texinfo.tex from 6.0 instead. There would be
some small differences in formatting.

I think I've gotten to the bottom of the problem. When outputting the
double columns for the index, for the last page of double columns, the
code tries to make the left column taller than the right column.
However, in doing so, it is making the left column too high for the
page itself. This means that the double column material is too large
for the page, and it is pushed onto the next page, leaving a blank
page.

The problem became apparent because there was a change to texinfo.tex
that encouraged it to break a column before an index initial, and the
last column of your document happened to have an index initial (the
letter "V"), so it had to tell the left column to get really tall
before it would actually take on the material from the top of the
right column.

Here's the change to the code required to abandon this
column-balancing process if it ends up taller than the page:

--- ../../PROJ_SVN/doc/texinfo.tex      2016-06-15 17:31:55.000000000 +0100
+++ /home/g/src/texinfo/hyperbole-5.12/man/texinfo.tex  2016-06-15
21:03:04.000000000 +0100
@@ -5964,18 +5964,29 @@
         \global\advance\dimen@ by 1pt
       \repeat
     }%
-    address@hidden by 4
-    address@hidden by 5
-    \ifdim\ht3<address@hidden
-      % Column heights are too different, so don't make their bottoms
-      % flush with each other.  The glue at the end of the second column
-      % allows a second column to stretch, reducing the difference in
-      % height between the two.
-      \setbox0=\vbox address@hidden
-      \setbox2=\vbox address@hidden 0pt plus 0.3\ht0}%
+    \ifdim2\ht1>\vsize
+      \setbox2=\box0
+      \setbox0 = \vsplit2 to address@hidden
+      \setbox0=\vbox address@hidden
+      \setbox2=\vbox address@hidden
     \else
-      \setbox0=\vbox address@hidden
-      \setbox2=\vbox address@hidden
+      address@hidden by 5
+      address@hidden by 4
+      \global\setbox3 = \copy0
+      \global\setbox1 = \vsplit3 to address@hidden
+      \global\setbox\balancedcolumns=\vbox{\pagesofar}%
+      \ifdim\ht3<address@hidden
+        % Column heights are too different, so don't make their bottoms
+        % flush with each other.  The glue at the end of the second column
+        % allows a second column to stretch, reducing the difference in
+        % height between the two.
+        \setbox0=\vbox address@hidden
+        \setbox2=\vbox address@hidden 0pt plus 0.3\ht0}%
+      \else
+        \message{B..........................}%
+        \setbox0=\vbox address@hidden
+        \setbox2=\vbox address@hidden
+      \fi
     \fi
   \fi
   %



reply via email to

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