summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/tabu/tabu.pdfbin2554632 -> 2515478 bytes
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.drv6
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.dtx624
-rw-r--r--Master/texmf-dist/source/latex/tabu/tabu.ins6
-rw-r--r--Master/texmf-dist/tex/latex/tabu/tabu.sty41
5 files changed, 331 insertions, 346 deletions
diff --git a/Master/texmf-dist/doc/latex/tabu/tabu.pdf b/Master/texmf-dist/doc/latex/tabu/tabu.pdf
index d33720b9432..b404fbd1337 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 cbf17ca60ea..9f052b8dc24 100644
--- a/Master/texmf-dist/source/latex/tabu/tabu.drv
+++ b/Master/texmf-dist/source/latex/tabu/tabu.drv
@@ -9,7 +9,7 @@
%% This is a generated file.
%% Copyright (FC) 2010-2011 - lppl
%%
-%% tabu : 2011/02/13 v2.3 - tabu : Flexible LaTeX tabulars
+%% tabu : 2011/02/17 v2.4 - tabu : Flexible LaTeX tabulars
%%
%% **********************************************************************************************
%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal
@@ -65,8 +65,8 @@
\let\microtypeYN=y
\edef\thisfile{\jobname}
\def\thisinfo{Flexible \LaTeX{} tabulars (\FC)}
-\def\thisdate{2011/02/13}
-\def\thisversion{2.3}
+\def\thisdate{2011/02/17}
+\def\thisversion{2.4}
\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 d9356c23a54..c8bfc3d9bfe 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 : 2011/02/13 v2.3 - tabu: flexible LaTeX tabulars]
+% tabu : 2011/02/17 v2.4 - 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: 2011/02/13 v2.3 - tabu: Flexible LaTeX tabulars}
+\Msg{* Package: 2011/02/17 v2.4 - tabu: Flexible LaTeX tabulars}
\Msg{************************************************************************}
\keepsilent
@@ -48,7 +48,7 @@
This is a generated file.
Copyright (FC) 2010-2011 - lppl
-tabu : 2011/02/13 v2.3 - tabu : Flexible LaTeX tabulars
+tabu : 2011/02/17 v2.4 - tabu : Flexible LaTeX tabulars
**********************************************************************************************
\string\begin{tabu} { preamble } => default target: \string\linewidth or \string\linegoal
@@ -141,8 +141,8 @@ lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
\let\microtypeYN=y
\edef\thisfile{\jobname}
\def\thisinfo{Flexible \LaTeX{} tabulars (\FC)}
-\def\thisdate{2011/02/13}
-\def\thisversion{2.3}
+\def\thisdate{2011/02/17}
+\def\thisversion{2.4}
\def\CTANbaseurl{http://www.ctan.org/tex-archive/macros/latex}
\def\CTANdisplay{CTAN:macros/latex}
\makeatletter\protected\def\CTANhref{\@ifstar\CTANhrefstar\CTANhrefnost}\makeatother
@@ -252,7 +252,7 @@ morekeywords=[7]{yellow},
%</driver>
% \fi
%
-% \CheckSum{7717}
+% \CheckSum{7758}
%
% \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
@@ -270,16 +270,16 @@ morekeywords=[7]{yellow},
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs,\~,\@ifpackagelater,\z@,\@ne,\@@}
-% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo,\TMP@EnsureCode}
-% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage}
-% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage}
-% \DoNotIndex{\filename,\fileversion,\filedate,\let}
-% \DoNotIndex{\@listctr,\@nameuse,\csname,\else,\endcsname,\expandafter}
-% \DoNotIndex{\gdef,\global,\if,\item,\newcommand,\nobibliography,\newrobustcmd,\renewrobustcmd,\providerobustcmd}
-% \DoNotIndex{\par,\providecommand,\relax,\renewcommand,\renewenvironment}
-% \DoNotIndex{\stepcounter,\usecounter,\nocite,\fi}
-% \DoNotIndex{\@fileswfalse,\@gobble,\@ifstar,\@unexpandable@protect}
+% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs,\~,\@ifpackagelater,\z@,\@ne,\@@,\@firstoftwo,\@firstofone,\@secondoftwo,\@fornoop,\@elt}
+% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo,\TMP@EnsureCode,\@length,\@thick,\@m,\@makeother,\@mpfn,\@preamerr,\@preamerror,\@skip,\@spaces,\tabu@spaces}
+% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage,\@ss,\@therule,\@unbox,\[,\],\{,\},\cellspacetoplimit,\begin,\bcolumn,\adl@xarraydashrule,\adl@vlineR,\adl@vlineL}
+% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage,\adl@ncol,\adl@leftrulefalse,\adl@dashgapcolor,\adl@colhtdp,\adl@class@start,\adl@box,\adl@arrayrestore}
+% \DoNotIndex{\filename,\fileversion,\filedate,\let,\adl@array,\adl@act@@endpbox,\adl@act@endpbox,\0,\,,\;,\&,\@cdr,\@box,\@currentHref,\@currentlabel,\@currentlabelname,\@currenvir}
+% \DoNotIndex{\@listctr,\@nameuse,\csname,\else,\endcsname,\expandafter,\AtEndOfPackage,\crcr,\copy,\FV@RightListNumber,\FV@RightListFrame,\Hy@footnote@currentHref,\Hy@raisedlink}
+% \DoNotIndex{\gdef,\global,\if,\item,\newcommand,\nobibliography,\newrobustcmd,\renewrobustcmd,\providerobustcmd,\hyper@@anchor,\ifadl@inactive,\ifadl@leftrule,\ifadl@zwvrule,\ifHy@nesting}
+% \DoNotIndex{\par,\providecommand,\relax,\renewcommand,\renewenvironment,\in@@,\o,\on@line,\P,\ProcessOptions,\LNGL@setlinegoal,\set@color,\T,\O,\tabu@adl@endtrial}
+% \DoNotIndex{\stepcounter,\usecounter,\nocite,\fi,\tabu@adl@act@endpbox,\tabu@adl@xarraydashrule,\tabu@FV@@@CheckEnd,\tabu@FV@@CheckEnd,\tabu@FV@DefineCheckEnd,\tabu@FV@ListProcessLine}
+% \DoNotIndex{\@fileswfalse,\@gobble,\@ifstar,\@unexpandable@protect,\tabu@fornoopORI,\tabu@m@ybesiunitx,\tabu@multic@lumn,\tabu@multicolumnORI,\tabu@s@ved,\tabu@startpboxORI,\tabucline@sc@n,\z}
% \DoNotIndex{\AtBeginDocument,\AtEndDocument,\begingroup,\endgroup}
% \DoNotIndex{\frenchspacing,\MessageBreak,\newif,\PackageWarningNoLine,\@addtopreamble,\@depth,\@height,\@width,\@firstofone,\@frameb@x,\@lastchclass,\@M,\m,\@nextchar,\@startpbox}
% \DoNotIndex{\protect,\string,\xdef,\ifx,\texttt,\@biblabel,\bibitem,\@tempa,\{,\},\^,\ ,\DeclareOption,\CT@end,\CT@arc@,\CT@drsc@,\count@,\col@sep,\endgraf,\dimexpr,\fbox,\fboxsep,\g@addto@macro}
@@ -291,7 +291,7 @@ morekeywords=[7]{yellow},
% \DoNotIndex{\",\:,\@empty,\@for,\@gtempa,\@latex@error,\@namedef,\@nameuse,\@tempa,\@testopt,\@width,\\,\m@ne,\makeatletter,\makeatother}
% \DoNotIndex{\maketitle,\parindent,\x,\kernel@ifnextchar}
% \DoNotIndex{\DefineShortVerb,\DeleteShortVerb,\UndefineShortVerb,\MakeShortVerb,\endinput,\@eha,\@ehd,\@nil,\@nnil,\@ifundefined,\@ifpackagelater,\@ifpackageloaded}
-% \DoNotIndex{\p@,\tracingtabu,\@ne,\tw@,\m@ne,\z@skip}
+% \DoNotIndex{\p@,\tracingtabu,\@ne,\tw@,\m@ne,\thr@@,\z@skip}
% \makeatletter
% \newrobustcmd\ClearPage{\@ifstar\clearpage{}}
% \providecommand\lsstyle{}
@@ -467,13 +467,13 @@ morekeywords=[7]{yellow},
% \newgeometry{top=0.8cm,headheight=.5cm,headsep=.3cm,bottom=1.2cm,footskip=.5cm,left=35mm,right=3mm}
% \pagesetup*{
% left/offset-=5mm,right/offset-=12mm,
-% head/left=\moveleft1cm\vbox to\z@{\vss\setbox0=\null\ht0=\z@\wd0=\paperwidth\dp0=\headheight\rlap{\colorbox{GhostWhite}{\box0}}}\vskip-\headheight \TabU\ \ i\,m\,p\,l\,e\,m\,e\,n\,t\,a\,t\,i\,o\,n,
+% head/left=\moveleft1cm\vbox to\z@{\vss\setbox0=\null\ht0=\z@\wd0=\paperwidth\dp0=\headheight\rlap{\colorbox{GhostWhite}{\box0}}}\vskip-\headheight \TabU\ \ T\,e\,c\,n\,i\,c\,a\,l\ \, n\,o\,t\,i\,c\,e \ \, a\,n\,d \ \, i\,m\,p\,l\,e\,m\,e\,n\,t\,a\,t\,i\,o\,n,
% }%
% \clearpage
% \tocsetup{depth-=1}
% \sectionformat\section{bookmark/color=black}\sectionformat\subsection{bookmark/color=black}
% \bookmarksetup{bold*,openlevel=3} \hfuzz=3mm
-% \section(Technical notice and Implementation)[\mdseries\scshape\pmb{Technical notice and Implementation}]{\textlarger{Technical Notice and Implementation}}\label{implementation}}
+% \section(Technical notice and Implementation)[\mdseries\scshape\pmb{Technical notice and Implementation}]{\textlarger{Technical notice and Implementation}}\label{implementation}}
% \let\plainllap\llap
% \newrobustcmd\macro@llap[1]{{\global\let\llap\plainllap
% \setbox0=\hbox\bgroup \raisedhyperdef{macro}{\saved@macroname}{#1}\egroup
@@ -609,7 +609,7 @@ morekeywords=[7]{yellow},
% \addcontentsline{toc}{section}{Summary of the features provided by \textt{\pkgcolor t\,a\,b\,u}}
% \def\arraystretch{1}\vspace*{-9mm}
% \tabcolsep=3pt \tabulinesep=.5mm \def\dash{\hbox{$\scriptscriptstyle\cdotp$}}
-% \begin{longtabu}{>{\ttfamily\bfseries}X[-1]X[J]} \toprule
+% \begin{longtabu}{>{\ttfamily\bfseries}X[-1]X} \toprule
% \rowfont{\larger\bfseries\lsstyle}
% \multicolumn2c{Summary of the features provided by \thispackage}
% \\ \tabucline[\dash]- \endhead
@@ -902,7 +902,7 @@ morekeywords=[7]{yellow},
%
% \subsection{\textt X column widths computation}
%
-% The new algorithm implemented in version \thisversion{} requires only one measure of the width of the table
+% The new algorithm implemented in version \hyperref[\thisversion]\thisversion{} requires only one measure of the width of the table
% in any case. \marginnote{\tikz{\node [inner sep=0pt,outer sep=0pt,rotate=45,fill=yellow!30]
% {\color{FireBrick}\tabcolsep=0pt\begin{tabu}{l} Example provided by \\ M. Manuel Kuehner\end{tabu}};}}
% This speeds up the convergence of the algorithm.
@@ -931,7 +931,6 @@ morekeywords=[7]{yellow},
%
% $$X=\left( 140mm - 8\times \cs\tabcolsep - 5\times \cs\arrayrulewidth \right) / 7 = 17.4896mm$$
%
-%
% \Needspace{4\baselineskip}
% \subsection(Verbatim material){Inserting Verbatim material (\xpackage{fancyvrb})}
%
@@ -1005,9 +1004,7 @@ morekeywords=[7]{yellow},
% \end{tabu*}
% }
%
-%
-%
-% It's not possible to insert a \textt{lstlisting} environment presently, but you can save such an environment in a \cs\vbox
+% It's not possible to insert a \env*{lstlisting} presently, but you can save such an environment in a \cs\vbox
% and insert it inside the \env{tabu} of course.
%
% \subsection{Maths inside \textt{tabu X} columns}
@@ -1150,7 +1147,7 @@ morekeywords=[7]{yellow},
% }
%
% \cs\tabucolumn is there to say \thispackage that the column type has to be treated
-% with a high priority in the rewritting process.
+% with a high priority in the rewriting process.
%
% Another possibility to print number is provided with \cs\tabudecimal.
%
@@ -1166,49 +1163,47 @@ morekeywords=[7]{yellow},
% \cs{begin}\M*{tabu} spread \meta{dimen} \M*[pos] \M*{tabular preamble} \\
% \end{declcs}
%
-% The \textt{tabu} environment behaves mostly like \textt{tabular}: the preamble
+% The \env*{tabu} behaves mostly like \env{tabular}: the preamble
% is parsed by the macros in \xfile{array.sty} and some measures are performed before printing.
-% \textt{tabu} improves \textt{tabular} and \textt{array}:
+% \env{tabu} improves \env{tabular} and \env{array}:
+%
% \begin{itemize}
-% \item \textbf{footnotes} and index words are allowed inside \textt{tabu}, unlike \xpackage{tabularx}, footnote links
-% are not broken when compiled with \xpackage{hyperref}. The syntax \cs{footnote}\M[number]\M{text}
-% is allowed in \textt{tabu} and \textt{longtabu} (this is not implemented for \xpackage{longtable} yet...)
+% \item \textbf{footnotes} and index words are allowed inside \env{tabu}, unlike \xpackage{tabularx}, footnote links
+% are not broken when compiled with \xpackage{hyperref}. The syntax \cs\footnote\M[number]\M{text}
+% is allowed in \env{tabu} and \env{longtabu} (this is not implemented for \xpackage{longtable} yet...)
% \item \textt X columns are implemented with an \emph{optional} parameter for the \textbf{width-coefficient}
% (which can be \refitem{item:Negativ width coefficients}[negativ]: see next section),
% the \textbf{alignment} (\textt r, \textt c, \textt l, or \textt j, and \textt R, \textt C, \textt L or \textt J
% for \xpackage{ragged2e} settings) and
% the \textbf{column type} (\textt p, \textt m, or \textt b). \\
-% \textt{tabu} has a \refitem{item:default target width}[default target width] when used with \textt X columns,
+% \env{tabu} has a \refitem{item:default target width}[default target width] when used with \textt X columns,
% making nesting even easier.
-% \item You are used to the \textt{tabular} environment in text mode, and \textt{array} in math mode,
-% but \textt{tabu} works in both modes and its name does not change... \textt X columns are also
+% \item You are used to the \env*{tabular} in text mode, and \env*{array} in math mode,
+% but \env{tabu} works in both modes and its name does not change... \textt X columns are also
% possible in math mode; \xpackage{delarray} shortcuts for delimiters are available in both math and text modes.
-% \item A \textt{tabu} environment can contain another tabular of any kind: \textt{tabular}, \textt{tabular\stform*},
-% \textt{tabularx} or \textt{tabu} itself can be placed in any cell of a \textt{tabu}. Conversely,
-% \textt{tabu} can be placed in a \textt{tabular}, \textt{tabularx} \etc.
-% \item \textt{tabu} provides facilities for \hyperref[Lines inside tabu]{vertical and horizontal lines},
+% \item A \env*{tabu} can contain another tabular of any kind: \env{tabular}, \env{tabular\stform*},
+% \env{tabularx} or \env{tabu} itself can be placed in any cell of a \env{tabu}. Conversely,
+% \env{tabu} can be placed in a \env{tabular}, \env{tabularx} \etc.
+% \item \env{tabu} provides facilities for \hyperref[Lines inside tabu]{vertical and horizontal lines},
% and for the insertion of \hyperref[Verbatim inside tabu]{verbatim text} inside \textt X columns.
-% \item \textt{tabu} is more than compatible with \xpackage{arydshln} (for dashed and dotted lines)
-% and \xpackage{colortbl}: actually some corrections of those packages are loaded as soon as you
-% enter a \textt{tabu} environment. Compatibility with \xpackage{delarray}, \xpackage{hhline},
-% \xpackage{makecell}, \xpackage{booktabs}, \xpackage{siunitx}, \xpackage{dcolumn}, \xpackage{warpcol},
-% \etc\ is fine too.
-% When you are inside a \textt{tabu} environment, you can use \cs{raggedleft}, \cs{raggedright}
-% and \cs{centering} without special care about \cs{arraybackslash} and conversely \string\\\ has its
+% \item \env{tabu} is fully compatible with \xpackage{colortbl}, \xpackage{delarray}, \xpackage{hhline},
+% \xpackage{makecell}, \xpackage{booktabs}, \xpackage{siunitx}, \xpackage{dcolumn}, \xpackage{warpcol}, \etc.
+% When you are inside a \env*{tabu}, you can use \cs\raggedleft, \cs\raggedright
+% and \cs\centering without special care about \cs\arraybackslash and conversely \string\\\ has its
% ``normal'' meaning inside a list of items that may appear in a \textt X column...
% \end{itemize}
%
% \bigskip
%
-% \declmargin \cs{begin}\M*{tabu} \textt{to}\meta{dimen} is like \textt{tabular\textasteriskcentered} but the inter-columns space is
-% given a stretchability of 1fil, in other words \textt{@\M*{\cs{extracolsep}\M*{0pt plus 1fil}}}
+% \declmargin \cs{begin}\M*{tabu} \textt{to}\meta{dimen} is like \env{tabular\textasteriskcentered} but the inter-columns space is
+% given a stretchability of 1fil, in other words \textt{@\M*{\cs\extracolsep\M*{0pt plus 1fil}}}
% is inserted by default at the beginning of the tabular preamble, unless another value for \cs{extracolsep} is specified. Therefore
-% ``\textt{tabu to}'' fills in width the specified \meta{dimen}.
+% ``\env{tabu to}'' fills in width the specified \meta{dimen}.
%
% \bigskip
%
% \declmargin \cs{begin}\M*{tabu} \textt{spread}\meta{dimen} does a tabular whose width is \meta{dimen} wider than its natural width.
-% \textt{@\M*{\cs{extracolsep}\M*{0pt plus 1fil}}} is inserted by default if \meta{dimen}$>0$.
+% \textt{@\M*{\cs\extracolsep\M*{0pt plus 1fil}}} is inserted by default if \meta{dimen}$>0$.
%
% \subsection{\textt{longtabu}, \textt{longtabu to} and \textt{longtabu spread}}
% \label{longtabu.sec}
@@ -1218,14 +1213,14 @@ morekeywords=[7]{yellow},
% \cs{begin}\M*{longtabu} spread \meta{dimen}\, \M*[l\OR c\OR r]\,\M*{tabular preamble}
% \end{declcs}
%
-% \textt{longtabu} is just like \textt{tabu} but page breaks are allowed between rows of the table.
-% \textt{longtabu} is based on the \Xpackage{longtable} package which must be loaded, and all features
-% of the \textt{longtable} environment works inside \textt{longtabu}: \cs{endhead}, \cs{endfirsthead},
-% \cs{endfoot}, \cs{endlastfoot} and \cs{caption}.
+% \env{longtabu} is just like \env{tabu} but page breaks are allowed between rows of the table.
+% \env{longtabu} is based on the \Xpackage{longtable} package which must be loaded, and all features
+% of the \env{longtable} environment works inside \env{longtabu}: \cs\endhead, \cs\endfirsthead,
+% \cs\endfoot, \cs\endlastfoot and \cs\caption.
%
-% \textt{longtabu} enhances the possibilities of \textt{longtable} with the possibility to use \textt{X columns}
-% and line specification for \hyperref[Vertical lines]{vertical rules}. \textt{longtabu} is thus much easier than
-% \Xpackage{ltxtable}.
+% \env{longtabu} enhances the \env*{longtable} with the possibility to use \textt{X columns}
+% and line specifications for horizontal and \hyperref[Vertical lines]{vertical rules}.
+% \env{longtabu} is thus much easier than \Xpackage{ltxtable}.
% \goodbreak
%
% The following commands provided for \textt{tabu} do not work with \textt{longtabu}:\par\nobreak
@@ -1240,7 +1235,7 @@ morekeywords=[7]{yellow},
% \\\bottomrule
% \end{tabu}
%
-% However, \textt{tabu X} columns, \csref{rowfont}, \csref{verbatim} and \csref{tabudecimal} work inside \textt{longtabu}.
+% However, \textt{tabu X} columns, \cs\rowfont, \cs\extrarowsep, \cs\tabulinesep, \cs\tabudecimal work inside \env{longtabu}.
%
%
% \subsection{\textt{tabu X} columns -- Mastering horizontal space}
@@ -1444,7 +1439,7 @@ morekeywords=[7]{yellow},
% \begin{declcs}{tabuphantomline}
% \end{declcs}
%
-% The process of \cs{multicolumn} implies the \TeX{} primitive \cs{omit} which discards the tabular preamble
+% The process of \cs\multicolumn implies the \TeX{} primitive \cs\omit which discards 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:
%
@@ -1481,7 +1476,7 @@ morekeywords=[7]{yellow},
%
%
% \subsection{\cs{tabulinesep} and \cs{extrarowsep} -- Mastering vertical space}
-% \label{tabulinesep.subsec}
+% \label{tabulinesep.subsec}\label{vertical spacing.sec}
%
% \begin{declcs}{tabulinesep}$=$\meta{dimen} \\
% \cs{tabulinesep}$=$\string^\meta{dimen} \\
@@ -1533,7 +1528,7 @@ morekeywords=[7]{yellow},
% };
% \end{tikzpicture}
%
-% \cs\tabulinesep is a soft parameter, and leads to rows which does not share the same height.
+% \cs\tabulinesep is a soft parameter, and leads to rows which do not share the same height.
%
% \begin{declcs}{extrarowsep}$=$\meta{dimen} \\
% \cs{extrarowsep}$=$\string^\meta{dimen} \\
@@ -1727,7 +1722,7 @@ morekeywords=[7]{yellow},
% It is not a necessary to protect the optional argument with braces: \M*[\M*{...}].
% because \thispackage takes care the \textt\textbar\ token to be rewritten
% before any other column type (the same for \textt{tabu X} columns,\, and\, \Xpackage{siunitx} \textt S columns).
-% The rewritting process is divided into three stages under control inside a \env*{tabu}.
+% The rewriting process is divided into three stages under control inside a \env*{tabu}.
%
% \subsection{Multiple \cs{firsthline} and \cs{lasthline}}
%
@@ -1768,7 +1763,7 @@ morekeywords=[7]{yellow},
% \end{tabu} used.
% \\ \tabucline[.7pt on1.5mm Crimson off3mm blue]-
% \rowfont[c]{}
-% with \cs{firsthline} and \cs{lasthline} & with \cs{hline} \par (text alignment is not preserved)
+% with \cs\firsthline and \cs\lasthline & with \cs\hline \par (text alignment is not preserved)
% \\ \tabucline[test]-
% \end{tabu}
% \par}
@@ -1918,7 +1913,7 @@ morekeywords=[7]{yellow},
% Otherwise, the default thikness is used \ie \cs\arrayrulewidth.
% \item Your color names must not contain any series of characters that match one the patterns: \\
% \indent\begin{tabu}{*2{X[c]}} \textt{on}\textttbf? & \textt{off}\textttbf?\end{tabu}
-% where \texttbf? is a character of category 12 (possibly preceded by spaces).
+% where\, \texttbf?\, is a character of category 12, different from\, \texttbf !\, and possibly preceded by spaces.
% I don't think this is a real limitation...
% \end{itemize}
%
@@ -1931,9 +1926,6 @@ morekeywords=[7]{yellow},
%
% Style names and color names are \xpackage{babel}-protected.
%
-%
-%
-%
% \begin{declcs}{tabucline}\M[style or spec.]\M*{start-end}\\
% \end{declcs}
%
@@ -1948,8 +1940,6 @@ morekeywords=[7]{yellow},
% \item finally you can give \cs{tabucline} a color \emph{name}, after the line specification.
% \end{itemize}
%
-%
-%
% Any parameter can be omitted. \newtabulinestyle{tabucline=.4pt on2pt off1.5pt}
%
% {\parskip=0pt\topsep=0pt \tabulinesep=1.5mm
@@ -1980,11 +1970,6 @@ morekeywords=[7]{yellow},
% \\\bottomrule \tabucline[\hbox{$\scriptstyle\star$}]- \tabucline[\heavyrulewidth]-
% \end{tabu}
%
-%
-%
-%
-%
-%
% \begin{tabu}{*{3}{X[cm]}}
% \tabcolsep=2pt
% \begin{tabu}{|l|l|} \tabucline[.4pt on 1pt off 3pt]{-}
@@ -2119,9 +2104,9 @@ morekeywords=[7]{yellow},
% \begin{declcs}{rowfont}\M[alignment]\M*{font specification}
% \end{declcs}
%
-% Inside a \textt{tabu} environment, you can modify the font for each cell in a row.
-% \cs{rowfont} has priority over column font specification, exactly like \cs{rowcolor} (package \xpackage{colortbl})
-% has priority over \cs{columncolor}.
+% Inside a \env*{tabu}, you can modify the font for each cell in a row.
+% \cs\rowfont has priority over column font specification, exactly like \cs\rowcolor (package \xpackage{colortbl})
+% has priority over \cs\columncolor.
%
% The alignment of each cell in one row can also be changed to: \topsep=0pt
% \begin{center}
@@ -2160,15 +2145,15 @@ morekeywords=[7]{yellow},
% \begin{declcs}{savetabu}\M{user-name}
% \end{declcs}
%
-% The command \cs{savetabu} can be used at the end of any line of a \textt{tabu} environment to save the
+% The command \cs\savetabu can be used at the end of any line of a \env*{tabu} to save the
% parameters of a \env*{tabu}. The saving is always global.
% This allows to easily make tabulars which share exactly the same shape throughout your document.
-% This can also be used as a kind of \textt{tabbing} environment which is able to remember the tabs positions...
+% This can also be used as a kind of \env{tabbing} environment which is able to remember the tabs positions...
%
% If the \meta{user-name} has been used before, an info is displayed in the \xext{log} file and the
% previous settings are overwritten.
%
-% With the \cs\tracingtabu$>0$, informations about the saved parameters are reported in the \xext{log} file.
+% With the \cs\tracingtabu $>0$, informations about the saved parameters are reported in the \xext{log} file.
%
% Recalling saved parameters are done with \cs\usetabu (complete recovery) or \cs\preamble (partial recovery of
% the preamble only).
@@ -2248,8 +2233,8 @@ morekeywords=[7]{yellow},
% \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
+% If one day you use \env{tabu}, you will have the idea to restore a \env{tabu} while modifying its target,
+% or adding new columns... \cs\savetabu and \cs\usetabu have not been thought for this purpose, and you may
% have unexpected results.
%
% \begin{declcs}{preamble}\M{user-name}
@@ -2269,7 +2254,7 @@ morekeywords=[7]{yellow},
%
% \cs\preamble works exactly as if you defined a \hyperref[Custom environments]{custom environment} for \env{tabu}.
%
-% \cs\preamble works with \hyperref[longtabu.sec]{\textt{longtabu}}.
+% \cs\preamble works with \hyperref[longtabu.sec]{\env{longtabu}}.
%
% Example (continued...):
%
@@ -2299,19 +2284,19 @@ morekeywords=[7]{yellow},
% implemented to replace \xpackage{siunitx} \textt S and \textt s columns or \xpackage{numprint}
% \textt n and \textt N columns or other packages that provide alignment such as \xpackage{warpcol},
% \xpackage{dcolumn} or \xpackage{rccol}. It just make
-% easy to apply a macro you get already on each number in a column of a \textt{tabu}.
+% easy to apply a macro you get already on each number in a column of a \env{tabu}.
%
% \cs{tabudecimal} has been developped mainly because it makes possible to align numbers inside \textt{tabu X} columns.
%
% \begin{declcs}{tabudecimal}\M{user-macro}
% \end{declcs}
%
-% \cs{tabudecimal} can be used in the preamble of a \textt{tabu} before a column specification.
+% \cs{tabudecimal} can be used in the preamble of a \env{tabu} before a column specification.
% The \meta{user-macro} is a macro with one parameter that has to be defined before.
%
% \medskip
%
-% Example with \csbf{numprint}:
+% Example with \csbf\numprint:
%
%
% \begin{Verb*}
@@ -2346,7 +2331,8 @@ morekeywords=[7]{yellow},
% \end{Verbatim}
% }
% &
-% \begin{tabu}{|[GreenYellow]*2{>{\tabudecimal\usermacro}X[r]|[GreenYellow]}c} \tabucline[1pt GreenYellow]-
+% \taburulecolor{GreenYellow}
+% \begin{tabu}{|*2{>{\tabudecimal\usermacro}X[r]|}c} \tabucline[1pt GreenYellow]-
% \rowfont[c]\bf January &February & ...\\ \tabucline[1pt on2pt GreenYellow]-
% 12.324 &745.32 & ... \\
% 21.13 &0 & ... \\
@@ -2357,7 +2343,7 @@ morekeywords=[7]{yellow},
%
% \medbreak
%
-% Example with \csbf{SI}:
+% Example with \csbf\SI:
%
% \begin{Verb*}
% \def\usermacro#1{\SI[group-four-digits=true, % thousand separator
@@ -2375,8 +2361,8 @@ morekeywords=[7]{yellow},
% round-integer-to-decimal=true,
% per-mode=symbol]{#1}{\officialeuro\per\kilo\gram}}
% \begin{tabu}{*2{X}}
-% \tabulinesep=3pt
-% \begin{tabu}spread 8pt{|[GreenYellow]*2{>{\tabudecimal\usermacro}X[r]|[GreenYellow]}c} \tabucline[1pt GreenYellow]-
+% \tabulinesep=3pt \taburulecolor{GreenYellow}
+% \begin{tabu}spread 8pt{|*2{>{\tabudecimal\usermacro}X[r]|}c} \tabucline[1pt GreenYellow]-
% \rowfont[c]\bf January &February &... \\\tabucline[1pt on2pt GreenYellow]-
% 12.324 &745.32 &... \\
% 21.13 &0 &... \\
@@ -2385,19 +2371,19 @@ morekeywords=[7]{yellow},
% \end{tabu}
% &
% As you can see, the columns widths are exactly the same, whatever their content. \par \bigskip
-% Here \csref{tabulinesep} has been set to $3pt$.
+% Here \cs\tabulinesep has been set to $3pt$.
% \end{tabu}
%
% \subsubsection{You should know how it works...}
%
-% Yes you should know how it works to avoid problems. \textt{tabu} has a small scanner
-% based on \cs{futurelet} to grab all numbers, blank spaces, commas and dots $+$ and $-$ sign
+% Yes you should know how it works to avoid problems. \env{tabu} has a small scanner
+% based on \cs\futurelet to grab all numbers, blank spaces, commas and dots $+$ and $-$ sign
% and also the letter \textt e and \textt E for exponants.
% The scanner stops as soon as something else than a number, blank space, comma, dot, $+$, $-$, \textt e, \textt E
% is found, and even if it is a macro that contains a number.
%
-% This explains why there is \cs{zap@space} in the definition of \cs{usermacro}: because the scanner
-% scans blank spaces and because \cs{numprint} does not allow blank spaces in its mandatory argument,
+% This explains why there is \cs\zap@space in the definition of \cs\usermacro: because the scanner
+% scans blank spaces and because \cs\numprint does not allow blank spaces in its mandatory argument,
% quite strangely...
%
%
@@ -2408,31 +2394,33 @@ morekeywords=[7]{yellow},
% no matter if it has been loaded or not with the \textt{linegoal} option.
% Example with \LaTeX{} default: \cs\parindent $=20$pt.
%
-% {\parindent=20pt \let\tabudefaulttarget \linewidth
+% {\parindent=20pt \let\tabudefaulttarget \linewidth \tabulinestyle{GreenYellow}
%
-% \begin{tabu}{|[GreenYellow]X|[GreenYellow]} \tabucline[GreenYellow]-
-% This is \textt{\pkgcolor tabu} with its default target in an indented paragraph. \\ \tabucline[GreenYellow]-
+% \begin{tabu}{|X|} \tabucline-
+% This is \env{\pkgcolor tabu} with its default target in an indented paragraph. \\ \tabucline-
% \end{tabu}
%
-% \noindent\begin{tabu}{|[GreenYellow]X|[GreenYellow]}\tabucline[GreenYellow]-
-% This is \textt{\pkgcolor tabu} with its default target, preceded by \cs{noindent} \\ \tabucline[GreenYellow]-
+% \noindent\begin{tabu}{|X|}\tabucline-
+% This is \env{\pkgcolor tabu} with its default target, preceded by \cs\noindent \\ \tabucline-
% \end{tabu}
%
%
% \begin{tabularx}\linewidth{|X|} \hline
-% This is \textt{tabularx} with target: \cs{linewidth} in an indented paragraph. \\ \hline
+% This is \env{tabularx} with target: \cs\linewidth in an indented paragraph. \\ \hline
% \end{tabularx}
%
% \noindent\begin{tabularx}\linewidth{|X|} \hline
-% This is \textt{tabularx} with target: \cs{linewidth}, preceded by \cs{noindent} \\ \hline
-% \end{tabularx}}
+% This is \env{tabularx} with target: \cs\linewidth, preceded by \cs\noindent \\ \hline
+% \end{tabularx}
+%
+% }
%
%
% \subsection{\texorpdf\xpackage{delarray} shortcuts}
% \label{delarray shortcuts tabularx.subsec}
%
% When you enclose your tabular with math delimiters using \xpackage{delarray} shortcuts,
-% \xpackage{tabu} tries to reach its target for the whole: the tabular and the delimiter(s).
+% \thispackage tries to reach its target for the whole: the tabular and the delimiter(s).
% You can see the difference:
%
% {\centering
@@ -2478,7 +2466,7 @@ morekeywords=[7]{yellow},
% \subsection{Custom environments}
% \label{Custom environments}
%
-% Unlike \textt{tabularx}, it is possible to define your own environment using \textt{tabu}:
+% Unlike \env{tabularx}, it is possible to define your own environment using \env{tabu}:
%
% \begin{Verbat}
% \newenvironment{foo}
@@ -2491,10 +2479,10 @@ morekeywords=[7]{yellow},
% {\end{tabu}}
%
% \begin{footabu}
-% \textt{tabu} environment, even when \textt X columns are used, may appear
-% in the definition of your custom tabular environment.
+% \env*{tabu}, even when \textt X columns are used, may appear
+% in the definition of your custom \env*{tabular}.
% &
-% You can also use the commands \csref{savetabu}\, \csref{preamble}\, (or\, \csref{usetabu}) for this purpose.
+% You can also use the commands \cs\savetabu\, \cs\preamble\, (or\, \cs\usetabu) for this purpose.
% \end{footabu}
%
%
@@ -2524,23 +2512,23 @@ morekeywords=[7]{yellow},
% \smex The word \emph{before} is not bold, and \textitbf{two} comes before \textitbf{one}.
%
% The reason is explained in the documentation of \xfile{array.sty}, and is related
-% to the \textt{array} environment in math mode when using \cs{newcolumntype}.
+% to the \env*{array} in math mode when using \cs\newcolumntype.
%
% This rather strange inversion of tokens may be justified in math mode (otherwise, errors may occur)
-% but not in text mode in our opinion. Inside a \textt{tabu} environment, when not in math mode,
+% but not in text mode in our opinion. Inside a \env*{tabu}, when not in math mode,
% the tokens are not reversed and you get the intuitively expected result:
%
% \begin{tabu}{\usetabu{tabbing}}
-% &
+% \indent &
% \begin{tabu}{|>{\bfseries}>{ before }l<{ one }<{ two }|}
% cell content
% \end{tabu}
% \end{tabu}
%
-% In math mode however, tokens are in the reverse order in the \textt{tabu} environment
-% like they are in the \textt{array} environment.
+% In math mode however, tokens are in the reverse order in the \env*{tabu}
+% like they are in the \env*{array}.
%
-% \subsection(Improved rewrite process){Improved process for rewritting columns \textmd{\emph{(for keen readers)}}}
+% \subsection(Improved rewrite process){Improved process for rewriting columns \textmd{\emph{(for keen readers)}}}
%
% Any tabular that does not split accross pages is made with the following process:
%
@@ -2567,21 +2555,21 @@ morekeywords=[7]{yellow},
% For more details, see the \nameref{Flow chart of expansion}.
%
%
-% \cs{@mkpream} works in two times inside a (semi-simple) group:
+% \cs\@mkpream works in two times inside a (semi-simple) group:
%
% \begin{description}[font=\mdseries\itshape,topsep=0pt,itemsep=0pt]
% \item [First the rewriting process:] \ \\
% Each special column in the tabular preamble is transformed into
% one the columns defined by \xfile{array.sty}.
-% \item [Second the building of the \textup{\cs{halign}} preamble:] \ \\
+% \item [Second the building of the \textup{\cs\halign} preamble:] \ \\
% The ``rewritten preamble'' is parsed and transformed in a preamble for the \TeX{} primitive
-% \cs{halign}. The result is stored into the \cs{@preamble} macro.
+% \cs\halign. The result is stored into the \cs\@preamble macro.
% \end{description}
%
% Any special columns of \textt{tabu} are defined only inside the ``\textt{@mkpream}'' group.
%
-% In the following example, you get an error with \textt{tabular} and no error with \textt{tabu}.
-% With \textt{tabular}, and \xpackage{siunitx} \textt S column, the {\descfont\mdseries\itshape rewritting process}
+% In the following example, you get an error with \env{tabular} and no error with \env{tabu}.
+% With \textt{tabular}, and \xpackage{siunitx} \textt S column, the {\descfont\mdseries\itshape rewriting process}
% is as follow:\nobreak
%
% \begin{tabu*}{@{}X[m]X[m1.2]@{}}
@@ -2622,32 +2610,16 @@ morekeywords=[7]{yellow},
% \end{enumerate}
% \end{tabu*}
%
-% The process of rewritting columns is usually longer inside \textt{tabu} than inside \textt{tabular},
-% but conversely \textt{tabu} with \textt X columns is optimised compared to \textt{tabularx},
-% because the preamble is built only once, and not rebuilt before each trial as \textt{tabularx} does.
-% Thus \textt{tabu} is much quicker than \textt{tabularx}.
+% The process of rewriting columns is usually longer inside \env{tabu} than inside \env{tabular},
+% but conversely \env{tabu} with \textt X columns is optimised compared to \env{tabularx},
+% because the preamble is built only once, and not rebuilt before each trial as \env{tabularx} does.
+% Thus \env{tabu} is much quicker than \env{tabularx}.
%
-% The process of rewritting is very sensitiv to the order in which columns are actually rewritten.
+% The process of rewriting is very sensitiv to the order in which columns are actually rewritten.
% This becomes critical when columns are defined with an optional argument like \xpackage{tabu} \textt X
% and \textttbf\textbar\ columns or \xpackage{siunitx} \textt S column.
%
-% If it possible to define a new column types using the \textt X token for use with \textt{tabu}:\nobreak
-% \begin{Verb*}
-% \newcolumntype{C}{X[c]}
-% \end{Verb*}
-%
-% it is not recommanded no nest such constructions like:
-% \begin{Verb*}
-% \newcolumntype{Q}{>{\color{green}}C}
-% \end{Verb*}
-%
-% In fact, a problem may arise in nested \textt{tabu}{\small s} if such a \textt Q column
-% is defined before the \textt C column...
-%
-% Well, just avoid to nest new column types definitions !
-%
-%
-% \ClearPage
+% \Needspace{5\baselineskip}
% \section{The package options}
%
% \subsection(The debugshow option){The \textt{debugshow} package option}
@@ -2657,11 +2629,11 @@ morekeywords=[7]{yellow},
% \cs{tracingtabu}\,=\,1, 2, 3 or 4
% \end{declcs}
%
-% The control sequence \cs{tracingtabu} has the same effect as the \textt{debugshow} option:
+% The control sequence \cs\tracingtabu has the same effect as the \textt{debugshow} option:
% \begin{itemize}
-% \item \xpackage{tabu} will report the widths it computes at each attempt to read the target,
+% \item \thispackage will report the widths it computes at each attempt to read the target,
% when \textt X columns are used.
-% \item Saved informations on the \textt{tabu} are reported in the \xext{log} file when \cs{savetabu}
+% \item Saved informations on the \env{tabu} are reported in the \xext{log} file when \cs\savetabu
% is used.
% \end{itemize}
%
@@ -2675,7 +2647,7 @@ morekeywords=[7]{yellow},
% Typical information in the \xext{log} file:
%
% {\ttfamily \noindent \tabcolsep=2pt
-% \begin{tabu}{cr*{3}{>{\centering}X[2]}>{\centering}X>{\centering}X[2]}
+% \begin{tabu}{cr*3{X[2c]}X[c]X[2c]}
% \rowfont[c]{}
% (tabu) &Try &tabu X &tabu Width &Target &Coefs &Update \\
% (tabu) &1) &386.67296pt &797.34592pt &386.67296pt &2.0pt &-205.33649pt \\
@@ -2686,33 +2658,33 @@ morekeywords=[7]{yellow},
% What does it mean? \def\pt#1{$#1$\textt{pt}}
% \begin{enumerate}[label=\arabic*),topsep=0pt,itemsep=\parskip,parsep=0pt]
% \item The first attempt was performed with \textt{X}$=$\pt{386.67296} \\
-% The \textt{tabu} width (\pt{797.34592}) exceeded the target by \pt{410.67296}. \\
+% The \env{tabu} width (\pt{797.34592}) exceeded the target by \pt{410.67296}. \\
% Thus \textt X has been updated: \pt{410.67296} $/2=$ \pt{205.33649} and then:\\
% \null\quad\textt X $=$ \pt{386.67296} $-$ \pt{205.33649} $=$ \pt{181.33647}
-% \item The second attempt lead to a \textt{tabu} width of \pt{386.67294}: the target is reached. \\
+% \item The second attempt lead to a \env{tabu} width of \pt{386.67294}: the target is reached. \\
% The final width of each \textt X column is the product of \textt{tabu X} by its width coefficient.
% \end{enumerate}
%
% \subsection(The delarray option){The \textt{delarray} package option}
%
% \textt{delarray} option has the single effect to load \xfile{delarray.sty} for delimiters shortcuts
-% around \textt{tabu}. Delimiters shortcuts work both in math and text mode.
+% around \env{tabu}. Delimiters shortcuts work both in math and text mode.
%
% \subsection(The linegoal option){The \textt{linegoal} package option}
% \label{subsec:linegoal package option}
%
-% With the \textt{linegoal} option, the default target for \textt{tabu} with \textt{X} columns is
-% \cs{linegoal} instead of \cs{linewidth}.
+% With the \textt{linegoal} option, the default target for \env{tabu} with \textt X columns is
+% \cs\linegoal instead of \cs\linewidth.
% The \xpackage{linegoal} package must be loaded and compilation must be done with \hologo{pdfTeX},
% otherwise, a warning is displayed and the \textt{linegoal} option has no effect: the default
-% target remains \cs{linewidth}. \cs{linegoal} works with \hologo{pdfTeX} in \textt{pdf} mode
+% target remains \cs\linewidth. \cs\linegoal works with \hologo{pdfTeX} in \textt{pdf} mode
% \textbf{and in} \textt{dvi} mode.
%
% If for some reason, you wish to turn down the \textt{linegoal} option in your document,
% you can say (in a group for example):
% \verb+\let\tabudefaulttarget=\linewidth+
%
-% In any case, specifying the target overwrites the default: \cs{begin}\M*{tabu} to\cs{linewidth}
+% In any case, specifying the target overwrites the default: \cs{begin}\M*{tabu} to\cs\linewidth
%
% \section(Corrections){Corrections of some bugs \textmd{\emph{(available only inside \textt{\upshape tabu})}}}
%
@@ -2738,12 +2710,13 @@ morekeywords=[7]{yellow},
% ...
% \end{tabu} \right.
% \end{Verbatim}
-% \end{tabu*}\par}
+% \end{tabu*}
+% }
%
%
% \subsection(arydshln @ columns){Correction for \xpackage{arydshln}: \texttbf @ columns}
%
-% A bug in \cs{adl@xarraydashrule}: \textt{!-arg} columns (class 1) and \textt{@-arg} columns (class 5) should be treated
+% A bug in \cs\adl@xarraydashrule: \textt{!-arg} columns (class 1) and \textt{@-arg} columns (class 5) should be treated
% the same as far as rules are concerned.
%
% With this correction, the ``known problem number 1'' in \xpackage{arydshln} documentation is solved.
@@ -2756,12 +2729,14 @@ morekeywords=[7]{yellow},
% \nprounddigits{0}
% \begin{itemize}[leftmargin=*,label=\ding{223}]
% \item Make double \cs{tabucline} compatible with \xpackage{colortbl} \cs{doublerulesepcolor}
-% \item Multiple \cs{tabucline} between different columns: extended specs: \\
+% \item Multiple \cs\tabucline between different columns: extended specs: \\
% \cs{tabucline}\M[line spec]\M*{start-stop, start-stop}\M[line spec]\M*{start-stop} ...
-% \item Presently, \textt{longtabu} with \textt X columns works only if \cs{LTchunksize} is greater than the number of rows.
-% I compiled a \textt{longtabu} of 56 pages on my PC with \cs{LTchunksize} $ = $ \numprint{2000} without problem.
-% Presently \cs{LTchunksize} is set to \numprint{10000} during trials when \textt{longtabu} contains \textt{X columns}.
-% \item Make \cs{tabucline} work with page breaks (one line on the top of the page, one line on the bottom of the previous).
+% \item Reimplement \cs\multicolumn in order to allow the \textt X token in \cs\multicolumn preamble. \\
+% Provide \cs\multicell to allow spanning columns and rows at the same time.
+% \item Presently, \env{longtabu} with \textt X columns works only if \cs\LTchunksize is greater than the number of rows.
+% I compiled a \env{longtabu} of 56 pages on my PC with \cs\LTchunksize $ = $ \numprint{2000} without problem.
+% Presently \cs\LTchunksize is set to \numprint{10000} during trials when \env{longtabu} contains \textt{X columns}.
+% \item Make \cs\tabucline work with page breaks (one line on the top of the page, one line on the bottom of the previous).
% \end{itemize}
%
% \raggedbottom
@@ -2819,7 +2794,7 @@ morekeywords=[7]{yellow},
% target which is \cs\linewidth$-$\meta{parindent correction} or \cs\linegoal. Each \textt X column has a width
% coefficient which is given too (or default to $1$). The coefficients are: $c_1, c_2, \dots c_n$.
%
-% $X$ is the main dimension that drives the withs of all columns with a non negative coefficient, and limit the widths
+% $X$ is the main dimension that drives the widths of all columns with a non negative coefficient, and limit the widths
% of columns with a negative coefficient.
%
% Then we have first:
@@ -3124,7 +3099,7 @@ morekeywords=[7]{yellow},
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{tabu}[2011/02/13 v2.3 - flexible LaTeX tabulars (FC)]
+\ProvidesPackage{tabu}[2011/02/17 v2.4 - flexible LaTeX tabulars (FC)]
\RequirePackage{array}[2008/09/09]
\RequirePackage{varwidth}[2009/03/30]
% \end{macrocode}
@@ -3149,12 +3124,10 @@ morekeywords=[7]{yellow},
\TMP@EnsureCode 95 = 8 % _
% \end{macrocode}
%
-%
+% \enlargethispage{\baselineskip}
% \subsection{Flow chart of expansion}
% \label{Flow chart of expansion}
%
-% \subsubsection(case: tabu, tabu to and tabu spread){General case: tabu, tabu to and tabu spread}
-%
% {
% \hskip-\evensidemargin
% \begin{tikzpicture}[yscale=.4,xscale=.6,framed,
@@ -3163,9 +3136,8 @@ morekeywords=[7]{yellow},
% \node [on chain,draw] (begintabu) at (0,0) {\cs{begin}\M*{tabu}} node [anchor=west] at (begintabu.east) {(\cs{begingroup})}
% node [on chain=going below,join] (tabu) {\cs{tabu}}
% node [on chain=going right,join] (tabudesc) {$\begin{tabu}\{{>{$}l<{$}}.
-% defines \cs{@halignto} and sets \cs{tabu@target} \\
-% load \cs{NC@rewrite@X} for \textt{tabu} \textt X columns \\
-% load special setup (\xpackage{arydshln} fixes, \cs{rowfont}, \cs{centering} etc)
+% sets \cs{tabu@target} \\
+% loads \env{tabu} setup and prepares \cs{tabu@cleanup} and \cs{tabu@reset}
% \end{tabu}$}
% node [on chain=going below,join] (tabu@begin) {\cs{tabu@begin}}
% node [on chain] (tabu@begindesc) {$\begin{tabu}\{{>{$}l<{$}}.
@@ -3174,7 +3146,7 @@ morekeywords=[7]{yellow},
% \end{tabu}$};
% \chainin (tabu@begin)
% node [on chain=going below] (H) {}
-% node [on chain=going below,join=with tabu@begin] (toarray) {\cs{tabular} or \cs{array} if in math mode};
+% node [on chain=going below,join=with tabu@begin] (toarray) {\cs\tabular or \cs\array if in math mode};
% \draw [densely dotted,gray,very thick] (begintabu.west |- H) -- (tabu@begindesc.east |- H) coordinate (H);
% \path [fill=AliceBlue] (begintabu.north -| H) rectangle ($(H)+(1,0)$) coordinate (bluebox)
% node [midway,rotate=-90] {\large\thispackage};
@@ -3215,35 +3187,13 @@ morekeywords=[7]{yellow},
%
% \paragraph(tabu to with X column){\textt{tabu to} with \textt X column}
%
-% The important part of the job is made inside the dashed box above: \cs{@mkpream}
+% The important part of the job is made inside the dashed box above: \cs\@mkpream
% expands the columns definitions, which can be user defined. Hopefully, it does its
% job inside a group, therefore a user-column can set a macro to be expanded
-% \cs{aftergroup}. This implementation allows much modifications in the tabular preparation,
-% without any change in the macros of \xfile{array.sty}.
-%
-% When a \textt{tabu X} column is found in the preamble by \cs{@mkpream}, \textt{tabu} changes his strategy: the macro
-% \cs{tabu@prep@TRIAL} is set to be expanded \cs{aftergroup} that is, just after the preamble (\cs{@preamble}) has been built.
-% This macro does some setup for \textt{tabu} trials to reach the target with variable \textt X column widths and gobbles
-% everything until the next \cs{bgroup} which corresponds to the \cs{vtop}, \cs{vbox} or \cs{vcenter} for the whole tabular.
-% This part of \cs{@array} is stored into \cs{tabu@Xfinish} to be expanded after the last trial gave satisfaction
-% to reach the \textt{tabu} target. Then \cs{tabu@collect} is expanded to find the end of the \textt{tabu} environment,
-% temporarily storing the environment content into a token register.
-%
-% The last part of \cs{@array} until \cs{halign} is expanded inside a \cs{vbox}
-% which is stored into the box register \cs{tabu@box} for measuring purpose. \cs{halign} ends by \cs{endarray}
-% which stops the \cs{tabu@box} as well, and then \cs{tabu@arith} is expanded to compute the gap between the
-% width of \cs{tabu@box} and the target, and \cs{tabucolX} (the dimension that correspond to \textt{X[1]})
-% is updated accordingly.
-%
-% The trials are ``protected'' by\, \M*{\cs{ifnum}0=`}\cs{fi}\, : they occur in a group that will be closed
-% at the very begining of \cs{tabu@Xfinish}, when the final tabular will be printed actually.
-% This protection is absolutely necessary to be able to collect
-% the environment body in the case of nested \textt{tabu} with \textt X columns. This is related to \TeX{}
-% mechanism of expansion inside \cs{halign} (\TeX{} stops reading when it encounters a \& \textt{alignment tab character}
-% and goes backward expanding anything that were not expanded before).
-%
-%
-% {\hskip-1cm
+% \cs\aftergroup. This implementation allows much modifications in the tabular preparation,
+% without any change in the macros of \xfile{array.sty}. \enlargethispage\baselineskip
+%
+% {\hskip-0cm
% \begin{tikzpicture}[yscale=.4,xscale=.6,framed,
% start chain=going below,node distance=.3cm and .5cm,
% every join/.style={->,thin,black,solid},every node/.style={black}]
@@ -3286,10 +3236,9 @@ morekeywords=[7]{yellow},
%
% \end{tikzpicture}}
%
-%
% \subsubsection(tabu spread with X column){\textt{tabu spread} with \textt X column}
%
-% In the case of ``\textt{tabu spread}'' with \textt X columns, the process is the same
+% In the case of ``\env{tabu spread}'' with \textt X columns, the process is the same
% as the one described for ``\textt{tabu to}'' with \textt X columns. However, the first
% trial is different because we have first to measure the \emph{natural width} of the
% tabular.
@@ -3347,7 +3296,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@nbcols}
%
-% \TeX{} counter that -- locally -- saves the total number of columns of the \textt{tabu}. Special \texttbf @ \, and \,\texttbf ! \,
+% \TeX{} counter that -- locally -- saves the total number of columns of the \env{tabu}. Special \texttbf @ \, and \,\texttbf ! \,
% columns are not counted (they are not \emph{real} columns for \cs\halign, but only insertions into the preamble).
%
% The value is used by \cs\tabucline to ensure that the leader does not jut out over the last column...
@@ -3355,14 +3304,14 @@ morekeywords=[7]{yellow},
% \begin{macro}{\tabu@cnt}
%
% \TeX{} counter that -- locally -- stores the number of trials. Incidentally, it is also temporarily used
-% to parse the width coefficient for \textt X columns, during the rewritting process.
+% to parse the width coefficient for \textt X columns, during the rewriting process.
%
% \begin{macro}{\tabu@Xcol}
%
-% \TeX{} counter that -- locally -- stores the number of \textt{tabu X} columns. Defined while rewritting
+% \TeX{} counter that -- locally -- stores the number of \textt{tabu X} columns. Defined while rewriting
% the \textt X token, it is used in the specification of the width of the column (\cs\tabu@hsize\M*{Rank of the X column}\M*{coef}).
%
-% It is also used to store the natural width of \textt X columns (in the cases of a negativ coefficient or if \textt{tabu spread}
+% It is also used to store the natural width of \textt X columns (in the cases of a negativ coefficient or if \env{tabu spread}
% is used).
%
% \begin{macro}{\tabu@alloc}
@@ -3566,7 +3515,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\iftabu@spread}
%
-% A switch whether ``\textt{tabu spread}'' is used or not. A nested \env{tabu} inside a \textt X column whose coefficient
+% A switch whether ``\env{tabu spread}'' is used or not. A nested \env{tabu} inside a \textt X column whose coefficient
% is negative has a default target set to \textt{spread 0pt}.
%
% \begin{macro}{\iftabu@negcoef}
@@ -3790,7 +3739,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@save@decl}
%
-% No inversion on tokens in the \text{tabu} preamble, when not in math mode.
+% No inversion on tokens in the \env{tabu} preamble, when not in math mode.
%
% \begin{macrocode}
\def\tabu@save@decl{\toks\count@ \expandafter{\the\toks\expandafter\count@
@@ -3859,6 +3808,7 @@ morekeywords=[7]{yellow},
% A macro that encloses the definition of \cs\tabu@celllalign, in order to check if the column is a \xpackage{siunitx}
% \textt S (or \textt s) column, and neutralise the setup of \cs\rowfont in this case, for \xpackage{siunitx} provides
% its own \textt{key=value} options to set fonts inside \textt S (or \textt s) columns.
+%
% \begin{macrocode}
\def\tabu@maybesiunitx #1{\def\tabu@temp{#1}%
\futurelet\@let@token \tabu@m@ybesiunitx}
@@ -4085,7 +4035,7 @@ morekeywords=[7]{yellow},
% the value is not restored globally at the end of the environment.
%
% Instead, \cs\tabu@arc@L stores locally the color definition (\ie its definition is relative to
-% the group level before the entry inside the \env{tabu} environment).
+% the group level before the entry inside the \env*{tabu}).
%
% This is the same for \cs\doublerulesepcolor (which may be given as an optional argument to
% \cs\taburulecolor): \Xpackage{colortbl} makes the definition global, while \thispackage keeps
@@ -4247,7 +4197,7 @@ morekeywords=[7]{yellow},
% Then the ``\textttbf o'' in \textt{BlanchedAlm\texttbf ond} is rewritten as follow:
% \begin{enumerate}
% \item ``\texttbf o'' sees ``\texttbf n'' after itself, then it expands \cs\tabu@onxiii.
-% \item \cs\tabu@onxiii sees a character whose catcode is not other, then the rewritting process is aborted,
+% \item \cs\tabu@onxiii sees a character whose catcode is not other, then the rewriting process is aborted,
% and ``\texttbf{ond}'' is rewritten as ``\texttbf{ond}'' where the ``\texttbf o'' is not active but the usual letter ``\texttbf o''.
% \end{enumerate}
%
@@ -4511,25 +4461,25 @@ morekeywords=[7]{yellow},
% \end{macro}
%
%
-% \subsection{The entry inside \textt{tabu}}
+% \subsection{The entry inside \env{tabu}}
%
% \subsubsection{\cs{tabu}, \cs{endtabu}, \cs{longtabu} and \cs{endlontabu}}
%¤<package>%% \tabu \endtabu \tabu* \longtabu \endlongtabu \longtabu* ----------
%
% \begin{macro}{\tabu}
%
-% \cs{tabu} is the command of the environment.
+% \cs\tabu and \cs\longtabu are the commands of the environments.
%
% \begin{macro}{\endtabu}
%
-% \cs{endtabu} is \cs{endtabular} or \cs{endarray} in math mode.
+% \cs\endtabu is \cs\endtabular or \cs\endarray in math mode.
%
% \begin{macrocode}
\newcommand*\tabu {\tabu@longfalse
\ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
\else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
\expandafter\let\csname tabu*\endcsname \tabu
- \expandafter\let\csname endtabu*\endcsname\endtabu
+ \expandafter\def\csname endtabu*\endcsname{\endtabu}%
\tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
}% {tabu}
\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
@@ -4538,7 +4488,6 @@ morekeywords=[7]{yellow},
\ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
\def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
\LTchunksize=\@M
- \expandafter\let\csname longtabu*\endcsname\longtabu % Humm...
\expandafter\let\csname tabu*\endcsname\tabu
\let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
\tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
@@ -4556,7 +4505,7 @@ morekeywords=[7]{yellow},
% \begin{macro}{\tabu@settarget}
% \begin{macro}{\tabu@begin}
%
-% The macro sets \cs\tabu@target (a dimen) to the value specified for ``\textt{tabu to}'' or ``\textt{tabu spread}''.
+% The macro sets \cs\tabu@target (a dimen) to the value specified for ``\env{tabu to}'' or ``\env{tabu spread}''.
%
% \begin{macrocode}
\def\tabu@settarget {\futurelet\@let@token \tabu@sett@rget }
@@ -4611,7 +4560,7 @@ morekeywords=[7]{yellow},
% \begin{macro}{\tabu@init}
% \begin{macro}{\tabu@indent}
%
-% \cs{tabu@init} is expanded only when \textt{tabu} is not nested.
+% \cs\tabu@init is expanded only when \env{tabu} is not nested.
% In this case, and if \cs\parindent$>0$, and if \cs\tabudefaulttarget$=$\cs\linewidth,
% the correction of the default target for paragraph indentation is executed
% (see \hyperref[Paragraph indentation.subsec]{paragraph indentation}).
@@ -4818,16 +4767,16 @@ morekeywords=[7]{yellow},
% \end{macro}
%
%
-% \subsection{The rewritting process: inside the ``\cs{@mkpream} group''}
+% \subsection{The rewriting process: inside the ``\cs{@mkpream} group''}
%¤<package>%% The Rewritting Process -------------------------------------------
%
% \subsubsection{New column types and private (new) column types}
%
% \begin{macro}{\tabu@newcolumntype}
%
-% A helper macro to create new column types for \textt{tabu}.
+% A helper macro to create new column types for \env{tabu}.
%
-% The column types \textbf{are not appended} to \cs{NC@list} in order to keep them local to \textt{tabu}.
+% The column types \textbf{are not appended} to \cs\NC@list in order to keep them local to \env{tabu}.
%
% \begin{macrocode}
\def\tabu@newcolumntype #1{%
@@ -4845,8 +4794,8 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@privatecolumntype}
%
-% Columns types defined with \cs{tabu@privatecolumntype} are "mounted" only inside the \cs{@mkpream} group
-% of \textt{tabu}.
+% Columns types defined with \cs\tabu@privatecolumntype are "mounted" only inside the \cs\@mkpream group
+% of \env{tabu}.
%
% \begin{macrocode}
\def\tabu@privatecolumntype #1{%
@@ -4870,7 +4819,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabucolumn}
%
-% \cs\tabucolumn puts a user-defined column in high priority in the \env{tabu} rewritting process.
+% \cs\tabucolumn puts a user-defined column in high priority in the \env{tabu} rewriting process.
%
% \begin{macrocode}
\newcommand*\tabucolumn [1]{\expandafter \def \expandafter
@@ -4881,8 +4830,8 @@ morekeywords=[7]{yellow},
% \end{macro}
%
%
-% \subsubsection{Rewritting vertical lines and leaders}
-%¤<package>%% The | ``column'' : rewritting process --------------------------
+% \subsubsection{Rewriting vertical lines and leaders}
+%¤<package>%% The | ``column'' : rewriting process --------------------------
%
% \begin{macro}{| (private column type)}
%
@@ -4956,7 +4905,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@rewritemulticolumn}
%
-% A special rewrite to allow \texttbf\textbar\M*[...] in \cs\multicolumn preamble inside \env{tabu} environment.
+% A special rewrite to allow \texttbf\textbar\M*[...] in \cs\multicolumn preamble inside \env*{tabu}.
%
% As long as \cs\multicolumn begins with \cs\omit (via \cs\multispan) special care has to be taken:
% everything shall be purely expandable until \cs\omit.
@@ -4988,16 +4937,16 @@ morekeywords=[7]{yellow},
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{Rewritting \textt{tabu X} columns}
+% \subsubsection{Rewriting \textt{tabu X} columns}
% \label{tabu X column definition}
-%¤<package>%% The X column(s): rewritting process -----------------------------
+%¤<package>%% The X column(s): rewriting process -----------------------------
%
% \begin{macro}{X (private column type)}
%
% This is the rewrite macro for \textt{tabu X} columns.
% Such a column has an optional argument: the width coefficient for the \textt{tabu X} column
% whose default value is 1, and may be some alignments parameters.
-% The coefficient is used in the expression: \textt{p\M*{\cs{dimexpr}\meta{coef}\cs{tabucolX}}}
+% The coefficient is used in the expression: \texttbf p\M*{\cs\dimexpr\meta{coef}\cs\tabucolX}
%
% \begin{macrocode}
\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
@@ -5023,13 +4972,13 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@rewriteX}
%
-% This macro is expanded by during the rewritting process in case a \textt X column is found.
+% This macro is expanded by during the rewriting process in case a \textt X column is found.
%
% \cs\tabu@Xsum (a dimen) stores the sum of the (absolute) width coefficients.
%
% For the first \textt{X column} found in the preamble, a special setup occurs:
% \begin{itemize}[itemsep=0pt,topsep=0pt,leftmargin=*]
-% \item if the default target is used (no target specified or \textt{tabu spread} with \textt X columns),
+% \item if the default target is used (no target specified or \env{tabu spread} with \textt X columns),
% the target: \cs\tabu@target is set to the default, with a message in the \xext{log} file.
% \item \cs\@halignto is \cs\let to \cs\relax to avoid its expansion in \cs\xdef\cs\@preamble just after \cs\@mkpream.
% Indeed as long as we have to measure the natural width of the tabular, \cs\@halign must be empty for trial steps.
@@ -5205,7 +5154,7 @@ morekeywords=[7]{yellow},
% \begin{macro}{\usetabu (private column type)}
%
% \cs\usetabu is defined as a \env{tabu} new column type: loaded only inside the \cs\@mkpream
-% group inside the \env{tabu} environment.
+% group inside the \env*{tabu}.
%
% \begin{macrocode}
\tabu@privatecolumntype \usetabu [1]{%
@@ -5299,12 +5248,12 @@ morekeywords=[7]{yellow},
%
% To avoid duplicate margin in the \textt{tabu} we have to test the next token in the preamble.
% If the next token is \textt\textbar\ or \textt !\ then no margin must be added and
-% \textt{@\M*{\cs\extracolsep\cs{@flushglue}}} can be inserted at the beginning of the preamble.
+% \texttbf @\M*{\cs\extracolsep\cs{@flushglue}} can be inserted at the beginning of the preamble.
%
-% Otherwise, we must insert \textt{!\M*{\cs\extracolsep\cs{@flushglue}}} in order to keep the margin.
+% Otherwise, we must insert \texttbf !\M*{\cs\extracolsep\cs{@flushglue}} in order to keep the margin.
%
% \cs\tabu@rewritelast column type is loaded by \cs\tabu@rewritefirst column type, only inside the \cs\@mkpream
-% group inside the \textt{tabu} environment.
+% group inside the \env*{tabu}.
%
% \begin{macrocode}
\tabu@newcolumntype \tabu@rewritemiddle{%
@@ -5319,7 +5268,7 @@ morekeywords=[7]{yellow},
\ifcase \tabu@cnt \expandafter\tabu@endrewrite
\else \expandafter\NC@find \expandafter\tabu@rewritemiddle
\fi
-}% \NC@ewrite@\tabu@rewritelast
+}% \NC@rewrite@\tabu@rewritelast
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -5569,6 +5518,7 @@ morekeywords=[7]{yellow},
\edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
\ifx \tabu@stack\@empty
\toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
+ \def\tabu@end@envir{\end{#3}}%
\iftabuscantokens \def\tabu@endenvir{\let\endarray \@empty
\end{#3}\tabu@gobbleX}%
\else \def\tabu@endenvir{\end{#3}}\fi}%
@@ -5601,7 +5551,7 @@ morekeywords=[7]{yellow},
% This macro does some specific setup depending on the strategy ($1$, $2$ or $3$),
% and orders to finish when all measurements are done.
%
-% This consists in a switch (\cs{ifcase}) which is done before the trials by \cs\tabu@strategy,
+% This consists in a switch (\cs\ifcase) which is done before the trials by \cs\tabu@strategy,
% and after the trials by \cs\tabu@endtrial.
%
% \begin{macrocode}
@@ -5854,7 +5804,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@arith}
%
-% General algorithms for \textt{tabu to} with \textt X columns.
+% General algorithms for \env{tabu to} with \textt X columns.
%
% \begin{macrocode}
\def\tabu@givespace #1#2{% here \tabu@DELTA < \z@
@@ -5914,7 +5864,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@spreadarith}
%
-% Algorithm for \textt{tabu spread} with \textt X columns: the aim of the game is to compute the
+% Algorithm for \env{tabu spread} with \textt X columns: the aim of the game is to compute the
% target (relative to the natural width of the tabular) and go to \cs\tabu@arith afterwards.
%
% \begin{macrocode}
@@ -6119,11 +6069,11 @@ morekeywords=[7]{yellow},
%
% The important job is done at the end: by \cs\tabu@endpboxmeasure.
%
-% When ``\textt{tabu spread}'' is used with \textt X columns, the first trial must
+% When ``\env{tabu spread}'' is used with \textt X columns, the first trial must
% measure the natural width of the columns. When \textt X columns have negativ coefficient,
% the natural is computed after the target has been reached, with the absolute coefficients.
%
-% Nested trials may occur (\textt{tabu spread} inside a \textt X column with negativ
+% Nested trials may occur (\env{tabu spread} inside a \textt X column with negativ
% coefficient for example).
%
% For the furthur trials, the standard scheme for \textt X column is used: the natural width
@@ -6163,7 +6113,7 @@ morekeywords=[7]{yellow},
%
% The cell has been built inside a box: we have to get its dimensions,
% and update \cs\tabu@naturalX, \cs\tabu@naturalXmin and \cs\tabu@naturalXmax
-% accordingly (for \textt{tabu spread}), and even store (globally) each column width:
+% accordingly (for \env{tabu spread}), and even store (globally) each column width:
% the column width is the maximum width of the cells it contains.
%
% \begin{macrocode}
@@ -6209,9 +6159,18 @@ morekeywords=[7]{yellow},
\expandafter\@gobble \@startpbox % gobbles \bgroup
}% \tabu@startpboxquick
\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
- \toks@{}\def\tabu@stack{b}\tabu@collectbody
- \endgroup
+ \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
}% \tabu@quick
+\def\tabu@endquick {%
+ \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else
+ \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
+ \endgroup
+ \else \let\endtabu \relax
+ \tabu@end@envir
+ \fi
+}% \tabu@quick
+\def\tabu@endtabu {\end{tabu}}
+\def\tabu@endtabus {\end{tabu*}}
% \end{macrocode}
% \end{macro}
%
@@ -6317,9 +6276,9 @@ morekeywords=[7]{yellow},
%
% \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}...
+% This macro inserts a phantom line in front of a \env{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{%
@@ -6570,7 +6529,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@startstop}
%
-% This macro parses the mandatory argument of \cs{tabucline}: start-column and end-column of the \textt{cline}.
+% This macro parses the mandatory argument of \cs\tabucline: start-column and end-column of the \cs\cline.
%
% \begin{macrocode}
\def\tabu@startstop #1{\tabu@start@stop #1\relax 1-\tabu@nbcols \@nnil}
@@ -6690,19 +6649,19 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@verb}
%
-% The \cs{verb} macro from the latex kernel expands \cs{@ifstar} in
+% The \cs\verb macro from the latex kernel expands \cs\@ifstar in
% a context where the space token: \textvisiblespace\, has a category code of 12.
%
-% This is not compatible with \cs{scantokens} since \cs{scantokens} adds a space
-% after each control sequence, including \cs{verb}:
+% This is not compatible with \cs\scantokens since \cs\scantokens adds a space
+% after each control sequence, including \cs\verb:
%
-% \cs{verb}+some verbatim text+ \qquad becomes:
+% \cs\verb+some verbatim text+ \qquad becomes:
%
-% \cs{verb}\textvisiblespace+some verbatim text+
+% \cs\verb\textvisiblespace+some verbatim text+
%
-% and thus, the space token \textvisiblespace\, is set as the \cs{verb} delimiter.
+% and thus, the space token \textvisiblespace\, is set as the \cs\verb delimiter.
%
-% We therefore use (a silly) \cs{@ifstar} in order to gobble the possible space token.
+% We therefore use (a silly) \cs\@ifstar in order to gobble the possible space token.
%
% \begin{macrocode}
\let\tabu@ltx@verb \verb
@@ -6714,22 +6673,22 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@FV@DefineCheckEnd}
%
-% This is quite the same issue as for \LaTeX{} \cs{verb} command: a space is inserted
-% after each control sequence scanned by \cs{scantoken}.
+% This is quite the same issue as for \LaTeX{} \cs\verb command: a space is inserted
+% after each control sequence scanned by \cs\scantoken.
%
-% This leads to a break in the macro that checks the end of a \textt{Verbatim} environment,
+% This leads to a break in the macro that checks the end of a \env*{Verbatim},
% since this macro basically checks for a line that conforms to the pattern:
%
% \#1\cs{end}\M*{\#2}\#3
%
-% while with \cs{scantokens}, such a line becomes:
+% while with \cs\scantokens, such a line becomes:
%
% \#1\cs{end}\textvisiblespace\M*{\#2}\#3
%
% in a context where the space token is not of category 10 (space).
%
-% Thus we replace the end-check for the \textt{Verbatim} environment by a check
-% on the detokenized-line (with \eTeX{} \cs{detokenize}):
+% Thus we replace the end-check for the \env*{Verbatim} by a check
+% on the detokenized-line (with \eTeX{} \cs\detokenize):
%
% \begin{macrocode}
\def\tabu@fancyvrb {%
@@ -6760,7 +6719,7 @@ morekeywords=[7]{yellow},
% \begin{macro}{\tabu@FV@ListProcessLine}
%
% This macro replaces \cs\FV@ListProcessLine when measuring the
-% natural width of a \textt{Verbatim} environment (see \cs\tabu@startpboxmeasure)
+% natural width of a \env*{Verbatim} (see \cs\tabu@startpboxmeasure)
%
% \begin{macrocode}
\def\tabu@FV@ListProcessLine #1{%
@@ -6786,7 +6745,7 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\savetabu}
%
-% When this command is called by the user, the \textt{tabu} preamble and target are globally
+% When this command is called by the user, the \env{tabu} preamble and target are globally
% stored into a macro \cs{tabu@saved@\meta{user-name}}.
%
% \begin{macrocode}
@@ -6886,12 +6845,14 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\rowfont}
%
-% \cs\rowfont uses the control sequences \cs\tabu@celllalign, \cs\tabu@cellleft, \cs\tabu@cellright\linebreak
-% and \cs\tabu@cellralign which have been placed on purpose into the user-defined tokens inserted
+% {\sloppy\spaceskip=\fontdimen2\font plus1em minus1em\relax
+% \cs\rowfont uses the control sequences \cs\tabu@celllalign, \cs\tabu@cellleft, \cs\tabu@cellright and \linebreak
+% \cs\tabu@cellralign which have been placed on purpose into the user-defined tokens inserted
% in any preamble by the \xpackage{array} package.
+% }
%
% \cs\tabu@celllalign and \cs\tabu@cellralign are used to modify the alignment. If the optional
-% \M[alignment] parameter of \cs\rowfont is not specified, then those control sequence expand
+% \M[alignment] parameter of \cs\rowfont is not specified, then those control sequences expand
% to \cs\@empty.
%
% \cs\tabu@cellleft contains the font-modification information.
@@ -6968,35 +6929,35 @@ morekeywords=[7]{yellow},
% \end{tikzpicture}
% \end{center}
%
-% When a column is inserted in the tabular preamble (\cs{@preamble}), the \TeX{} counter \cs{count@}
-% is equal to $i+1$ (\ie the right token) and the counter \cs{@tempcnta} is equal to $i$ (\ie the left token).
-% If the column is special (\ie \texttbf @ or \texttbf !) \cs{@tempcnta} is not updated.
+% When a column is inserted in the tabular preamble (\cs\@preamble), the \TeX{} counter \cs\count@
+% is equal to $i+1$ (\ie the right token) and the counter \cs\@tempcnta is equal to $i$ (\ie the left token).
+% If the column is special (\ie \texttbf @ or \texttbf !) \cs\@tempcnta is not updated.
%
% Thus, when a new token is ``prepared'' by \cs{prepnext@tok}:
% \begin{description}[leftmargin=1cm,beginpenalty=10000]
-% \item[either: $\mathbf{i=}$\cs{count@}$\,=$\cs{@tempcnta}]: the token to prepare (\ie \cs{toks}$<i+1>$)
+% \item[either: $\mathbf{i=}$\cs{count@}$\,=$\cs{@tempcnta}]: the token to prepare (\ie \cs\toks$<i+1>$)
% is the right one of a ``normal'' column. The switch \cs{iftabu@cellright} is set to \textt{true}. \\
-% The \emph{previous} token (\cs{toks}$<i>=$\cs{toks}\cs{count@}) is necessarily the left one of this ``normal'' column:
-% we prepend \cs{tabu@celllalign} and append \cs{tabu@cellleft} to this token (\cs{toks}$<i>$).
+% The \emph{previous} token (\cs{toks}$<i>=$\cs{toks}\cs\count@) is necessarily the left one of this ``normal'' column:
+% we prepend \cs{tabu@celllalign} and append \cs\tabu@cellleft to this token (\cs\toks$<i>$).
% This token is finished and will not change afterwards.
%
-% \item[or: $\mathbf{i=}$\cs{count@}$\,=$\cs{@tempcnta}$+1$]: the token to prepare (\cs{toks}$<i+1>$) is either the left one of a normal column,
+% \item[or: $\mathbf{i=}$\cs\count@$\,=$\cs\@tempcnta$+1$]: the token to prepare (\cs\toks$<i+1>$) is either the left one of a normal column,
% or the single one of a special\, \texttbf @ or \texttbf !\, column.\\
% If the switch \cs{iftabu@cellright} is true, then the \emph{previous} token \cs{toks}$<i>$ is the right one of the last inserted column
-% (which was a ``normal'' column, thus):, \cs{tabu@cellright}\cs{tabu@cellralign}\, is appended to it, and the switch
+% (which was a ``normal'' column, thus):, \cs\tabu@cellright\cs\tabu@cellralign\, is appended to it, and the switch
% \cs{ittabu@cellright} is reset to \texttt{false}.
-% May be \cs{prepnext@tok} will be expanded again (by \cs{save@decl}): if it happens,
-% then again\, \cs{count@}$\,=$\cs{@tempcnta}$+1$\, (same case) but \cs{iftabu@cellright} is \textt{false} and nothing is changed.
+% May be \cs\prepnext@tok will be expanded again (by \cs\save@decl): if it happens,
+% then again\, \cs\count@$\,=$\cs\@tempcnta$+1$\, (same case) but \cs{iftabu@cellright} is \textt{false} and nothing is changed.
%
-% \item[else:] The token to prepare (which is \cs{toks}$<i+1>=$\cs{toks}\cs{count@}$+1$), cannot be the right one of a ``normal'' column:
+% \item[else:] The token to prepare (which is \cs\toks$<i+1>=$\cs\toks\cs\count@$+1$), cannot be the right one of a ``normal'' column:
% \cs{iftabu@cellright} is set to \textt{false}. \\
-% The fact that\, $\vert$\cs{count@}$-$\cs{@tempcnta}$\vert>1$\, tells us that the previous token \cs{toks}$<i>$
+% The fact that\, $\vert$\cs\count@$-$\cs\@tempcnta$\vert>1$\, tells us that the previous token \cs\toks$<i>$
% is necessarily the single one of a ``special''\, \texttbf @ or \texttbf !\, column. We don't modify this token, as
-% long as \emph{special columns are always inserted as is}:\, \cs{rowcolor} has no effect on special
-% columns, nor\, \cs{rowfont}.
+% long as \emph{special columns are always inserted as is}:\, \cs\rowcolor has no effect on special
+% columns, nor\, \cs\rowfont.
% \end{description}
-% Thereafter, the original initialisation sequence occurs: \cs{advance}\cs{count@}\textt{ by}\cs{@ne} and initialize the token
-% to prepare (\cs{toks}\cs{count@}$\,=$\cs{toks}$<i+1>$) to an empty one.
+% Thereafter, the original initialisation sequence occurs: \cs\advance\cs\count@\textt{ by}\cs\@ne and initialize the token
+% to prepare (\cs\toks\cs\count@$\,=$\cs\toks$<i+1>$) to an empty one.
%
% \begin{macrocode}
\newif \iftabu@cellright
@@ -7160,8 +7121,8 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@removehfil}
%
-% \cs{tabu@removehfil} removes (eventually) the infinite stretchable glue inserted
-% \emph{before} the cell (in the preamble of \cs{halign}) to make the column alignment.
+% \cs\tabu@removehfil removes (eventually) the infinite stretchable glue inserted
+% \emph{before} the cell (in the preamble of \cs\halign) to make the column alignment.
%
% \begin{macrocode}
\let\tabu@hfil \hfil
@@ -7185,8 +7146,8 @@ morekeywords=[7]{yellow},
%
% \begin{macro}{\tabu@ignorehfil}
%
-% \cs{tabu@ignorehfil} removes (eventually) the infinite stretchable glue inserted
-% \emph{after} the cell (in the preamble of \cs{halign}) to make the column alignment.
+% \cs\tabu@ignorehfil removes (eventually) the infinite stretchable glue inserted
+% \emph{after} the cell (in the preamble of \cs\halign) to make the column alignment.
%
% \begin{macrocode}
\def\tabu@ignorehfil{\aftergroup \tabu@nohfil}
@@ -7333,9 +7294,9 @@ morekeywords=[7]{yellow},
%
% \subsubsection(delarray compatibility fix){delarray comptability fix for \xpackage{colortbl} and \xpackage{arydshln}}
%
-% Both \xpackage{colortbl} and \xpackage{arydshln} forgot the control sequence \cs{@arrayright}
-% which must be expanded by \cs{endarray}. Originally defined for \xpackage{delarray}, this control
-% sequence is used by \textt{tabu} environments when \textt{tabu X} columns are present in the preamble.
+% Both \xpackage{colortbl} and \xpackage{arydshln} forgot the control sequence \cs\@arrayright
+% which must be expanded by \cs\endarray. Originally defined for \xpackage{delarray}, this control
+% sequence is used by \env{tabu} environments when \textt{tabu X} columns are present in the preamble.
%
% Here is the fix. We test if \cs\endarray contains \cs\@arrayright before modifying the control sequence,
% in case \xpackage{colortbl} and/or \xpackage{arydshln} modify their definition.
@@ -7392,7 +7353,7 @@ morekeywords=[7]{yellow},
%
% \subsubsection{arydshln, colors without \xpackage{colortbl} and empty \textt p columns}
%
-% \xpackage{arydshln} redefines \cs{@endpbox} for \textt p columns. The definition is stored in \cs{adl@act@endpbox}.
+% \xpackage{arydshln} redefines \cs\@endpbox for \textt p columns. The definition is stored in \cs\adl@act@endpbox.
% Here it is:
%
% \begin{Verb*}
@@ -7545,7 +7506,7 @@ morekeywords=[7]{yellow},
% \end{itemize}
%
% At Begin Document,a fix for \Xpackage{arydshln} and \Xpackage{colortbl} comptability with \Xpackage{delarray}
-% shortcuts available inside \textt{tabu}: requirement for this fix is checked by \cs\tabu@fix@arrayright.
+% shortcuts available inside \env{tabu}: requirement for this fix is checked by \cs\tabu@fix@arrayright.
%
% Then the switch \cs{iftabu@colortbl} is set.
%
@@ -7616,10 +7577,16 @@ morekeywords=[7]{yellow},
%
% \begin{macrocode}
\tabuscantokensfalse
-\let\tabu@arc@G \relax \let\tabu@drsc@G \relax
-\let\tabu@evr@G \@empty
-\let\tabu@rc@G \@empty
-\def\tabu@ls@G {\tabu@linestyle@}%
+\let\tabu@arc@G \relax
+\let\tabu@drsc@G \relax
+\let\tabu@evr@G \@empty
+\let\tabu@rc@G \@empty
+\def\tabu@ls@G {\tabu@linestyle@}%
+\let\tabu@@rowfontreset \@empty % <init>
+\let\tabu@@celllalign \@empty
+\let\tabu@@cellralign \@empty
+\let\tabu@@cellleft \@empty
+\let\tabu@@cellright \@empty
\def\tabu@naturalXmin {\z@}
\def\tabu@naturalXmax {\z@}
\let\tabu@rowfontreset \@empty
@@ -7648,7 +7615,7 @@ morekeywords=[7]{yellow},
% \begin{thebibliography}{9}
%
% \bibitem{array}
-% \textit{A new implementation of \LaTeX's \textt{tabular} and \textt{array} environments} by Frank Mittelbach\\
+% \textit{A new implementation of \LaTeX's \env{tabular} and \env{array} environments} by Frank Mittelbach\\
% 2008/09/09 v2.4c -- Tabular extension package (FMi) \\
% \href{http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/array.html}{\nolinkurl{CTAN:help/Catalogue/entries/array.html}}
%
@@ -7671,7 +7638,11 @@ morekeywords=[7]{yellow},
% \def\Version#1{\HistVersion{#1}\setitemize{name=#1,leftmargin=2em}\itemize}
% \addtocontents{toc}{\tocsetup{subsection/font+=\string\smaller}}
%
-% \sectionformat\subsection[hang]{font=\large\bfseries\macrocodecolor} \robustify\textbf \robustify\xfile ^^A\HistLabel does \edef on \@currentlabel (\protected@edef required !!)
+% \sectionformat\subsection[hang]{font=\normalsize\bfseries\pkgcolor} \robustify\textbf \robustify\xfile ^^A\HistLabel does \edef on \@currentlabel (\protected@edef required !!)
+%
+% \begin{Version}{2011/02/17 v2.4}\HistLabel{2.4}
+% \item Documentation revisited
+% \end{Version}
%
% \begin{Version}{2011/02/13 v2.3}\HistLabel{2.3}
% \item Fixed two bugs for nested \env*{tabu}: when using \cs\rowfont and when \env{tabu} is nested inside \env{longtabu}
@@ -7679,7 +7650,7 @@ morekeywords=[7]{yellow},
%
% \begin{Version}{2011/02/12 v2.2 -- \texorpdf\textbf{New implementation - Absolutely no modification of \texorpdf\xfile{array.sty}}}\HistLabel{2.2}
% \item \thispackage has been totally reimplemented, including the algorithms. \\
-% In particular, outside of the \textt{tabu} environment, absolutely none of the macros of \xfile{array.sty},
+% In particular, outside of the \env*{tabu}, absolutely none of the macros of \xfile{array.sty},
% (and obviously none of \LaTeX{}) is modified. \\[\medskipamount]
% The process has been completely reinvented: \env{tabu} follows a path along different modes (or strategies)
% measuring natural width of cells, fixing \textt X column widths, measuring vertical length of rows and then printing the
@@ -7690,7 +7661,7 @@ morekeywords=[7]{yellow},
% \env{tabu} now systematically collects the environment body. But with \cs\scantokens, it is possible to insert verbatim
% material inside the columns: use \env{tabu*} instead of \env{tabu}, for the outer most tabular.
%
-% \item New: \csref\firsthline and \csref\lasthline can draw multiple lines, and there is an option to
+% \item New: \cs\firsthline and \cs\lasthline can draw multiple lines, and there is an option to
% set \cs\extratabsurround instantly, and locally.
% \item New: \cs\taburulecolor with a good behaviour with groupings (like \cs\everyrow)
% \item Modification: \cs\tabulinestyle sets the line style for the tabu, \cs\newtabulinestyle defines
@@ -7706,23 +7677,22 @@ morekeywords=[7]{yellow},
% \begin{Version}{2011/01/19 v2.1}\HistLabel{2.1}
% \item \hyperref[vertical spacing.sec]{Vertical spacing} had a bug with \textt{longtabu} and paragraph columns.\\
% Fixed.
-% \item New: \csref\everyrow.
-% \item Fix a bug of \csref{rowfont} when using \Xpackage{siunitx} \textt S columns.
+% \item New: \cs\everyrow.
+% \item Fix a bug of \cs\rowfont when using \Xpackage{siunitx} \textt S columns.
% \item Some code optimisation.
% \item To do (if possible): a syntax \textt{X[6mc]{S[...]}} to ``embed'' \Xpackage{siunitx} \textt S column
-% inside \textt{tabu} and \textt{longtabu} \textt X columns...
+% inside \env{tabu} and \env{longtabu} \textt X columns...
% \end{Version}
%
% \begin{Version}{2011/01/18 v2.0}\HistLabel{2.0}
-% \item \hyperref[vertical spacing.sec]{Vertical spacing} of lines implemented ! See \csref{tabulinesep} and \csref{extrarowsep}.
+% \item \hyperref[vertical spacing.sec]{Vertical spacing} of lines implemented ! See \cs\tabulinesep and \cs\extrarowsep.
% \item \csref{tabulinestyle}: user defined line style can now be used inside the optional argument of the \texttbf\textbar\M*[...]
% preamble token.
-% \item \texttbf\textbar\M*[...] is now allowed in \cs{multicolumn} preamble inside \textt{tabu} environment.
-% (Disabled with the \hyperref[sec:light package option]{\textt{light} package option}.)
+% \item \texttbf\textbar\M*[...] is now allowed in \cs\multicolumn preamble inside \env{tabu} environment.
% \item Bug fixed inside \cs{tabu@prepnexttok} (again !!! - a difficult case !)
-% \item Incompatibility of package \Xpackage{cellspace} with \textt{tabu spread} and \textt{tabu} with \label{cellspace limitations}
-% \refitem{item:Negativ width coefficients}[negativ coefficients] for \textt{X} columns with has been lifted. \\
-% However, as said in the documentation of package \xpackage{cellspace}, \textt{S} column modifier does not work
+% \item Incompatibility of package \Xpackage{cellspace} with \env{tabu spread} and \env{tabu} with \label{cellspace limitations}
+% \refitem{item:Negativ width coefficients}[negativ coefficients] for \textt X columns with has been lifted. \\
+% However, as said in the documentation of package \xpackage{cellspace}, \textt S column modifier does not work
% in the case of nested tabulars. \\
% The \textt S column modifier becomes \textt C when the package \Xpackage{siunitx} is loaded
% (see \xpackage{siunitx} documentation). \\
@@ -7734,18 +7704,18 @@ morekeywords=[7]{yellow},
% \end{Version}
%
% \begin{Version}{2011/01/15 v1.9}\HistLabel{1.9}
-% \item Bug in \csref\savetabu when used inside \textt{longtabu}...
-% \item Bug when \env{tabu} with \textt X column is nested inside \textt{lontabu}.
-% \item Documentation (\csref\rowfont was missing in the \hyperref[Summary]{summary}).
+% \item Bug in \cs\savetabu when used inside \env{longtabu}...
+% \item Bug when \env{tabu} with \textt X column is nested inside \env{lontabu}.
+% \item Documentation (\cs\rowfont was missing in the \hyperref[Summary]{summary}).
% \end{Version}
%
% \begin{Version}{2010/12/28 v1.8}\HistLabel{1.8}
% \item \csref{tracingtabu} / \hyperref[debugshow]{\textt{debugshow}} package option:\\
% reporting of the time elapsed during trials (if \cs\pdfelapsedtime and thus \hologo{pdfTeX} is available) \\
% Slight modifications for better reporting on the \xext{log} file.
-% \item Fix a bug when \csref{savetabu} is used after \cs{multicolumn} (\cs{multicolumn} globally redefines \cs{@preamble}).
-% \item Fix a bug with \csref{tabucline} and \cs{CT@arc@} (\xpackage{colortbl}).
-% \item Better privacy of columns types specifically defined for \textt{tabu}.
+% \item Fix a bug when \cs\savetabu is used after \cs\multicolumn (\cs\multicolumn globally redefines \cs\@preamble).
+% \item Fix a bug with \cs\tabucline and \cs\CT@arc@ (\xpackage{colortbl}).
+% \item Better privacy of columns types specifically defined for \env{tabu}.
% \item Improvement in the rewritting process (but only very few people should notice...)
% \item Documentation.
% \end{Version}
@@ -7759,13 +7729,13 @@ morekeywords=[7]{yellow},
% \item Implementation of negativ width coefficients for \textt X columns (cf. \refitem{tabu X columns,2}[\nameref*{tabu X columns} point \ref]).
% \item Columns natural widths computation (for \textt{tabu spread} with \textt X columns and negativ coefficients)
% is based on the code of the \xpackage{varwidth} package by Donald Arseneau.
-% \item \textt{longtabu} is now provided, based on the \xpackage{longtable} package by David Carlisle. \\
-% \textt{longtabu} can be used just like \textt{tabu}.
+% \item \env{longtabu} is now provided, based on the \xpackage{longtable} package by David Carlisle. \\
+% \env{longtabu} can be used just like \textt{tabu}.
% \item Vertical lines can be used whatever the catcode of \textbf\textbar\ is.
-% \item \csref\savetabu reports saved informations in the \xext{log} (\hyperref[debugshow]{\textt{debugshow}} option).
-% \item \cs\savetabu ... \cs{usetabu} now restores the \cs{halign} preamble rather than the \textt{tabu} preamble! \\
-% \csref\preamble can be use in the \textt{tabu} preamble to restore a \texttt{tabu} preamble.
-% \item \csref\tabucline is more robust with ``special'' preambles containing\, \texttbf>\, or\, \texttbf<\, tokens. \\
+% \item \cs\savetabu reports saved informations in the \xext{log} (\hyperref[debugshow]{\textt{debugshow}} option).
+% \item \cs\savetabu ... \cs\usetabu now restores the \cs\halign preamble rather than the \env{tabu} preamble! \\
+% \cs\preamble can be use in the \textt{tabu} preamble to restore a \texttt{tabu} preamble.
+% \item \cs\tabucline is more robust with ``special'' preambles containing\, \texttbf>\, or\, \texttbf<\, tokens. \\
% \cs\tabucline now takes care of \cs\arrayrulecolor (package \xpackage{colortbl}).
% \item \Xpackage{enumitem-zref} package has been added to the documentation (see the link \refitem{2010/12/07 v1.5,1}[point 1])
% \item Optimisation of some parts of the code.
@@ -7773,31 +7743,31 @@ morekeywords=[7]{yellow},
%
% \begin{Version}{2010/11/22 v1.4}\HistLabel{1.4}
% \item Compatibility improvement with \xpackage{linegoal} for the syntax: \\
-% \cs{begin}\M*{tabu}\textt{ to\cs{linegoal}}\M*{...}
+% \cs{begin}\M*{tabu}\textt{ to\cs\linegoal}\M*{...}
% \item Hyper footnotes now work correctly.
-% \item Fix a bug when using colored vertical lines in \textt{tabu} in math mode.
+% \item Fix a bug when using colored vertical lines in \env{tabu} in math mode.
% \item Fix a bug with vertical lines and \xpackage{colortbl} \cs{arrayrulecolor} specification.
% \item Fix a compatibility bug with \xpackage{arydshln}: when nesting a tabular that use
-% vertical dashed lines (\xpackage{arydshln}) inside \textt{tabu spread} with \textt X columns.
+% vertical dashed lines (\xpackage{arydshln}) inside \env{tabu spread} with \textt X columns.
% \end{Version}
%
% \begin{Version}{2010/11/18 v1.3}\HistLabel{1.3}
-% \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 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 \env{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 \env{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...
% \item Documentation.
% \end{Version}
%
% \begin{Version}{2010/11/15 v1.2}\HistLabel{1.2}
-% \item Improvement in parameters parsing for optional parameters (\textt\textbar\ and \cs{tabucline}).
-% \item Modification / optimization in \cs{tabu@prepnext@tok}.
-% \item Modification of \cs{tabucline} to get better results with \textt m columns (\textt{X[m]})
-% and also when \cs{minrowclearance} $>0$ (package \xpackage{colortbl}).
+% \item Improvement in parameters parsing for optional parameters (\textt\textbar\ and \cs\tabucline).
+% \item Modification / optimization in \cs\tabu@prepnext@tok.
+% \item Modification of \cs\tabucline to get better results with \textt m columns (\textt{X[m]})
+% and also when \cs\minrowclearance $>0$ (package \xpackage{colortbl}).
% \end{Version}
%
% \begin{Version}{2010/10/28 v1.1}\HistLabel{1.1}
diff --git a/Master/texmf-dist/source/latex/tabu/tabu.ins b/Master/texmf-dist/source/latex/tabu/tabu.ins
index ca448812881..94e92b48bff 100644
--- a/Master/texmf-dist/source/latex/tabu/tabu.ins
+++ b/Master/texmf-dist/source/latex/tabu/tabu.ins
@@ -9,7 +9,7 @@
%% This is a generated file.
%% Copyright (FC) 2010-2011 - lppl
%%
-%% tabu : 2011/02/13 v2.3 - tabu : Flexible LaTeX tabulars
+%% tabu : 2011/02/17 v2.4 - tabu : Flexible LaTeX tabulars
%%
%% **********************************************************************************************
%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal
@@ -65,7 +65,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: 2011/02/13 v2.3 - tabu: Flexible LaTeX tabulars}
+\Msg{* Package: 2011/02/17 v2.4 - tabu: Flexible LaTeX tabulars}
\Msg{************************************************************************}
\keepsilent
@@ -77,7 +77,7 @@
This is a generated file.
Copyright (FC) 2010-2011 - lppl
-tabu : 2011/02/13 v2.3 - tabu : Flexible LaTeX tabulars
+tabu : 2011/02/17 v2.4 - tabu : Flexible LaTeX tabulars
**********************************************************************************************
\string\begin{tabu} { preamble } => default target: \string\linewidth or \string\linegoal
diff --git a/Master/texmf-dist/tex/latex/tabu/tabu.sty b/Master/texmf-dist/tex/latex/tabu/tabu.sty
index bd642627081..5c5dfc6320d 100644
--- a/Master/texmf-dist/tex/latex/tabu/tabu.sty
+++ b/Master/texmf-dist/tex/latex/tabu/tabu.sty
@@ -9,7 +9,7 @@
%% This is a generated file.
%% Copyright (FC) 2010-2011 - lppl
%%
-%% tabu : 2011/02/13 v2.3 - tabu : Flexible LaTeX tabulars
+%% tabu : 2011/02/17 v2.4 - tabu : Flexible LaTeX tabulars
%%
%% **********************************************************************************************
%% \begin{tabu} { preamble } => default target: \linewidth or \linegoal
@@ -63,7 +63,7 @@
%% lppl copyright 2010-2011 by FC <florent.chervet@free.fr>
%%
\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{tabu}[2011/02/13 v2.3 - flexible LaTeX tabulars (FC)]
+\ProvidesPackage{tabu}[2011/02/17 v2.4 - flexible LaTeX tabulars (FC)]
\RequirePackage{array}[2008/09/09]
\RequirePackage{varwidth}[2009/03/30]
\AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined}
@@ -611,7 +611,7 @@
\ifmmode \def\tabu@ {\array}\def\endtabu {\endarray}%
\else \def\tabu@ {\tabu@tabular}\def\endtabu {\endtabular}\fi
\expandafter\let\csname tabu*\endcsname \tabu
- \expandafter\let\csname endtabu*\endcsname\endtabu
+ \expandafter\def\csname endtabu*\endcsname{\endtabu}%
\tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
}% {tabu}
\let\tabu@tabular \tabular % <For LyX: some users redefine \tabular...>
@@ -620,7 +620,6 @@
\ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi
\def\tabu@{\longtable}\def\endlongtabu{\endlongtable}%
\LTchunksize=\@M
- \expandafter\let\csname longtabu*\endcsname\longtabu % Humm...
\expandafter\let\csname tabu*\endcsname\tabu
\let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts }
\tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget
@@ -864,7 +863,7 @@
\tabu@highprioritycolumns\expandafter{\tabu@highprioritycolumns
\NC@do #1}}%
\let\tabu@highprioritycolumns \@empty
-%% The | ``column'' : rewritting process --------------------------
+%% The | ``column'' : rewriting process --------------------------
\tabu@privatecolumntype |{\tabu@rewritevline}
\newcommand*\tabu@rewritevline[1][]{\tabu@vlinearg{#1}%
\expandafter \NC@find \tabu@rewritten}
@@ -923,7 +922,7 @@
{\iftabuscantokens \tabu@rescan \else \expandafter\@firstofone \fi
{#3}}%
}% \tabu@multic@lumn
-%% The X column(s): rewritting process -----------------------------
+%% The X column(s): rewriting process -----------------------------
\tabu@privatecolumntype X[1][]{\begingroup \tabu@siunitx{\endgroup \tabu@rewriteX {#1}}}
\def\tabu@nosiunitx #1{#1{}{}\expandafter \NC@find \tabu@rewritten }
\def\tabu@siunitx #1{\@ifnextchar \bgroup
@@ -1105,7 +1104,7 @@
\ifcase \tabu@cnt \expandafter\tabu@endrewrite
\else \expandafter\NC@find \expandafter\tabu@rewritemiddle
\fi
-}% \NC@ewrite@\tabu@rewritelast
+}% \NC@rewrite@\tabu@rewritelast
%% Choosing the strategy --------------------------------------------
\def\tabu@endrewrite {%
\let\tabu@temp \NC@find
@@ -1238,6 +1237,7 @@
\edef\tabu@stack{\tabu@pushbegins #2\begin\end\expandafter\@gobble\tabu@stack}%
\ifx \tabu@stack\@empty
\toks@\expandafter{\expandafter\tabu@thebody\expandafter{\the\toks@ #2}%
+ \def\tabu@end@envir{\end{#3}}%
\iftabuscantokens \def\tabu@endenvir{\let\endarray \@empty
\end{#3}\tabu@gobbleX}%
\else \def\tabu@endenvir{\end{#3}}\fi}%
@@ -1661,9 +1661,18 @@
\expandafter\@gobble \@startpbox % gobbles \bgroup
}% \tabu@startpboxquick
\def\tabu@quick {\begingroup \iffalse{\fi \ifnum0=`}\fi
- \toks@{}\def\tabu@stack{b}\tabu@collectbody
- \endgroup
+ \toks@{}\def\tabu@stack{b}\tabu@collectbody \tabu@endquick
}% \tabu@quick
+\def\tabu@endquick {%
+ \ifodd 1\ifx\tabu@end@envir\tabu@endtabu \else
+ \ifx\tabu@end@envir\tabu@endtabus \else 0\fi\fi\relax
+ \endgroup
+ \else \let\endtabu \relax
+ \tabu@end@envir
+ \fi
+}% \tabu@quick
+\def\tabu@endtabu {\end{tabu}}
+\def\tabu@endtabus {\end{tabu*}}
%% Measuring the heights and depths - store the results -------------
\def\tabu@verticalmeasure{\everypar{}%
\ifnum \currentgrouptype>12 % 14=semi-simple, 15=math shift group
@@ -2481,10 +2490,16 @@
}% \tabu@warn@cellspace
%% tabu Package initialisation
\tabuscantokensfalse
-\let\tabu@arc@G \relax \let\tabu@drsc@G \relax
-\let\tabu@evr@G \@empty
-\let\tabu@rc@G \@empty
-\def\tabu@ls@G {\tabu@linestyle@}%
+\let\tabu@arc@G \relax
+\let\tabu@drsc@G \relax
+\let\tabu@evr@G \@empty
+\let\tabu@rc@G \@empty
+\def\tabu@ls@G {\tabu@linestyle@}%
+\let\tabu@@rowfontreset \@empty % <init>
+\let\tabu@@celllalign \@empty
+\let\tabu@@cellralign \@empty
+\let\tabu@@cellleft \@empty
+\let\tabu@@cellright \@empty
\def\tabu@naturalXmin {\z@}
\def\tabu@naturalXmax {\z@}
\let\tabu@rowfontreset \@empty