From 23e7dcd67bf998e35a72c812629bb8bb5c26d2b5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 30 Dec 2010 01:08:01 +0000 Subject: tabu (29dec10) git-svn-id: svn://tug.org/texlive/trunk@20877 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/tabu/tabu.sty | 229 +++++++++++++++++++----------- 1 file changed, 148 insertions(+), 81 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/tabu/tabu.sty b/Master/texmf-dist/tex/latex/tabu/tabu.sty index 76b129c0a6d..b123d51ce9b 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/12/18 v1.7 - tabu : Flexible LaTeX tabulars +%% tabu : 2010/12/28 v1.8 - tabu : Flexible LaTeX tabulars %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either @@ -25,10 +25,9 @@ %% \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu}[2010/12/18 v1.7 - flexible LaTeX tabulars (FC)] +\ProvidesPackage{tabu}[2010/12/28 v1.8 - flexible LaTeX tabulars (FC)] \RequirePackage{array}[2008/09/09] \RequirePackage{varwidth}[2009/03/30] -\let\DEBUG\@gobble%\message \AtEndOfPackage{\tabu@AtEnd\let\tabu@AtEnd\@undefined} \let\tabu@AtEnd\@empty \def\TMP@EnsureCode#1#2{% @@ -45,14 +44,18 @@ \let\tabu@message \@gobble \let\tabu@message@save \@gobble \let\tabu@debug \@gobble +\let\tabu@timerstart \relax \def\tracingtabu{% \let\tabu@message \message \let\tabu@message@save \tabu@tracing@save + \ifdefined \pdfelapsedtime + \def\tabu@timerstart{\edef\tabu@starttime{\the\pdfelapsedtime}}% + \let\tabu@elapsedtime \tabu@message@etime\fi \@ifnextchar={\tabu@tracing}{}} \def\tabu@tracing{\begingroup\afterassignment\tabu@tr@cing\count@} \def\tabu@tr@cing{\expandafter\endgroup\ifnum\count@>\@ne \let\tabu@debug\message\else\let\tabu@debug\@gobble\fi} -\DeclareOption{debugshow}{\AtEndOfPackage\tracingtabu} +\DeclareOption{debugshow}{\AtEndOfPackage{\tracingtabu\relax}} \let\tabudefaulttarget \linewidth \DeclareOption{linegoal}{% \AtEndOfPackage{% @@ -76,7 +79,6 @@ {\string\tabucline\space is not available with option `light'}\@ehd} \ProcessOptions \AtBeginDocument{% - \@ifundefined{NC@rewrite@X}{\newcolumntype{X}{}}{}% new column X if not exists \expandafter\in@ \expandafter\@arrayright\expandafter{\endarray}% \ifin@ \let\tabu@endarray \endarray \else \tabu@fix@arrayright \fi % @@ -88,9 +90,9 @@ \newcount \tabu@cnt \newcount \tabu@nbcols \newcount \tabu@X@cols +\newcount \tabu@nested \newcount \tabu@start \newcount \tabu@stop -\newcount \tabu@nested \newdimen \tabu@target \newdimen \tabu@spreadtarget \newdimen \tabu@naturalX @@ -108,16 +110,35 @@ \def\tabu@gobbleopt#1{\@ifnextchar [{\tabu@gobble@pt{#1}}{#1}}%] \def\tabu@gobble@pt#1[#2]{#1} \def\tabu@save@decl{% - \toks\count@ = \expandafter{\the\toks\expandafter\count@\@nextchar}% + \toks\count@ =\expandafter{\the\toks\expandafter\count@ \@nextchar}% }% \tabu@save@decl -\newcommand\tabu@NC@rewrite@X[1][]{\tabu@rewrite@X{#1}% - \let\@halignto \relax - \expandafter \NC@find \tabucolX@rw} \def\tabu@newcolumntype #1{% - \expandafter\def\csname NC@find@\string#1\endcsname##1#1{\NC@{##1}}% - \expandafter\def\csname NC@rewrite@\string#1\endcsname% + \expandafter\tabu@new@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\endcsname + {#1}% }% \tabu@newcolumntype -\tabu@newcolumntype \usetabu #1{% +\def\tabu@new@columntype #1#2#3{% + \def#1##1#3{\NC@{##1}}% + \let#2\relax \newcommand*#2% +}% \tabu@new@columntype +\def\tabu@privatecolumntype #1{% + \expandafter\tabu@private@columntype + \csname NC@find@\string#1\expandafter\endcsname + \csname NC@rewrite@\string#1\expandafter\endcsname + \csname tabu@NC@find@\string#1\expandafter\endcsname + \csname tabu@NC@rewrite@\string#1\endcsname + {#1}% +}% \tabu@privatecolumntype +\def\tabu@private@columntype#1#2#3#4{% + \g@addto@macro\tabu@privatecolumns{\let#1#3\let#2#4}% + \tabu@new@columntype#3#4% +}% \tabu@private@columntype +\let\tabu@privatecolumns \@empty +\tabu@privatecolumntype X[1][]{\tabu@rewrite@X{#1}% + \let\@halignto \relax + \expandafter \NC@find \tabucolX@rw} +\tabu@privatecolumntype \usetabu [1]{% \ifx\\#1\\\tabu@saveerr{}\else \@ifundefined{tabu@saved@\string#1} {\tabu@saveerr{#1}} @@ -125,7 +146,7 @@ \csname tabu@saved@\string#1\expandafter\endcsname\expandafter\z@}% \fi }% \NC@rewrite@\usetabu -\tabu@newcolumntype \preamble #1{% +\tabu@privatecolumntype \preamble [1]{% \ifx\\#1\\\tabu@saveerr{}\else \@ifundefined{tabu@saved@\string#1} {\tabu@saveerr{#1}} @@ -133,25 +154,46 @@ \fi }% \NC@rewrite@\preamble \tabu@newcolumntype \tabu@rewritefirst{% - \tabu@X@cols \z@ \let\NC@rewrite@X \tabu@NC@rewrite@X - \let\tabu@dimexpr \relax \aftergroup \tabu@global@temp - \aftergroup \tabu@restore@NC@list + \tabu@X@cols \z@ + \let\tabu@dimexpr \relax + \let\tabu@savepreamble \relax + \let\NC@rewrite@X \tabu@NC@rewrite@X + \gdef\tabu@global@temp {\tabu@savepreamble}% + \aftergroup \tabu@global@temp + \let\tabu@islast \relax + \tabu@privatecolumns \NC@list{\NC@do\usetabu \NC@do\preamble \NC@do *}% \tabu@lines % defines NC@rewrite@| for tabu only (inside @mkpream group) - %\NC@list\expandafter{\the\NC@list \NC@do X\NC@do\tabu@rewritelast}% -%% \message{NC@list est: \the\NC@list^^J}% \NC@list\expandafter{\the\expandafter\NC@list \expandafter\NC@do \expandafter X% - \tabu@NC@list \NC@do\tabu@rewritelast}% -%% \message{NC@list est: \the\NC@list^^J}% + \tabu@NC@list \NC@do X\NC@do\tabu@rewritemiddle}% \ifcat$\d@llarend\else \let\save@decl \tabu@save@decl \fi % no inversion of tokens in text mode - \NC@find \tabu@rewritelast + \NC@find \tabu@rewritemiddle }% NC@rewrite@\tabu@rewritefirst -\def\tabu@restore@NC@list{\NC@list\expandafter{\tabu@NC@list}} -\tabu@newcolumntype \tabu@rewritelast{% +\def\tabu@savepreamble{% + \gdef\tabu@global@temp{}% \NC@list\expandafter{\tabu@NC@list}% + \let\tabu@savedpreamble \@preamble +}% \tabu@savepreamble +\tabu@newcolumntype \tabu@rewritemiddle{% + \NC@list\expandafter{\tabu@NC@list \NC@do\tabu@endrewrite \NC@do\tabu@rewritelast}% + \tabu@checklast +}% \NC@rewrite@\tabu@rewritemiddle +\def\tabu@checklast#1\relax{% + \def\tabu@temp{#1}% + \ifx \tabu@temp\tabu@islast + \expandafter\tabu@lastrewrite + \else \let\tabu@islast \tabu@temp + \expandafter\NC@find \expandafter\tabu@rewritelast + \fi + #1\relax +}% \tabu@checklast +\tabu@newcolumntype \tabu@rewritelast{\NC@find \tabu@endrewrite} +\tabu@newcolumntype \tabu@endrewrite{\tabu@checklast} +\def\tabu@lastrewrite{% \let\tabu@next \NC@find \ifx \@halignto\relax % found a X column + \edef\tabu@global@X{\tabu@global@X \tabu@X@cols\the\tabu@X@cols\relax}% \ifx \tabu@halignto\relax % X column measure \tabu@global@Xnested \iftabu@negcoef \aftergroup\tabu@negcoeftrue \fi @@ -161,15 +203,15 @@ \else \aftergroup \tabu@setup@everycr \ifdim \tabu@target=\z@ \else - \let\tabu@next \tabu@rewritelast \fi % + \let\tabu@next \tabu@extracolsep \fi % \fi \let\@halignto \tabu@halignto \tabu@next -}% \NC@rewrite@\tabu@rewritelast -\def\tabu@rewritelast{\futurelet\tabu@temp \tabu@rewrite@last} -\def\tabu@rewrite@last{% +}% \tabu@lastrewrite +\def\tabu@extracolsep{\futurelet\tabu@temp \tabu@extracol@sep} +\def\tabu@extracol@sep{% \ifx \tabu@temp\@sptoken - \expandafter\tabu@gobblespace \expandafter\tabu@rewritelast + \expandafter\tabu@gobblespace \expandafter\tabu@extracol@sep \else {\endlinechar\m@ne\scantokens{\let\x |}% \expandafter}\ifx \x\tabu@temp @@ -180,11 +222,12 @@ \def\tabu@next {\NC@find !{\extracolsep\@flushglue}}\fi\fi \expandafter\tabu@next \fi -}% \tabu@rewritelast -\def\tabu@global@Xnested{\global\expandafter\let - \csname tabu@global@X\the\tabu@nested\endcsname\tabu@global@X - \aftergroup\let \aftergroup\tabu@global@X - \expandafter\aftergroup \csname tabu@global@X\the\tabu@nested\endcsname +}% \tabu@extracol@sep +\def\tabu@global@Xnested{\expandafter\tabu@global@X@nested + \csname tabu@global@X\the\tabu@nested\endcsname} +\def\tabu@global@X@nested#1{% + \global\let#1\tabu@global@X + \aftergroup\let \aftergroup\tabu@global@X \aftergroup#1% }% \tabu@global@Xnested \newif\iftabu@colortbl \def\tabu@nowrite#1#{{\afterassignment}\toks@} @@ -213,12 +256,12 @@ {longtabu requires the longtable package}\@ehd} \def\tabu@setup{% \tabu@adl@fix \let\endarray \tabu@endarray % colortbl & arydshln (delarray) - \let\tabu@global@temp \@empty \let\tabu@global@X \@empty + \let\tabu@global@X \@empty \ifx \verbatim\tabu@sanitizetext % \tabu@setup@saveglobal \advance\tabu@nested \@ne \def\tabu@aligndefault{t}\let\tabudefaulttarget \linewidth - \else + \else \tabu@timerstart \def\tabu@aligndefault{c}\edef\tabu@hfuzz {\the\hfuzz}% \global\tabu@footnotes{}\aftergroup\the\aftergroup\tabu@footnotes \ifdim\parindent>\z@ \ifx\linewidth\tabudefaulttarget @@ -233,13 +276,14 @@ \let\@footnotetext \tabu@footnotetext \let\@xfootnotetext \tabu@xfootnotetext \let\@xfootnote \tabu@xfootnote \let\centering \tabu@centering \let\raggedright \tabu@raggedright \let\raggedleft \tabu@raggedleft - \tabu@trivlist % + \tabu@trivlist % \def\tabudecimal {\tabu@tabudecimal}\let\verbatim \tabu@sanitizetext - \let\fbox \tabu@fbox \let\rowfont \tabu@rowfont + \let\fbox \tabu@fbox \let\color@b@x \tabu@color@b@x + \let\rowfont \tabu@rowfont \let\prepnext@tok \tabu@prepnext@tok % \everycr{}\let\tabu@everycr \everycr \tabu@spreadfalse \tabu@measuringfalse \tabu@negcoeffalse - \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do\tabu@rewritefirst \NC@do *}% + \edef\tabu@NC@list{\the\NC@list}\NC@list{\NC@do \tabu@rewritefirst}% }% \tabu@setup \def\tabu@setup@saveglobal{% \expandafter\xdef\csname tabu@global@\the\tabu@nested\endcsname{% @@ -264,8 +308,8 @@ \else \expandafter\tabu@begin \fi }% \tabu@sett@rget -\def\tabu@to to{\def\@halignto{to}\tabu@gettarget} -\def\tabu@spread spread{\tabu@spreadtrue\def\@halignto{spread}\tabu@gettarget} +\def\tabu@to to{\def\tabu@halignto{to}\tabu@gettarget} +\def\tabu@spread spread{\tabu@spreadtrue\def\tabu@halignto{spread}\tabu@gettarget} \def\tabu@gettarget {\afterassignment\tabu@linegoaltarget \tabu@target} \def\tabu@linegoaltarget {\futurelet\tabu@temp \tabu@linegoal@target} \def\tabu@linegoal@target {% @@ -274,16 +318,19 @@ \tabu@begin }% \tabu@linegoal@target \def\tabu@begin #1#{% - \edef\@halignto {\ifdim\tabu@target>\z@ \@halignto\the\tabu@target\fi}% - \let\tabu@halignto \@halignto + \edef\tabu@halignto{\ifdim\tabu@target>\z@ \tabu@halignto\the\tabu@target\fi}% \@testopt \tabu@@begin \tabu@aligndefault #1\@nil }% \tabu@begin \def\tabu@@begin [#1]#2\@nil#3{% \tabu@preparesave{#3}% \def\tabu@align {#1}% - \tabu@ [{\tabu@align}]#2{\tabu@rewritefirst #3}% + \tabu@ [\tabu@align]#2{\tabu@rewritefirst #3}% }% \tabu@@begin \def\tabu@preparesave #1{% + \iftabu@colortbl \@temptokena{}% + \tabu@prepare@save\CT@arc@ + \tabu@prepare@save\CT@drsc@ + \fi \edef\tabu@savedparam{% \ifmmode \col@sep \the\arraycolsep \else \col@sep \the\tabcolsep \fi\relax @@ -292,9 +339,16 @@ \extrarowheight \the\extrarowheight\relax \extratabsurround \the\extratabsurround\relax \def\noexpand\arraystretch {\arraystretch}% - \iftabu@colortbl \minrowclearance\the\minrowclearance\relax \fi}% + \iftabu@colortbl \minrowclearance\the\minrowclearance\relax + \the\@temptokena + \fi}% \def\tabu@savedpream {\edef\tabu@halignto{to\the\tabu@target}\NC@find #1}% }% \tabu@preparesave +\def\tabu@prepare@save #1{% + \ifx\relax#1\else + \@temptokena\expandafter{\the\expandafter\@temptokena + \expandafter\def\expandafter#1\expandafter{#1}}\fi +}% \tabu@prepare@save \newtoks\tabu@footnotes \long\def\tabu@footnotetext #1{% \edef\@tempa{\the\tabu@footnotes @@ -354,7 +408,6 @@ \expandafter\let\csname tabu@X\the\tabu@X@cols\endcsname \relax \iftabu@measuring % not the first X column found in preamble \edef\tabu@global@X {\tabu@global@X - \advance\tabu@X@cols \@ne \def\csname tabu@X\the\tabu@X@cols\endcsname {\strip@pt\tabu@X@sum}% \advance\tabu@X@sum \the\tabu@X@sum\relax}% \else % first X column found in preamble @@ -369,7 +422,6 @@ \fi\fi=\the\tabu@target \on@line, page \the\c@page}\fi \tabu@message{\tabu@titles}% \edef\tabu@global@X {\tabu@global@X - \tabu@X@cols \@ne \def\csname tabu@X1\endcsname{\strip@pt\tabu@X@sum}% \tabu@X@sum \the\tabu@X@sum\relax \tabu@target \the\tabu@target\relax @@ -392,15 +444,14 @@ \else \tabu@X@sum \z@ \let\tabucolX@align \@empty \let\tabucolX@rw \@empty - \let\tabu@Xmath \@empty \let\tabu@temp \@empty - \tabu@Xparse {}#1\relax\@nnil + \let\tabu@Xmath \@empty \let\tabu@temp \@empty + \tabu@Xparse {}#1,\@nnil \fi }% \tabu@Xarg \def\tabu@Xparse #1{\futurelet\@let@token \tabu@Xtest} \expandafter\def\expandafter\tabu@Xparsespace\space{\tabu@Xparse{}} \def\tabu@Xtest{% \ifcase \ifx \@nnil\@let@token \z@ \else - \ifx \relax\@let@token \m@ne\else \if ,\@let@token \m@ne\else \if p\@let@token 1\else \if m\@let@token 2\else @@ -415,7 +466,7 @@ \if .\@let@token 11\else \if -\@let@token 11\else \ifcat $\@let@token 12\else - 13\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax + 13\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\relax \tabucolX@do \expandafter \remove@to@nnil \or \tabu@Xtype {p}% \or \tabu@Xtype {m}% @@ -462,7 +513,7 @@ \edef\tabu@temp {\strip@pt\tabu@X@sum \tabucolX}% \edef\tabucolX@rw##1{% \ifx$\tabu@Xmath>{\noexpand\the\toks@ $}\else - \ifx \tabucolXalign\@empty \else + \ifx \tabucolX@align\@empty \else >{\noexpand\the\toks@}\fi\fi \tabucolX@rw{##1}% \ifx$\tabu@Xmath<{$}\fi}% @@ -477,7 +528,6 @@ \ifdim \tabu@wd{#1}<#2 \tabu@wd{#1}\else#2\fi\else #2\fi }% \tabu@dimexpr \def\tabu@prep@TRIAL{% - \let\tabu@savedpreamble \@preamble \begingroup \iffalse{\fi \ifnum0=`}\fi \tabu@setup@TRIAL \tabucolX \tabu@target @@ -596,8 +646,8 @@ \the\tabu@target\space+ \tabu@hfuzz}% \or \ifdim \tabu@X@sum=\z@ \tabu@measuringtrue \tabucolX=\@tempdima - \else \tabu@message{\tabu@message@arith}% - \advance\tabucolX-\dimexpr(\wd\tabu@box-\tabu@target-\tabu@X@sum/\p@) + \else + \advance\tabucolX-\dimexpr(\wd\tabu@box-\tabu@target-.5\tabu@X@sum/\p@) *\p@/\tabu@X@sum\relax \ifdim \tabucolX<\z@ \tabu@warn{X Columns too narrow (table too wide)}% @@ -671,7 +721,7 @@ \ifx\@startpbox\tabu@measure@startpbox\tabu@spaces (coefs<0)\else \ifdim\tabu@X@sum>\z@ \expandafter\tabu@msg@align \the\dimexpr(\tabu@target-\wd\tabu@box) - *\p@/\tabu@X@sum\relax {}{}{}{}{}\@@\fi\fi}% + *\p@/\tabu@X@sum\relax {}{}{}{}{}\@@\fi\fi^^J}% \def\tabu@message@spread{\tabu@spreadheader \expandafter\tabu@msg@align \the\tabu@spreadtarget {}{}{}{}{}\@@ \expandafter\tabu@msg@align \the\wd\tabu@box {}{}{}{}{}\@@ @@ -683,8 +733,14 @@ <\expandafter\tabu@msg@align \the\tabu@target { }{ }{ }{ }{}\@@ + \tabu@hfuzz\space= hfuzz *****^^J% (tabu)\tabu@spaces******* Reached Target: - hfuzz = \tabu@hfuzz\on@line\space *******^^J - \ifnum\tabu@nested=\z@^^J\fi}% + hfuzz = \tabu@hfuzz\on@line\space *******^^J% + \ifnum\tabu@nested=\z@ \tabu@elapsedtime ^^J\fi}% +\def\tabu@message@etime{(tabu)\tabu@spaces + Time elapsed for trials: + \the\numexpr(\pdfelapsedtime-\tabu@starttime-32767)/65536\relax sec + \the\numexpr\numexpr(\pdfelapsedtime-\tabu@starttime) + -\numexpr(\pdfelapsedtime-\tabu@starttime-32767)/65536\relax*65536\relax + *1000/65536\relax ms}% \def\tabu@message@negcoef #1{\tabu@spaces\tabu@spaces * #1. X[-\csname tabu@X#1\endcsname]: natural width = \tabu@wd{#1} @@ -714,6 +770,11 @@ \def\extratabsurround ####1\relax{(tabu) extratabsurround = ####1^^J}% \def\minrowclearance ####1\relax {(tabu) minrowclearance#1 = ####1^^J}% \def\arraystretch ####1{(tabu) arraystretch #1 #1 = ####1^^J}% + \iftabu@colortbl + \def\CT@arc@####1{(tabu) arrayrulecolor #1 = ####1^^J}% + \def\CT@drsc@####1{(tabu) doublerulesepcolor=####1^^J}% + \let\color \relax + \fi \def\NC@find ####1\@nil{(tabu) tabu preamble#1 #1 = \detokenize{####1}^^J}% \def\tabu@wddef####1####2{(tabu) Natural width ####1 = ####2^^J}% \let\edef \@gobbletwo \let\def \@empty @@ -905,10 +966,10 @@ \def\tabu@start@stop #1-#2\@nnil{% \@defaultunits \tabu@start \number0#1\relax\@nnil \@defaultunits \tabu@stop \number0#2\relax\@nnil - \ifnum\tabu@start>\tabu@nbcols\tabu@start=\tabu@nbcols\else - \ifnum\tabu@start>\z@\else \tabu@start=\@ne \fi\fi - \ifnum\tabu@stop>\tabu@nbcols \tabu@stop\tabu@nbcols \else - \ifnum\tabu@stop>\z@\else \tabu@stop=\tabu@nbcols \fi\fi + \ifnum\tabu@start>\tabu@nbcols\tabu@start \tabu@nbcols\else + \ifnum\tabu@start<\@ne \tabu@start \@ne \fi\fi + \ifnum\tabu@stop>\tabu@nbcols \tabu@stop \tabu@nbcols \else + \ifnum\tabu@stop<\@ne \tabu@stop \tabu@nbcols\fi\fi }% \tabu@start@stop \def\tabu@getlinespec#1{\let\tabu@xleaders \relax \@defaultunits \let\@tempa=#1 \relax\@nnil @@ -1088,19 +1149,13 @@ \ifx\\#1\\\tabu@savewarn{}{The tabu will not be saved}\else \@ifundefined{tabu@saved@\string#1}{}{\tabu@savewarn{#1}{Overwritting}}% {% - \toks0\expandafter{\@preamble}% + \toks0\expandafter{\tabu@savedpreamble}% \toks1\expandafter{\tabu@savedparam}% \toks2\expandafter{\tabu@savedpream}% - \iftabu@colortbl - \toks3\expandafter{\expandafter\gdef\expandafter\CT@arc@ - \expandafter{\CT@arc@}}% - \toks3\expandafter{\the\toks\expandafter3 - \expandafter\gdef\expandafter\CT@drsc@\expandafter{\CT@drsc@}}% - \else \toks3{}% - \fi + \toks3{}% \iftabu@negcoef \edef\tabu@savewd{\tabu@savewd{\number\numexpr1}}% - \toks3\expandafter{\the\toks\expandafter3\tabu@savewd}\fi + \toks3\expandafter{\tabu@savewd}\fi \expandafter\xdef\csname tabu@saved@\string#1\endcsname##1{% \noexpand\ifcase##1\relax \noexpand\ifdim\tabu@target>\z@ @@ -1190,7 +1245,7 @@ \ifnum \count@<\z@ % \@tempcnta \@M % \tabu@nbcols\z@ - \gdef\tabu@global@temp{\tabu@nbcols\z@}% + \xdef\tabu@global@temp{\tabu@global@temp \tabu@nbcols\z@}% \expandafter\let\csname tabu@tok@1L\endcsname \relax \tabu@cellrightfalse \else @@ -1374,18 +1429,30 @@ \let\color@bgroup\bgroup \def\color@egroup{\endgraf\egroup}% \afterassignment\tabu@begin@fbox - \setbox\@tempboxa \hbox + \setbox\@tempboxa \hbox }% \tabu@fbox \def\tabu@begin@fbox{\color@bgroup\kern\fboxsep\aftergroup\tabu@end@fbox} -\def\tabu@end@fbox{\kern\fboxsep\color@egroup\@frameb@x\relax} -\expandafter\def\expandafter\tabu@centering\expandafter{% - \centering\arraybackslash} -\expandafter\def\expandafter\tabu@raggedleft\expandafter{% - \raggedleft\arraybackslash} -\expandafter\def\expandafter\tabu@raggedright\expandafter{% - \raggedright\arraybackslash} +\def\tabu@end@fbox{\kern\fboxsep \color@egroup \@frameb@x\relax} +\def\tabu@color@b@x#1#2{\leavevmode + \def\tabu@do@color@b@x{#1{#2\color@block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}% + \afterassignment\tabu@begin@color@b@x + \setbox\z@ \hbox +}% \tabu@color@b@x +\def\tabu@begin@color@b@x{% + \bgroup \kern\fboxsep \set@color + \aftergroup\tabu@end@color@b@x +}% \tabu@begin@color@b@x +\def\tabu@end@color@b@x{\kern\fboxsep \egroup + \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@ + \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@ + \tabu@do@color@b@x +}% \tabu@end@color@b@x +\def\tabu@temp#1#2{{\toks@\expandafter{#2\arraybackslash}\xdef#1{\the\toks@}}} +\tabu@temp \tabu@centering \centering +\tabu@temp \tabu@raggedleft \raggedleft +\tabu@temp \tabu@raggedright \raggedright \def\tabu@trivlist{\expandafter\def\expandafter\@trivlist\expandafter{% - \expandafter\let\expandafter\\\expandafter\@centercr\@trivlist}}% + \expandafter\let\expandafter\\\expandafter\@normalcr\@trivlist}}% \def\tabu@fix@arrayright{% \@ifpackageloaded{arydshln} {% -- cgit v1.2.3