summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-11-19 23:48:39 +0000
committerKarl Berry <karl@freefriends.org>2010-11-19 23:48:39 +0000
commitfd52ae5add99db57c832177d0d39a712a413b1c4 (patch)
tree8bd525700dc003aa7b076b447cd6050f2a1a1fec /Master
parent27820e29c2ddbccbe3b6edf4d12a1ac61bffd672 (diff)
tabu 1.3 (18nov10)
git-svn-id: svn://tug.org/texlive/trunk@20495 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/tabu/tabu.pdfbin926203 -> 1342764 bytes
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.drv6
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.dtx281
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.ins6
-rw-r--r--Master/texmf-dist/tex/latex/tabu/tabu.sty140
5 files changed, 270 insertions, 163 deletions
diff --git a/Master/texmf-dist/doc/latex/tabu/tabu.pdf b/Master/texmf-dist/doc/latex/tabu/tabu.pdf
index 4248c052a22..24ce0ba543a 100644
--- a/Master/texmf-dist/doc/latex/tabu/tabu.pdf
+++ b/Master/texmf-dist/doc/latex/tabu/tabu.pdf
Binary files 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 <florent.chervet@free.fr>
%<*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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
%</driver>
% \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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
%
% \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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
%
% 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 <florent.chervet@free.fr>
% {\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 <florent.chervet@free.fr>
% 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 <florent.chervet@free.fr>
% \alpha & \beta \\
% \gamma & \delta
% \end{tabu}$
+% \tabuphantomline
% \end{tabu}
%
% \bigskip
@@ -992,13 +1028,12 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% {\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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
% 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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
%
% \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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
% 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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\let\fbox \tabu@fbox
\let\prepnext@tok \tabu@prepnext@tok % <for rowfont and tabucline>
\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 <florent.chervet@free.fr>
% 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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
%
% \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}% <required for multicolumn>
+ \def\tabu@Xfinish{\ifnum0=`{\fi\iffalse}\fi\endgroup\tabu@global@X #1\bgroup}%
+ \toks@{%
+ \tabu@setup@everycr
+ \let\@preamble\tabu@savedpreamble}% <required for multicolumn>
\tabu@collect
}% \tabu@arrayleft@measure
% \end{macrocode}
@@ -2416,8 +2455,9 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% 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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
%
% \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}% <for ialign>
- \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}% <for ialign>
+ \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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
\@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 <florent.chervet@free.fr>
% \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 % <inside noalign group>
\@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 <florent.chervet@free.fr>
% \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 <florent.chervet@free.fr>
\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 <florent.chervet@free.fr>
% \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}
%
@@ -3506,18 +3579,34 @@ Copyright (C) 2010 by Florent Chervet <florent.chervet@free.fr>
% \end{macrocode}
%
%
-
-%
-%
% \begin{macrocode}
%</package>
% \end{macrocode}
%
% \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 % <for rowfont and tabucline>
\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}% <required for multicolumn>
+ \def\tabu@Xfinish{\ifnum0=`{\fi\iffalse}\fi\endgroup\tabu@global@X #1\bgroup}%
+ \toks@{%
+ \tabu@setup@everycr
+ \let\@preamble\tabu@savedpreamble}% <required for multicolumn>
\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}% <for ialign>
- \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}% <for ialign>
+ \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}% <default value>
\def\tabu@dashgap{4pt}% <default value>
\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 % <inside noalign group>
\@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'.