Hello,
On Mon, Jan 20, 2003 at 05:10:44PM -0500, Karl Berry wrote:
> Unfortunately, I can't see any practical way to fix this. Within TeX,
> the footnote is stored as a so-called insertion, and when it's used
> within another box, such as a @multitable, that insertion simply does
> not "migrate" out to the main vertical list where it would get typeset.
> So it disappears. This all happens within the base TeX binary and is
> not controllable by macros :(.
> (Stepan or anyone, if you have any other suggestions...)
the following workaround is possible: inside @multitable, redefine
@footnote so that it doesn't create the insertion immediately but
saves the footnote text. As soon as the current row is finished,
the saved footnote is converted to an insertion.
Patch attached: texinfo-multitable.patch
To be used with newest texinfo.tex from ftp://ftp.gnu.org/gnu/texinfo/
> Shall i provide an example to reproduce the problem?
>
> In general yes, but in this case you already sent me the input on
> help-texinfo :).
OK, I've downloaded it, so I have a test material.
I've tested it with my code and it worked.
The table is not very nice, some rows seem to be closer then another ones.
But you have chance to go back and have only one copy of the table, if the
problem with spacing of rows is somehow solved. (Insert blanks?)
I'm sure someone else will help you if you have problems with the spacing.
HTH,
Stepan Kasal
Wed Jan 22 14:25:39 CET 2003 Stepan Kasal <[EMAIL PROTECTED]>
* doc/texinfo.tex (\footnotezzz): the very beginning was moved
to \startfootins;
(\startfootins): new macro;
(\multitable, \dotable): redefine \startfootins to get footnotes
saved, use \crcrwithfootnotes;
(\crcrwithfootnotes): check for postponed footnotes each time a row
of a multitable is finished;
(\tab): no longer defined globally, just \let to & inside
@multitable.
--- texinfo.tex Tue Jan 21 12:55:39 2003
+++ texinfo.tex Wed Jan 22 14:09:34 2003
@@ -2283,14 +2283,40 @@
% not enough. That is bad. So let's go back to just & until we
% encounter the problem it was intended to solve again.
% --karl, [EMAIL PROTECTED], 20apr99.
-\def\tab{&}
+%
+% This has been moved to \dotable. --kasal, 22jan03
+%
+%\def\tab{&}
+
+% In case a @footnote appears inside an @item, save the footnote text to
+% a box and make the \insert as soon as possible (ie. when a row of the
+% table is finished. --kasal, 22jan03
+%
+\newbox\savedfootnotes
+\newdimen\savedhsize
+%
+\def\startsavedfootnote{%
+ \global\setbox\savedfootnotes = \vbox\bgroup
+ \unvbox\savedfootnotes
+ \hsize\savedhsize
+}
+\def\crcrwithfootnotes{%
+ \crcr
+ \ifvoid\savedfootnotes
+ \else
+ \noalign {\insert\footins{\box\savedfootnotes}}%
+ \fi
+}
% @multitable ... @end multitable definitions:
%
\def\multitable{\parsearg\dotable}
\def\dotable#1{\bgroup
\vskip\parskip
- \let\item\crcr
+ \let\item\crcrwithfootnotes
+ \let\tab &%
+ \let\startfootins\startsavedfootnote
+ \savedhsize\hsize
\tolerance=9500
\hbadness=9500
\setmultitablespacing
@@ -2298,7 +2324,9 @@
\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
+ \def\Emultitable{\global\setpercentfalse
+ \crcrwithfootnotes\crcr
+ \egroup\egroup}%
%
% To parse everything between @multitable and @item:
\setuptable#1 \endsetuptable
@@ -6043,7 +6071,14 @@
% \parseargline fail inside footnotes because the tokens are fixed when
% the footnote is read. --karl, 16nov96.
%
-\long\gdef\footnotezzz{\insert\footins\bgroup
+% The start of the footnote looks usually like this:
+%
+\gdef\startfootins{\insert\footins\bgroup}
+%
+% ... but this macro is redefined eg. inside a @multitable.
+%
+\long\gdef\footnotezzz{%
+ \startfootins
% We want to typeset this text as a normal paragraph, even if the
% footnote reference occurs in (for example) a display environment.
% So reset some parameters.
_______________________________________________
Bug-texinfo mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-texinfo