From fd52ae5add99db57c832177d0d39a712a413b1c4 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 19 Nov 2010 23:48:39 +0000 Subject: tabu 1.3 (18nov10) git-svn-id: svn://tug.org/texlive/trunk@20495 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tabu/tabu.pdf | Bin 926203 -> 1342764 bytes Master/texmf-dist/source/latex/tabu/tabu.drv | 6 +- Master/texmf-dist/source/latex/tabu/tabu.dtx | 281 ++++++++++++++++++--------- Master/texmf-dist/source/latex/tabu/tabu.ins | 6 +- Master/texmf-dist/tex/latex/tabu/tabu.sty | 140 +++++++------ 5 files changed, 270 insertions(+), 163 deletions(-) (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/tabu/tabu.pdf b/Master/texmf-dist/doc/latex/tabu/tabu.pdf index 4248c052a22..24ce0ba543a 100644 Binary files a/Master/texmf-dist/doc/latex/tabu/tabu.pdf and b/Master/texmf-dist/doc/latex/tabu/tabu.pdf differ diff --git a/Master/texmf-dist/source/latex/tabu/tabu.drv b/Master/texmf-dist/source/latex/tabu/tabu.drv index 8b67146f46b..2b23f068a87 100644 --- a/Master/texmf-dist/source/latex/tabu/tabu.drv +++ b/Master/texmf-dist/source/latex/tabu/tabu.drv @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% tabu : 2010/11/15 v1.2 - tabu : Flexible LaTeX tabulars +%% tabu : 2010/11/18 v1.3 - tabu : Flexible LaTeX tabulars %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -25,8 +25,8 @@ %% \edef\thisfile{\jobname} \def\thisinfo{Flexible \LaTeX{} tabulars (\FC)} -\def\thisdate{2010/11/15} -\def\thisversion{1.2} +\def\thisdate{2010/11/18} +\def\thisversion{1.3} \def\CTANbaseurl{http://www.ctan.org/tex-archive/macros/latex} \def\CTANdisplay{CTAN:macros/latex} \makeatletter\protected\def\CTANhref{\@ifstar\CTANhrefstar\CTANhrefnost}\makeatother diff --git a/Master/texmf-dist/source/latex/tabu/tabu.dtx b/Master/texmf-dist/source/latex/tabu/tabu.dtx index 16717a66ac4..8293de6dd76 100644 --- a/Master/texmf-dist/source/latex/tabu/tabu.dtx +++ b/Master/texmf-dist/source/latex/tabu/tabu.dtx @@ -1,5 +1,5 @@ % \iffalse meta-comment -% tabu : 2010/11/15 v1.2 - tabu: flexible LaTeX tabulars] +% tabu : 2010/11/18 v1.3 - tabu: flexible LaTeX tabulars] % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -36,7 +36,7 @@ \input docstrip.tex \Msg{************************************************************************} \Msg{* Installation} -\Msg{* Package: 2010/11/15 v1.2 - tabu: Flexible LaTeX tabulars} +\Msg{* Package: 2010/11/18 v1.3 - tabu: Flexible LaTeX tabulars} \Msg{************************************************************************} \keepsilent @@ -47,7 +47,7 @@ This is a generated file. -tabu : 2010/11/15 v1.2 - tabu : Flexible LaTeX tabulars +tabu : 2010/11/18 v1.3 - tabu : Flexible LaTeX tabulars This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either @@ -98,8 +98,8 @@ Copyright (C) 2010 by Florent Chervet %<*driver> \edef\thisfile{\jobname} \def\thisinfo{Flexible \LaTeX{} tabulars (\FC)} -\def\thisdate{2010/11/15} -\def\thisversion{1.2} +\def\thisdate{2010/11/18} +\def\thisversion{1.3} \def\CTANbaseurl{http://www.ctan.org/tex-archive/macros/latex} \def\CTANdisplay{CTAN:macros/latex} \makeatletter\protected\def\CTANhref{\@ifstar\CTANhrefstar\CTANhrefnost}\makeatother @@ -130,7 +130,6 @@ Copyright (C) 2010 by Florent Chervet \usepackage{xfrac} \csname endofdump\endcsname \CodelineNumbered -%\OnlyDescription \usepackage{fancyvrb}\fvset{gobble=1,listparameters={\topsep=0pt}} \usepackage[linegoal,debugshow]{tabu} \lastlinefit999 @@ -150,7 +149,7 @@ Copyright (C) 2010 by Florent Chervet % % \fi % -% \CheckSum{3471} +% \CheckSum{3520} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -323,11 +322,9 @@ Copyright (C) 2010 by Florent Chervet % \newgeometry{top=0.8cm,headheight=.5cm,headsep=.3cm,bottom=1.2cm,footskip=.5cm,left=5cm,right=.50cm} % \pagesetup*{ % left/offset+=1cm,right/offset-=1cm, -% head/color=Lavender, % head/left=\moveleft1cm\vbox to\z@{\vss\setbox0=\null\ht0=\z@\wd0=\paperwidth\dp0=\headheight\rlap{\colorbox{GhostWhite}{\box0}}}\vskip-\headheight t\,a\,b\,u\,\ \ i\,m\,p\,l\,e\,m\,e\,n\,t\,a\,t\,i\,o\,n, % }% % \clearpage -% ^^A\tocsetup{depth-=1} % \sectionformat\section{bookmark/color=black}\sectionformat\subsection{bookmark/color=black} % \bookmarksetup{bold*,openlevel=3} % \section(Implementation)[\mdseries\scshape\pmb{Implementation}]{Implementation} \label{sec:implementation}} @@ -391,10 +388,11 @@ Copyright (C) 2010 by Florent Chervet % % \end{abstract}} % -% \makeatletter +% \makeatletter \enlargethispage\baselineskip % \tocsetup{ % dot=$\scriptscriptstyle\ldotp$, % dotsep=1mu, +% title/top=8pt plus2pt minus4pt, % title/bottom=6pt, % title=Contents\quad\leaders\vrule height3.1pt depth-3pt\hfill\null, % bookmark={text=Contents,bold}, @@ -572,7 +570,6 @@ Copyright (C) 2010 by Florent Chervet % \begin{tabu} spread 3cm{@{}X[9]X[4]|X|} % \end{Verb*} % -% % {\footnotesize % \begin{tabu} spread 3cm{@{}X[9]>{\parskip=5pt}X[4]|X|} % "Like the air we breathe, Sherlock Holmes is everywhere. @@ -592,6 +589,45 @@ Copyright (C) 2010 by Florent Chervet % % In the preamble, \textt{@\M*{}} means that you remove the margin. % +% \subsubsection{Multicolumn in \textt{tabu}} +% +% \begin{declcs}{tabuphantomline} +% \end{declcs} +% +% The process of \cs{multicolumn} implies the \TeX{} primitive \cs{omit} which discard the tabular preamble +% for the spanned columns. Discarding the preamble means discarding the information about the widths of the +% columns. This explains why the following example does not work properly: +% +% \begin{Verb*} +% \begin{tabu}{|X|X|X[2]|} \tabucline- +% \multicolumn2{|c|}{Hello} & World \\ \tabucline- +% \end{tabu} +% \end{Verb*} +% +% \begin{tabu}{|X|X|X[2]|} \tabucline- +% \multicolumn2{|c|}{Hello} & World \\ \tabucline- +% \end{tabu} +% +% The correct result can be obtained by the mean of a phantom line, that will remain invisible +% unless your preamble contains special \texttbf @ or \texttbf ! columns that prints some text: +% +% \begin{Verb*} +% \begin{tabu}{|X|X|X[2]|} \tabucline- +% \multicolumn2{|c|}{Hello} & World \\ \tabucline- +% \tabuphantomline +% \end{tabu} +% \end{Verb*} +% +% \begin{tabu}{|X|X|X[2]|} \tabucline- +% \multicolumn2{|c|}{Hello} & World \\ \tabucline- +% \tabuphantomline +% \end{tabu} +% +% Remember you may need \cs{tabuphantomline} in conjunction with \cs{savetabu} and \cs{usetabu} with \cs{multicolumn}. +% Even if it is possible to add a \cs{tabuphantomline} in any line of the \textt{tabu}, it is a good practice +% to append it \emph{at the end} of the \textt{tabu}, for it may introduce indesirable side effects on vertical alignment +% otherwise, when \textt{tabu} is nested inside another tabular. +% % % \subsubsection{Nesting \textt{tabu}{\texorpdf\small s} with \textt X columns} % @@ -705,13 +741,13 @@ Copyright (C) 2010 by Florent Chervet % {\makeatletter % \begin{tabu}{*3{X[mc]}} % \extrarowheight=8pt -% \begin{tabu}{|[1pt]X|X|[1pt]} \tabucline- +% \begin{tabu}[c]{|[1pt]X|X|[1pt]} \tabucline- % Hello & world \\ \tabucline[1pt on 2pt off 2pt,blue]- % Hello & world \\ \tabucline- % \end{tabu} % & % \extrarowheight=8pt -% \begin{tabu}{|[1pt]X|X|[1pt]} \tabucline*- +% \begin{tabu}[c]{|[1pt]X|X|[1pt]} \tabucline*- % Hello & world \\ \tabucline*[1pt on 2pt off 2pt blue]- % Hello & world \\ \tabucline*- % \end{tabu} @@ -733,7 +769,6 @@ Copyright (C) 2010 by Florent Chervet % Well this is not perfect: it works pretty well with simple vertical lines, but not really with double % lines, triple lines with colors etc... But it can help in simple cases... % -% \pagebreak % \begin{declcs}{tabulinestyle}\M{style=spec., style=spec., style=spec. ...} % \end{declcs} % @@ -833,6 +868,7 @@ Copyright (C) 2010 by Florent Chervet % \alpha & \beta \\ % \gamma & \delta % \end{tabu}$ +% \tabuphantomline % \end{tabu} % % \bigskip @@ -992,13 +1028,12 @@ Copyright (C) 2010 by Florent Chervet % {\centering % \extrarowheight=8pt % \begin{tabu}to .6\linewidth{X[m]} \tabucline- -% % \extrarowheight=0pt % \begin{tabu}({X}) % This is \textt{tabu} with \xpackage{delarray} shortcut for parenthesis around % \end{tabu} % \\ \tabucline[1pt on2pt blue]- -% +% % \extrarowheight=0pt % \begin{tabularx}{\linewidth}[t]({X}) % This is \textt{tabularx} with \xpackage{delarray} shortcut for parenthesis around @@ -1017,7 +1052,8 @@ Copyright (C) 2010 by Florent Chervet % \end{tabularx} % \\ \tabucline- % -% \end{tabu}\par} +% \end{tabu} +% \par} % % With \textt{overfull hboxes (15.8pt and 16.1pt too wide)} for \textt{tabularx}. % @@ -1064,9 +1100,6 @@ Copyright (C) 2010 by Florent Chervet % \begin{tabu}to .7\linewidth{|XXX|X[c]|} ($db(\savetabu)){mytabu} \tabucline*[on1pt]- % This & is & tabu & package \\ \tabucline*[on1pt]- % \end{tabu} -% \begin{tabu}{($db(\usetabu)){mytabu}} \tabucline*[on1pt]- -% \multicolumn3{|c}{This is tabu} & package \\ \tabucline*[on1pt]- -% \end{tabu} % \end{Verb*} % % \begin{center} @@ -1074,13 +1107,21 @@ Copyright (C) 2010 by Florent Chervet % \begin{tabu}to .7\linewidth{|XXX|X[c]|} \savetabu{mytabu} \tabucline*[myline]- % This & is & tabu & package \\ \tabucline*[myline]- % \end{tabu} +% \end{center} % +% \begin{Verb*} +% \begin{tabu}{($db(\usetabu)){mytabu}} \tabucline*[on1pt]- +% \multicolumn3{|c}{This is tabu} & package \\ \tabucline*[on1pt]- +% \tabuphantomline +% \end{tabu} +% \end{Verb*} % +% \begin{center} % \begin{tabu}{\usetabu{mytabu}} \tabucline*[myline]- % \multicolumn3{|c|}{This is tabu} & package \\ \tabucline*[myline]- +% \tabuphantomline % \end{tabu} -% -% \end{center} +% \end{center} % % If one day you use \textt{tabu}, you will have the idea to restore a \textt{tabu} while modifying its target, % or adding new columns... \cs{savetabu} and \cs{usetabu} have not been thought for this purpose, and you may @@ -1112,6 +1153,20 @@ Copyright (C) 2010 by Florent Chervet % Any other value for the optional \meta{alignment} parameter is silently ignored. If \xpackage{ragged2e} is not loaded, % \textt L\, \textt R\, \textt C\, and\, \textt J\, are synonymous with the lowercase equivalent. % +% \begin{Verb*} +% \begin{tabu}{|X|X|} \tabucline- +% ($db(\rowfont))[c]\bfseries +% This & Is \\ \tabucline[on 2pt,blue]- +% \textt{tabu} & package \\ \tabucline- +% \end{tabu} +% \end{Verb*} +% +% \begin{tabu}{|X|X|}\tabucline- +% \rowfont[c]\bfseries This & Is \\ \tabucline[on 2pt,blue]- +% \textt{tabu} & package \\ \tabucline- +% \end{tabu} +% +% % \section(Differences: tabu, tabular, tabularx){Differences between \textt{tabu}, \textt{tabular} and \textt{tabularx}} % % \subsection{Paragraph indentation} @@ -1397,7 +1452,7 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu}[2010/11/15 v1.2 - flexible LaTeX tabulars (FC)] +\ProvidesPackage{tabu}[2010/11/18 v1.3 - flexible LaTeX tabulars (FC)] \RequirePackage{array}[2008/09/09] % \end{macrocode} % @@ -1507,6 +1562,8 @@ Copyright (C) 2010 by Florent Chervet \newcount\tabu@cnt \newcount\tabu@nbcols \newcount\tabu@X@cols +\newcount\tabu@start +\newcount\tabu@stop % \end{macrocode} % \end{macro} % \end{macro} @@ -1586,6 +1643,8 @@ Copyright (C) 2010 by Florent Chervet % % \begin{macrocode} \newsavebox\tabu@box +\chardef\tabu@arstrutbox=\@arstrutbox +\let\tabu@vcenter \vcenter % \end{macrocode} % \end{macro} % @@ -1670,7 +1729,6 @@ Copyright (C) 2010 by Florent Chervet \let\save@decl \tabu@save@decl % inversion of tokens in text mode \let\NC@rewrite@X \tabu@NC@rewrite@X \aftergroup \tabu@global@temp - \aftergroup \tabu@firstcline \NC@find \tabu@rewritelast }% NC@rewrite@\tabu@rewritefirst \expandafter\def\csname NC@find@\string\tabu@rewritefirst\endcsname @@ -1706,7 +1764,11 @@ Copyright (C) 2010 by Florent Chervet \def\tabu@rewritelast{% \ifx \@halignto\relax % found a X column \let\tabu@temp \@empty - \aftergroup \tabu@addphantomline + %\aftergroup \tabu@addphantomline + \ifx \tabu@halignto\relax % X column measure + \aftergroup \tabu@prep@TRIAL + \else \aftergroup \tabu@setup@everycr + \fi \else \ifdim \tabu@target=\z@ \let\tabu@temp \@empty \else @@ -1714,6 +1776,7 @@ Copyright (C) 2010 by Florent Chervet \if !\noexpand\tabu@temp \def\tabu@temp{@{\extracolsep\@flushglue}}\else \def\tabu@temp{!{\extracolsep\@flushglue}}\fi\fi \fi + \aftergroup\tabu@setup@everycr \fi \let\@halignto \tabu@halignto \expandafter\NC@find \tabu@temp @@ -1732,7 +1795,7 @@ Copyright (C) 2010 by Florent Chervet % This switch is set At Begin Document. % % \begin{macrocode} -\newtoks\tabu@everycr@tok +%%\newtoks\tabu@everycr@tok \newif\iftabu@colortbl % \end{macrocode} % \end{macro} @@ -1754,32 +1817,6 @@ Copyright (C) 2010 by Florent Chervet % \end{macrocode} % \end{macro} % -% \begin{macro}{\tabu@phantomline} -% -% This macro inserts a phantom line in front of a \textt{tabu}. -% This is necessary when you use \cs{usetabu} with \textt{tabu X} column, -% with a single line containing \cs{multicolumn}... -% -% \begin{macrocode} -\def\tabu@phantomline{\noalign{% - \global\everycr{}% - \global\setbox\tabu@box\box\@arstrutbox - \global\let\tabu@minrowclearance \minrowclearance - \global\let\minrowclearance \z@ - \global\let\tabu@temp \vcenter - \global\let\vcenter \vbox - \toks@{}\count@\@ne - \@whilenum\count@<\tabu@nbcols\do{\advance\count@\@ne - \toks@\expandafter{\the\toks@&}}% - \toks@\expandafter{\the\toks@ - \cr\noalign{\global\setbox\@arstrutbox\box\tabu@box - \global\let\minrowclearance \tabu@minrowclearance - \global\let\vcenter \tabu@temp}}% - \expandafter}\the\toks@ -}% \tabu@phantomline -% \end{macrocode} -% \end{macro} -% % \subsection{\cs{tabu} and \cs{endtabu}} % % \begin{macro}{\tabu} @@ -1821,6 +1858,8 @@ Copyright (C) 2010 by Florent Chervet \def\tabu@aligndefault{t}\def\tabudefaulttarget{\linewidth}% \else \tabu@nestedfalse \def\tabu@aligndefault{c}% + \global\tabu@footnotes{}% + \aftergroup\the\aftergroup\tabu@footnotes \ifdim\parindent>\z@ \ifx\linewidth\tabudefaulttarget \everypar\expandafter{% % correction for indentation \the\everypar\everypar\expandafter{\the\everypar}% @@ -1832,10 +1871,6 @@ Copyright (C) 2010 by Florent Chervet \fi \let\@footnotetext \tabu@footnotetext \let\@xfootnotenext\tabu@xfootnotetext - \iftabu@nested\else - \global\tabu@footnotes{}% - \aftergroup\the\aftergroup\tabu@footnotes - \fi \let\centering \tabu@centering \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft @@ -1845,6 +1880,7 @@ Copyright (C) 2010 by Florent Chervet \let\fbox \tabu@fbox \let\prepnext@tok \tabu@prepnext@tok % \let\rowfont \tabu@rowfont + \everycr{}\let\tabu@everycr \everycr \tabu@spreadfalse \tabu@measuringfalse \edef\tabu@hfuzz{\ifdim\hfuzz<.1\p@ .1\p@\else\the\hfuzz\fi}% \tabu@rewritefirst @@ -2135,7 +2171,9 @@ Copyright (C) 2010 by Florent Chervet % This macro replaces \cs{tabu@rewrite@X} in the case of \cs{usetabu}. % % \begin{macrocode} -\def\tabu@rewrite@Xnested#1{\def\tabucolX@spec{p{\tabucolX}}} +\def\tabu@rewrite@Xnested#1{\in@ ${#1}\ifin@ + \def\tabucolX@spec{>{$}p{\tabucolX}<{$}}\else + \def\tabucolX@spec{p{\tabucolX}}\fi} \def\tabu@rewrite@Xrestore#1{\tabu@Xarg{#1}\let\tabucolX@spec\tabu@temp}% % \end{macrocode} % \end{macro} @@ -2163,7 +2201,6 @@ Copyright (C) 2010 by Florent Chervet \tabu@X@sum \the\tabu@X@sum\relax \tabu@target \the\tabu@target\relax}% \let\tabu@halignto \relax - \aftergroup \tabu@prep@TRIAL \fi }% \tabu@rewrite@Xto % \end{macrocode} @@ -2194,7 +2231,6 @@ Copyright (C) 2010 by Florent Chervet \tabu@spreadtarget \the\tabu@spreadtarget\relax \def\csname tabu@X\the\tabu@X@cols\endcsname{\strip@pt\tabu@X@sum}}% \let\tabu@halignto \relax - \aftergroup \tabu@prep@TRIAL \fi }% \tabu@rewrite@Xspread % \end{macrocode} @@ -2281,16 +2317,18 @@ Copyright (C) 2010 by Florent Chervet \ifx\tabucolX@spec\@empty \def\tabucolX@spec{p}\fi \ifdim \tabu@X@sum=\z@ \tabu@X@sum \p@\fi \begingroup - \ifx \tabu@Xmath\relax - \edef\tabucolX@spec##1{\tabucolX@spec{##1}}% - \else - \edef\tabucolX@spec##1{>{$}\tabucolX@spec{##1}<{$}}% - \fi + \edef\tabucolX@spec##1{\tabucolX@spec{##1}}% \edef\tabu@temp{\dimexpr\strip@pt\tabu@X@sum \tabucolX \relax}% \toks@\expandafter{\tabucolX@align}% \edef\x{% - \def\noexpand\tabu@temp{\the\toks@ \tabucolX@spec{\the\tabu@temp}}% - \def\noexpand\tabucolX@spec{\the\toks@ \tabucolX@spec{\tabu@temp}}% + \def\noexpand\tabu@temp{% + \ifx \tabu@Xmath\relax\else >{$}\fi + \the\toks@ \tabucolX@spec{\the\tabu@temp}% + \ifx \tabu@Xmath\relax\else <{$}\fi}% + \def\noexpand\tabucolX@spec{% + \ifx \tabu@Xmath\relax\else >{$}\fi + \the\toks@ \tabucolX@spec{\tabu@temp}% + \ifx \tabu@Xmath\relax\else <{$}\fi}% }\expandafter\endgroup\x }% \tabucolX@do % \end{macrocode} @@ -2312,8 +2350,8 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} \def\tabu@prep@TRIAL{% \let\tabu@savedpreamble \@preamble - \def\savetabu {\tabu@saveX}% - {\ifnum0=`}\fi + \def\savetabu {\tabu@saveX}% + \begingroup\iffalse{\fi\ifnum0=`}\fi \tabu@setup@TRIAL \iftabu@spread % first trial only \advance\tabu@X@cols \@ne @@ -2366,9 +2404,10 @@ Copyright (C) 2010 by Florent Chervet % % \begin{macrocode} \def\tabu@arrayleft@measure#1\bgroup{% - \def\tabu@Xfinish{\ifnum0=`{\fi}\tabu@global@X - \let\@halignto\tabu@halignto \tabu@firstcline #1\bgroup}% - \toks@{\let\@preamble\tabu@savedpreamble}% + \def\tabu@Xfinish{\ifnum0=`{\fi\iffalse}\fi\endgroup\tabu@global@X #1\bgroup}% + \toks@{% + \tabu@setup@everycr + \let\@preamble\tabu@savedpreamble}% \tabu@collect }% \tabu@arrayleft@measure % \end{macrocode} @@ -2416,8 +2455,9 @@ Copyright (C) 2010 by Florent Chervet % expansion of \cs{halign}. % % \begin{macrocode} -\def\tabu@TRIAL{\setbox\tabu@box \hbox\bgroup $\@arrayleft\vbox\bgroup \the\toks@ - \tabu@endTRIAL}% constant +\def\tabu@TRIAL{\setbox\tabu@box \hbox\bgroup $\@arrayleft + \if c\tabu@align\vcenter\else\vbox\fi\bgroup \the\toks@ + \tabu@endTRIAL}% constant \def\tabu@endTRIAL{\endarray$\egroup \iftabu@spread \tabu@spreadfalse \let\@startpbox \tabu@startpboxORI @@ -2446,6 +2486,7 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} \def\tabu@arith{% \advance\tabu@cnt \@ne +%% \showbox\tabu@box \ifdim \tabu@lasttry=\wd\tabu@box \tabu@message{\tabu@header Reached minimum width. Backing up}% \else @@ -2649,23 +2690,56 @@ Copyright (C) 2010 by Florent Chervet % % \subsubsection{Horizontal lines: \cs{tabucline}} % -% \begin{macro}{\tabu@firstcline} +% \begin{macro}{\tabu@setup@everycr} % \begin{macrocode} -\def\tabu@firstcline{% +\def\tabu@setup@everycr{% \tabu@firstclinetrue - \let\tabu@everycr \everycr - \def\tabu@restoreeverycr {\let\everycr\tabu@everycr}% - \def\everycr{\afterassignment\tabu@restoreeverycr\@temptokena}% - \tabu@everycr{\noalign{% - \global\tabu@everycr{\noalign{% - \global\tabu@everycr{}\global\tabu@firstclinefalse}}% - \global\let\everycr\tabu@everycr}}% -}% \tabu@firstcline -\def\tabu@addphantomline{\tabu@everycr\expandafter{\the\tabu@everycr - \tabu@phantomline}} + \let\tabu@first@cline \z@ + \def\tabu@restoreeverycr {\let\everycr \tabu@everycr}% + \def\everycr{\afterassignment\tabu@restoreeverycr \@temptokena}% + \tabu@everycr\expandafter{\the\tabu@everycr + \noalign{% + \ifcase\tabu@first@cline + \global\let\tabu@first@cline \tw@ + \or\global\let\tabu@first@cline \tw@ + \or\global\tabu@firstclinefalse + \global\let\tabu@first@cline \m@ne + \fi}% + \tabu@rowfontreset + }% +}% \tabu@setup@everycr % \end{macrocode} % \end{macro} % +% \begin{macro}{\tabuphantomline} +% +% This macro inserts a phantom line in front of a \textt{tabu}. +% This is necessary when you use \cs{usetabu} with \textt{tabu X} column, +% with a single line containing \cs{multicolumn}... +% +% \begin{macrocode} +\def\tabuphantomline{\crcr\noalign{% + \global\let\@arstrutbox \voidb@x + \iftabu@colortbl + \xdef\tabu@minrowclearance{\the\minrowclearance}% + \global\minrowclearance \z@ + \fi + \global\let\vcenter \vbox + \iftabu@nested\vspace*{\dimexpr\extrarowheight-\ht\@arstrutbox}\fi + \toks@{}\count@\@ne + \@whilenum\count@<\tabu@nbcols\do{\advance\count@\@ne + \toks@\expandafter{\the\toks@&}}% + \toks@\expandafter{\the\toks@ + \cr\noalign{% + \global\let\@arstrutbox \tabu@arstrutbox + \global\let\vcenter \tabu@vcenter + \iftabu@colortbl + \global\minrowclearance \tabu@minrowclearance\relax\fi + \global\let\tabu@first@cline \@ne}}% + \expandafter}\the\toks@ +}% \tabuphantomline +% \end{macrocode} +% \end{macro} % % \begin{macro}{\tabucline} % @@ -2686,8 +2760,8 @@ Copyright (C) 2010 by Florent Chervet \ifnum\tabu@start>\tabu@stop \the\toks@ \else\ifx\tabu@xleaders\relax\the\toks@ \else - \toks@{\ifnum0=`{\fi}\noalign{\global\setbox\tabu@box \box\@arstrutbox}}% - \iftabu@firstcline\if\tabu@align t\vskip-\ht\@arstrutbox\fi\fi + \toks@{\ifnum0=`{\fi}\noalign{\global\let\@arstrutbox \voidb@x}}% +%% \iftabu@firstcline\if\tabu@align t\vskip-\ht\@arstrutbox\fi\fi \@whilenum\@multicnt<\tabu@start\do{\advance\@multicnt\@ne \toks@\expandafter{\the\toks@ &}}% \loop @@ -2711,7 +2785,8 @@ Copyright (C) 2010 by Florent Chervet \@whilenum\@multicnt<\tabu@nbcols\do{\advance\@multicnt\@ne \toks@\expandafter{\the\toks@ &}}% \toks@\expandafter{\the\toks@ \cr \noalign{% - \global\tabu@firstclinefalse \global\setbox\@arstrutbox \box\tabu@box}}% + \global\let\@arstrutbox \tabu@arstrutbox}}% +%% \message{LIGNE AJOUTEE:\the\toks@}% \the\toks@ \fi\fi }% \tabucline @@ -2727,7 +2802,6 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} \def\tabu@startstop#1{\tabu@start@stop #1\relax 1-\tabu@nbcols\@nnil} \def\tabu@start@stop #1-#2\@nnil{% - \countdef\tabu@start100\countdef\tabu@stop101 % \@defaultunits \tabu@start \number0#1\relax\@nnil \@defaultunits \tabu@stop \number0#2\relax\@nnil \ifnum\tabu@start>\tabu@nbcols\tabu@start=\tabu@nbcols\else @@ -3041,7 +3115,7 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} \def\tabu@rowfont{\noalign{\ifnum0=`}\fi\tabu@row@font} \newcommand*\tabu@row@font[2][]{% - \global\tabu@everycr@tok=\everycr + \global\let\tabu@rowfontreset \tabu@rowfont@reset \global\let\tabu@@cellleft \tabu@cellleft \global\let\tabu@@cellright \tabu@cellright \gdef\tabu@cellfont{#2}% @@ -3049,7 +3123,6 @@ Copyright (C) 2010 by Florent Chervet \csname tabu@cell@#1\endcsname \fi \toks@\expandafter {\tabu@cellleft\tabu@cellfont}% inside \noalign group ok \xdef\tabu@cellleft {\the\toks@}% - \global\everycr\expandafter {\the\everycr\tabu@rowfont@reset}% \ifnum0=`{\fi}% end of noalign group }% \rowfont % \end{macrocode} @@ -3066,15 +3139,15 @@ Copyright (C) 2010 by Florent Chervet % \begin{macrocode} \def\tabu@rowfont@reset{% \noalign{% + \global\let\tabu@rowfontreset \@empty \global\let\tabu@cellleft \tabu@@cellleft \global\let\tabu@cellright \tabu@@cellright \global\let\tabu@cellfont \@empty \global\let\tabu@celllalign \@empty \global\let\tabu@cellralign \@empty - \global\everycr=\tabu@everycr@tok - \global\tabu@everycr@tok{}% }% }% \tabu@rowfont@reset +\let\tabu@rowfontreset\@empty % \end{macrocode} % \end{macro} % @@ -3504,9 +3577,6 @@ Copyright (C) 2010 by Florent Chervet \adl@colhtdp \box\adl@box \hfil }% \tabu@adl@act@endpbox % \end{macrocode} -% -% - % % % \begin{macrocode} @@ -3515,9 +3585,28 @@ Copyright (C) 2010 by Florent Chervet % % \restoregeometry % \bookmarksetup{bold*} +% \pagesetup*{ +% left/offset-=1cm,right/offset+=1cm, +% head/color=LightSteelBlue, +% head/left=\moveleft1cm\vbox to0pt{\vss\setbox0=\null\ht0=0pt\wd0=\paperwidth\dp0=\headheight\rlap{\colorbox{GhostWhite}{\box0}}}\vskip-\headheight t\,a\,b\,u\,\ \ i\,n\,d\,e\,x, +% } % % \begin{History} % +% \sectionformat\subsection[hang]{font=\large\bfseries\macrocodecolor} +% +% \begin{Version}{2010/11/18 v1.3} +% \item Documentation. +% \item Fix a bug that may appear in \cs{tabucline} depending on the preamble due to arbitrary \cs{countdef}. +% \item Improvement in the use of \cs{everycr}: no \cs{global} stuff. Thus bug fixed when nesting \textt{tabu} +% inside \hologo{AmS}-\textt{align} environment for example. Same issue with \cs{rowfont} which now works +% without global modification of \cs{everycr}. +% \item No phantom line is added to \textt{tabu} but a command \cs{tabuphantomline} is provided for this purpose +% (required with \cs{multicolumn} in some cases). +% \item Improvement on vertical alignment. +% \item To do: an example file to test a wide range of possibilities... +% \end{Version} +% % \begin{Version}{2010/11/15 v1.2} % \item Improvement in parameters parsing for optional parameters (\textt\textbar\ and \cs{tabucline}). % \item Modification / optimization in \cs{tabu@prepnext@tok}. diff --git a/Master/texmf-dist/source/latex/tabu/tabu.ins b/Master/texmf-dist/source/latex/tabu/tabu.ins index b4ea2ecff02..0f802222d7b 100644 --- a/Master/texmf-dist/source/latex/tabu/tabu.ins +++ b/Master/texmf-dist/source/latex/tabu/tabu.ins @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% tabu : 2010/11/15 v1.2 - tabu : Flexible LaTeX tabulars +%% tabu : 2010/11/18 v1.3 - tabu : Flexible LaTeX tabulars %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -26,7 +26,7 @@ \input docstrip.tex \Msg{************************************************************************} \Msg{* Installation} -\Msg{* Package: 2010/11/15 v1.2 - tabu: Flexible LaTeX tabulars} +\Msg{* Package: 2010/11/18 v1.3 - tabu: Flexible LaTeX tabulars} \Msg{************************************************************************} \keepsilent @@ -37,7 +37,7 @@ This is a generated file. -tabu : 2010/11/15 v1.2 - tabu : Flexible LaTeX tabulars +tabu : 2010/11/18 v1.3 - tabu : Flexible LaTeX tabulars This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either diff --git a/Master/texmf-dist/tex/latex/tabu/tabu.sty b/Master/texmf-dist/tex/latex/tabu/tabu.sty index ff5e802d2a8..4da593ac290 100644 --- a/Master/texmf-dist/tex/latex/tabu/tabu.sty +++ b/Master/texmf-dist/tex/latex/tabu/tabu.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% tabu : 2010/11/15 v1.2 - tabu : Flexible LaTeX tabulars +%% tabu : 2010/11/18 v1.3 - tabu : Flexible LaTeX tabulars %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -25,7 +25,7 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu}[2010/11/15 v1.2 - flexible LaTeX tabulars (FC)] +\ProvidesPackage{tabu}[2010/11/18 v1.3 - flexible LaTeX tabulars (FC)] \RequirePackage{array}[2008/09/09] \AtEndOfPackage{\tabu@AtEnd\let\tabu@AtEnd\@undefined} \let\tabu@AtEnd\@empty @@ -76,6 +76,8 @@ \newcount\tabu@cnt \newcount\tabu@nbcols \newcount\tabu@X@cols +\newcount\tabu@start +\newcount\tabu@stop \newdimen\tabu@target \newdimen\tabu@spreadtarget \newdimen\tabu@naturalX @@ -86,6 +88,8 @@ \newif\iftabu@nested \newif\iftabu@firstcline \newsavebox\tabu@box +\chardef\tabu@arstrutbox=\@arstrutbox +\let\tabu@vcenter \vcenter \def\tabu@gobblespace#1 {#1} \newcommand\tabu@NC@rewrite@X[1][]{\tabu@rewrite@X{#1}% \let\@halignto \relax @@ -122,7 +126,6 @@ \let\save@decl \tabu@save@decl % inversion of tokens in text mode \let\NC@rewrite@X \tabu@NC@rewrite@X \aftergroup \tabu@global@temp - \aftergroup \tabu@firstcline \NC@find \tabu@rewritelast }% NC@rewrite@\tabu@rewritefirst \expandafter\def\csname NC@find@\string\tabu@rewritefirst\endcsname @@ -140,7 +143,11 @@ \def\tabu@rewritelast{% \ifx \@halignto\relax % found a X column \let\tabu@temp \@empty - \aftergroup \tabu@addphantomline + %\aftergroup \tabu@addphantomline + \ifx \tabu@halignto\relax % X column measure + \aftergroup \tabu@prep@TRIAL + \else \aftergroup \tabu@setup@everycr + \fi \else \ifdim \tabu@target=\z@ \let\tabu@temp \@empty \else @@ -148,11 +155,12 @@ \if !\noexpand\tabu@temp \def\tabu@temp{@{\extracolsep\@flushglue}}\else \def\tabu@temp{!{\extracolsep\@flushglue}}\fi\fi \fi + \aftergroup\tabu@setup@everycr \fi \let\@halignto \tabu@halignto \expandafter\NC@find \tabu@temp }% \tabu@rewritelast -\newtoks\tabu@everycr@tok +%%\newtoks\tabu@everycr@tok \newif\iftabu@colortbl \def\tabu@nowrite{% cancels a \write command (tabularx method) \begingroup @@ -160,22 +168,6 @@ \afterassignment\let\count@ }% \tabu@nowrite \let\tabu@write\write -\def\tabu@phantomline{\noalign{% - \global\everycr{}% - \global\setbox\tabu@box\box\@arstrutbox - \global\let\tabu@minrowclearance \minrowclearance - \global\let\minrowclearance \z@ - \global\let\tabu@temp \vcenter - \global\let\vcenter \vbox - \toks@{}\count@\@ne - \@whilenum\count@<\tabu@nbcols\do{\advance\count@\@ne - \toks@\expandafter{\the\toks@&}}% - \toks@\expandafter{\the\toks@ - \cr\noalign{\global\setbox\@arstrutbox\box\tabu@box - \global\let\minrowclearance \tabu@minrowclearance - \global\let\vcenter \tabu@temp}}% - \expandafter}\the\toks@ -}% \tabu@phantomline \def\tabu{% \ifmmode \def\endtabu{\endarray}% \else \def\endtabu{\endtabular}\fi @@ -193,6 +185,8 @@ \def\tabu@aligndefault{t}\def\tabudefaulttarget{\linewidth}% \else \tabu@nestedfalse \def\tabu@aligndefault{c}% + \global\tabu@footnotes{}% + \aftergroup\the\aftergroup\tabu@footnotes \ifdim\parindent>\z@ \ifx\linewidth\tabudefaulttarget \everypar\expandafter{% % correction for indentation \the\everypar\everypar\expandafter{\the\everypar}% @@ -204,10 +198,6 @@ \fi \let\@footnotetext \tabu@footnotetext \let\@xfootnotenext\tabu@xfootnotetext - \iftabu@nested\else - \global\tabu@footnotes{}% - \aftergroup\the\aftergroup\tabu@footnotes - \fi \let\centering \tabu@centering \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft @@ -217,6 +207,7 @@ \let\fbox \tabu@fbox \let\prepnext@tok \tabu@prepnext@tok % \let\rowfont \tabu@rowfont + \everycr{}\let\tabu@everycr \everycr \tabu@spreadfalse \tabu@measuringfalse \edef\tabu@hfuzz{\ifdim\hfuzz<.1\p@ .1\p@\else\the\hfuzz\fi}% \tabu@rewritefirst @@ -281,7 +272,9 @@ \else \tabu@rewrite@Xto \fi }% \tabu@rewrite@X -\def\tabu@rewrite@Xnested#1{\def\tabucolX@spec{p{\tabucolX}}} +\def\tabu@rewrite@Xnested#1{\in@ ${#1}\ifin@ + \def\tabucolX@spec{>{$}p{\tabucolX}<{$}}\else + \def\tabucolX@spec{p{\tabucolX}}\fi} \def\tabu@rewrite@Xrestore#1{\tabu@Xarg{#1}\let\tabucolX@spec\tabu@temp}% \def\tabu@rewrite@Xto{% \iftabu@measuring % not the first X column found in preamble @@ -296,7 +289,6 @@ \tabu@X@sum \the\tabu@X@sum\relax \tabu@target \the\tabu@target\relax}% \let\tabu@halignto \relax - \aftergroup \tabu@prep@TRIAL \fi }% \tabu@rewrite@Xto \def\tabu@rewrite@Xspread{% tabu spread with X columns: we need to store each coef @@ -319,7 +311,6 @@ \tabu@spreadtarget \the\tabu@spreadtarget\relax \def\csname tabu@X\the\tabu@X@cols\endcsname{\strip@pt\tabu@X@sum}}% \let\tabu@halignto \relax - \aftergroup \tabu@prep@TRIAL \fi }% \tabu@rewrite@Xspread \def\tabu@Xarg#1{% @@ -392,22 +383,24 @@ \ifx\tabucolX@spec\@empty \def\tabucolX@spec{p}\fi \ifdim \tabu@X@sum=\z@ \tabu@X@sum \p@\fi \begingroup - \ifx \tabu@Xmath\relax - \edef\tabucolX@spec##1{\tabucolX@spec{##1}}% - \else - \edef\tabucolX@spec##1{>{$}\tabucolX@spec{##1}<{$}}% - \fi + \edef\tabucolX@spec##1{\tabucolX@spec{##1}}% \edef\tabu@temp{\dimexpr\strip@pt\tabu@X@sum \tabucolX \relax}% \toks@\expandafter{\tabucolX@align}% \edef\x{% - \def\noexpand\tabu@temp{\the\toks@ \tabucolX@spec{\the\tabu@temp}}% - \def\noexpand\tabucolX@spec{\the\toks@ \tabucolX@spec{\tabu@temp}}% + \def\noexpand\tabu@temp{% + \ifx \tabu@Xmath\relax\else >{$}\fi + \the\toks@ \tabucolX@spec{\the\tabu@temp}% + \ifx \tabu@Xmath\relax\else <{$}\fi}% + \def\noexpand\tabucolX@spec{% + \ifx \tabu@Xmath\relax\else >{$}\fi + \the\toks@ \tabucolX@spec{\tabu@temp}% + \ifx \tabu@Xmath\relax\else <{$}\fi}% }\expandafter\endgroup\x }% \tabucolX@do \def\tabu@prep@TRIAL{% \let\tabu@savedpreamble \@preamble \def\savetabu {\tabu@saveX}% - {\ifnum0=`}\fi + \begingroup\iffalse{\fi\ifnum0=`}\fi \tabu@setup@TRIAL \iftabu@spread % first trial only \advance\tabu@X@cols \@ne @@ -440,9 +433,10 @@ \let\tabu@TRIAL@hook\@empty \newcommand\tabuDisableCommands[1]{\g@addto@macro\tabu@TRIAL@hook{#1}} \def\tabu@arrayleft@measure#1\bgroup{% - \def\tabu@Xfinish{\ifnum0=`{\fi}\tabu@global@X - \let\@halignto\tabu@halignto \tabu@firstcline #1\bgroup}% - \toks@{\let\@preamble\tabu@savedpreamble}% + \def\tabu@Xfinish{\ifnum0=`{\fi\iffalse}\fi\endgroup\tabu@global@X #1\bgroup}% + \toks@{% + \tabu@setup@everycr + \let\@preamble\tabu@savedpreamble}% \tabu@collect }% \tabu@arrayleft@measure \def\tabu@collect{\catcode`\^^@=13\def\tabu@stack{b}\tabu@collectbody} @@ -457,8 +451,9 @@ \fi }% \tabu@collectbody \long\def\tabu@pushbegins#1\begin#2{\ifx\end#2\else b\expandafter\tabu@pushbegins\fi} -\def\tabu@TRIAL{\setbox\tabu@box \hbox\bgroup $\@arrayleft\vbox\bgroup \the\toks@ - \tabu@endTRIAL}% constant +\def\tabu@TRIAL{\setbox\tabu@box \hbox\bgroup $\@arrayleft + \if c\tabu@align\vcenter\else\vbox\fi\bgroup \the\toks@ + \tabu@endTRIAL}% constant \def\tabu@endTRIAL{\endarray$\egroup \iftabu@spread \tabu@spreadfalse \let\@startpbox \tabu@startpboxORI @@ -475,6 +470,7 @@ }% \tabu@endTRIAL \def\tabu@arith{% \advance\tabu@cnt \@ne +%% \showbox\tabu@box \ifdim \tabu@lasttry=\wd\tabu@box \tabu@message{\tabu@header Reached minimum width. Backing up}% \else @@ -617,18 +613,42 @@ }% \tabu@vline } \def\tabuvlines@find#1|{\NC@{#1}} -\def\tabu@firstcline{% +\def\tabu@setup@everycr{% \tabu@firstclinetrue - \let\tabu@everycr \everycr - \def\tabu@restoreeverycr {\let\everycr\tabu@everycr}% - \def\everycr{\afterassignment\tabu@restoreeverycr\@temptokena}% - \tabu@everycr{\noalign{% - \global\tabu@everycr{\noalign{% - \global\tabu@everycr{}\global\tabu@firstclinefalse}}% - \global\let\everycr\tabu@everycr}}% -}% \tabu@firstcline -\def\tabu@addphantomline{\tabu@everycr\expandafter{\the\tabu@everycr - \tabu@phantomline}} + \let\tabu@first@cline \z@ + \def\tabu@restoreeverycr {\let\everycr \tabu@everycr}% + \def\everycr{\afterassignment\tabu@restoreeverycr \@temptokena}% + \tabu@everycr\expandafter{\the\tabu@everycr + \noalign{% + \ifcase\tabu@first@cline + \global\let\tabu@first@cline \tw@ + \or\global\let\tabu@first@cline \tw@ + \or\global\tabu@firstclinefalse + \global\let\tabu@first@cline \m@ne + \fi}% + \tabu@rowfontreset + }% +}% \tabu@setup@everycr +\def\tabuphantomline{\crcr\noalign{% + \global\let\@arstrutbox \voidb@x + \iftabu@colortbl + \xdef\tabu@minrowclearance{\the\minrowclearance}% + \global\minrowclearance \z@ + \fi + \global\let\vcenter \vbox + \iftabu@nested\vspace*{\dimexpr\extrarowheight-\ht\@arstrutbox}\fi + \toks@{}\count@\@ne + \@whilenum\count@<\tabu@nbcols\do{\advance\count@\@ne + \toks@\expandafter{\the\toks@&}}% + \toks@\expandafter{\the\toks@ + \cr\noalign{% + \global\let\@arstrutbox \tabu@arstrutbox + \global\let\vcenter \tabu@vcenter + \iftabu@colortbl + \global\minrowclearance \tabu@minrowclearance\relax\fi + \global\let\tabu@first@cline \@ne}}% + \expandafter}\the\toks@ +}% \tabuphantomline \def\tabu@linedash{4pt}% \def\tabu@dashgap{4pt}% \def\tabucline{\noalign{\ifnum0=`}\fi\@ifstar @@ -639,8 +659,8 @@ \ifnum\tabu@start>\tabu@stop \the\toks@ \else\ifx\tabu@xleaders\relax\the\toks@ \else - \toks@{\ifnum0=`{\fi}\noalign{\global\setbox\tabu@box \box\@arstrutbox}}% - \iftabu@firstcline\if\tabu@align t\vskip-\ht\@arstrutbox\fi\fi + \toks@{\ifnum0=`{\fi}\noalign{\global\let\@arstrutbox \voidb@x}}% +%% \iftabu@firstcline\if\tabu@align t\vskip-\ht\@arstrutbox\fi\fi \@whilenum\@multicnt<\tabu@start\do{\advance\@multicnt\@ne \toks@\expandafter{\the\toks@ &}}% \loop @@ -664,14 +684,14 @@ \@whilenum\@multicnt<\tabu@nbcols\do{\advance\@multicnt\@ne \toks@\expandafter{\the\toks@ &}}% \toks@\expandafter{\the\toks@ \cr \noalign{% - \global\tabu@firstclinefalse \global\setbox\@arstrutbox \box\tabu@box}}% + \global\let\@arstrutbox \tabu@arstrutbox}}% +%% \message{LIGNE AJOUTEE:\the\toks@}% \the\toks@ \fi\fi }% \tabucline \def\tabu@add #1\@nil{\toks@\expandafter{\the\toks@ #1\ifmmode$\fi}} \def\tabu@startstop#1{\tabu@start@stop #1\relax 1-\tabu@nbcols\@nnil} \def\tabu@start@stop #1-#2\@nnil{% - \countdef\tabu@start100\countdef\tabu@stop101 % \@defaultunits \tabu@start \number0#1\relax\@nnil \@defaultunits \tabu@stop \number0#2\relax\@nnil \ifnum\tabu@start>\tabu@nbcols\tabu@start=\tabu@nbcols\else @@ -871,7 +891,7 @@ \MessageBreak I cannot restore an unknown preamble!}\@ehd} \def\tabu@rowfont{\noalign{\ifnum0=`}\fi\tabu@row@font} \newcommand*\tabu@row@font[2][]{% - \global\tabu@everycr@tok=\everycr + \global\let\tabu@rowfontreset \tabu@rowfont@reset \global\let\tabu@@cellleft \tabu@cellleft \global\let\tabu@@cellright \tabu@cellright \gdef\tabu@cellfont{#2}% @@ -879,20 +899,19 @@ \csname tabu@cell@#1\endcsname \fi \toks@\expandafter {\tabu@cellleft\tabu@cellfont}% inside \noalign group ok \xdef\tabu@cellleft {\the\toks@}% - \global\everycr\expandafter {\the\everycr\tabu@rowfont@reset}% \ifnum0=`{\fi}% end of noalign group }% \rowfont \def\tabu@rowfont@reset{% \noalign{% + \global\let\tabu@rowfontreset \@empty \global\let\tabu@cellleft \tabu@@cellleft \global\let\tabu@cellright \tabu@@cellright \global\let\tabu@cellfont \@empty \global\let\tabu@celllalign \@empty \global\let\tabu@cellralign \@empty - \global\everycr=\tabu@everycr@tok - \global\tabu@everycr@tok{}% }% }% \tabu@rowfont@reset +\let\tabu@rowfontreset\@empty \newif\iftabu@cellright \AtBeginDocument{\let\array@prepnext@tok \prepnext@tok }% original definition \def\tabu@prepnext@tok{% @@ -1150,7 +1169,6 @@ \egroup \adl@colhtdp \box\adl@box \hfil }% \tabu@adl@act@endpbox - \endinput %% %% End of file `tabu.sty'. -- cgit v1.2.3