From 7111ff10fd573d433de26c290c4b0b557f82d822 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 18 Feb 2011 00:17:22 +0000 Subject: tabu 2.4 (17feb11) git-svn-id: svn://tug.org/texlive/trunk@21445 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tabu/tabu.pdf | Bin 2554632 -> 2515478 bytes Master/texmf-dist/source/latex/tabu/tabu.drv | 6 +- Master/texmf-dist/source/latex/tabu/tabu.dtx | 624 +++++++++++++-------------- Master/texmf-dist/source/latex/tabu/tabu.ins | 6 +- Master/texmf-dist/tex/latex/tabu/tabu.sty | 41 +- 5 files changed, 331 insertions(+), 346 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/tabu/tabu.pdf b/Master/texmf-dist/doc/latex/tabu/tabu.pdf index d33720b9432..b404fbd1337 100644 Binary files a/Master/texmf-dist/doc/latex/tabu/tabu.pdf and b/Master/texmf-dist/doc/latex/tabu/tabu.pdf differ diff --git a/Master/texmf-dist/source/latex/tabu/tabu.drv b/Master/texmf-dist/source/latex/tabu/tabu.drv index 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 \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}, % % \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}} %¤%% \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 % @@ -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''} %¤%% 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} -%¤%% The | ``column'' : rewritting process -------------------------- +% \subsubsection{Rewriting vertical lines and leaders} +%¤%% 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} -%¤%% The X column(s): rewritting process ----------------------------- +%¤%% 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}$$) +% \item[either: $\mathbf{i=}$\cs{count@}$\,=$\cs{@tempcnta}]: the token to prepare (\ie \cs\toks$$) % is the right one of a ``normal'' column. The switch \cs{iftabu@cellright} is set to \textt{true}. \\ -% The \emph{previous} token (\cs{toks}$=$\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}$$). +% The \emph{previous} token (\cs{toks}$=$\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$$). % This token is finished and will not change afterwards. % -% \item[or: $\mathbf{i=}$\cs{count@}$\,=$\cs{@tempcnta}$+1$]: the token to prepare (\cs{toks}$$) is either the left one of a normal column, +% \item[or: $\mathbf{i=}$\cs\count@$\,=$\cs\@tempcnta$+1$]: the token to prepare (\cs\toks$$) 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}$$ 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}$=$\cs{toks}\cs{count@}$+1$), cannot be the right one of a ``normal'' column: +% \item[else:] The token to prepare (which is \cs\toks$=$\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}$$ +% The fact that\, $\vert$\cs\count@$-$\cs\@tempcnta$\vert>1$\, tells us that the previous token \cs\toks$$ % 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}$$) 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$$) 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 % +\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 %% \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 % @@ -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 % +\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 -- cgit v1.2.3