diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tools/array.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tools/array.dtx | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/Master/texmf-dist/source/latex/tools/array.dtx b/Master/texmf-dist/source/latex/tools/array.dtx index e31656c5e07..2a648888065 100644 --- a/Master/texmf-dist/source/latex/tools/array.dtx +++ b/Master/texmf-dist/source/latex/tools/array.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright 1993-2014 +% Copyright 1993-2016 % % The LaTeX3 Project and any individual authors listed elsewhere % in this file. @@ -26,7 +26,7 @@ %% Copyright (C) 1989-1998 Frank Mittelbach, all rights reserved. %<+package>\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<+package>\ProvidesPackage{array} -%<+package> [2014/10/28 v2.4c Tabular extension package (FMi)] +%<+package> [2016/10/06 v2.4d Tabular extension package (FMi)] % % \fi % @@ -2126,10 +2126,15 @@ % \begin{macro}{\@halignto} % \begin{macro}{\d@llarbegin} % \begin{macro}{\d@llarend} -% In order to relieve the \textsf{save stack} we assign the -% replacement texts for =\@halignto= globally. =\d@llar= has to be -% local since otherwise nested \textsf{tabular} and \textsf{array} +% =\d@llar= has to be +% locally asigned since otherwise nested \textsf{tabular} and \textsf{array} % environments (via =\multicolumn=) are impossible. +% For 25 years or so =\@halignto= was set globally (to save space on the +% save stack, but that was a mistake: if there is a tabular in the +% output routine (e.g., in the running header) then that tabular is +% able overwrite the =\@halignto= +% setting of a tabular in the main text resulting in a very weird error. +% \changes{v2.4d}{2016/10/06}{\cs{@halignto} set locally (pr/4488)} % \changes{v2.0g}{1992/06/18}{`d@llarbegin defined on toplevel.} % When the new font selection scheme is in force we have to % we surround all =\halign= entries @@ -2151,9 +2156,10 @@ % \begin{macro}{\array} % Our new definition of =\array= then reads: % \changes{v2.0d}{1990/08/20}{`d@llar local to preamble.} +% \changes{v2.4d}{2016/10/06}{\cs{@halignto} set locally (pr/4488)} % \begin{macrocode} \def\array{\col@sep\arraycolsep - \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\gdef\@halignto{}% + \def\d@llarbegin{$}\let\d@llarend\d@llarbegin\def\@halignto{}% % \end{macrocode} % Since there might be an optional argument we call another % macro which is also used by the other environments. @@ -2176,18 +2182,20 @@ % The environments \textsf{tabular} and \textsf{tabular$*$} differ % only in the initialisation of the command =\@halignto=. Therefore % we define +% \changes{v2.4d}{2016/10/06}{\cs{@halignto} set locally (pr/4488)} % \begin{macrocode} -\def\tabular{\gdef\@halignto{}\@tabular} +\def\tabular{\def\@halignto{}\@tabular} % \end{macrocode} % and analogously for the star form. We evaluate the argument first % using =\setlength= so that users of the \texttt{calc} package can % write code like\\ =\begin{tabular*}{(\columnwidth-1cm)/2}...= % \changes{v2.3l}{1998/05/13}{Use \cs{setlength} evaluate arg % so that the calc package can be applied here (pr/2793)} +% \changes{v2.4d}{2016/10/06}{\cs{@halignto} set locally (pr/4488)} % \begin{macrocode} \expandafter\def\csname tabular*\endcsname#1{% \setlength\dimen@{#1}% - \xdef\@halignto{to\the\dimen@}\@tabular} + \edef\@halignto{to\the\dimen@}\@tabular} % \end{macrocode} % \end{macro} % \end{macro} |