Wed Jan 22 14:25:39 CET 2003 Stepan Kasal * 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, address@hidden, 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.