From ae5810874a478061bc2cbb94877ff00f07d905b2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 28 Feb 2011 00:21:50 +0000 Subject: tabu 2.8 (26feb11) git-svn-id: svn://tug.org/texlive/trunk@21534 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tabu/tabu.pdf | Bin 2513355 -> 2464778 bytes Master/texmf-dist/source/latex/tabu/tabu.drv | 8 +- Master/texmf-dist/source/latex/tabu/tabu.dtx | 466 +++++++++++++-------------- Master/texmf-dist/source/latex/tabu/tabu.ins | 7 +- Master/texmf-dist/tex/latex/tabu/tabu.sty | 27 +- Master/tlpkg/libexec/ctan2tds | 1 + 6 files changed, 257 insertions(+), 252 deletions(-) diff --git a/Master/texmf-dist/doc/latex/tabu/tabu.pdf b/Master/texmf-dist/doc/latex/tabu/tabu.pdf index 630265215ff..9d2ef8a260b 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 7881f2fe600..46dd5ef5499 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/25 v2.7 - tabu : Flexible LaTeX tabulars +%% tabu : 2011/02/26 v2.8 - 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/25} -\def\thisversion{2.7} +\def\thisdate{2011/02/26} +\def\thisversion{2.8} \def\CTANbaseurl{http://www.ctan.org/tex-archive/macros/latex} \def\CTANdisplay{CTAN:macros/latex} \makeatletter\protected\def\CTANhref{\@ifstar\CTANhrefstar\CTANhrefnost}\makeatother @@ -103,6 +103,7 @@ \usepackage{fancyvrb}\fvset{gobble=0,listparameters={\topsep=0pt}} % verbatim \usepackage{interfaces} % interfaces (à tester aussi avant \documentclass) \usetikz{basic,chains,positioning} % pgf / TikZ +\usepackage{nccfoots} % \Footnote{marker}{text} \usepackage{embedfile} \RequirePackage{amsopn,amsmath}% \RequirePackage[a]{esvect}% for vectors @@ -172,6 +173,7 @@ morekeywords=[7]{yellow}, \begin{document} \DocInput{\thisfile.dtx} \end{document} + \endinput %% %% End of file `tabu.drv'. diff --git a/Master/texmf-dist/source/latex/tabu/tabu.dtx b/Master/texmf-dist/source/latex/tabu/tabu.dtx index ac5edcd45a4..284698fcb72 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/25 v2.7 - tabu: flexible LaTeX tabulars] +% tabu : 2011/02/26 v2.8 - 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/25 v2.7 - tabu: Flexible LaTeX tabulars} +\Msg{* Package: 2011/02/26 v2.8 - tabu: Flexible LaTeX tabulars} \Msg{************************************************************************} \keepsilent @@ -48,7 +48,7 @@ This is a generated file. Copyright (FC) 2010-2011 - lppl -tabu : 2011/02/25 v2.7 - tabu : Flexible LaTeX tabulars +tabu : 2011/02/26 v2.8 - 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/25} -\def\thisversion{2.7} +\def\thisdate{2011/02/26} +\def\thisversion{2.8} \def\CTANbaseurl{http://www.ctan.org/tex-archive/macros/latex} \def\CTANdisplay{CTAN:macros/latex} \makeatletter\protected\def\CTANhref{\@ifstar\CTANhrefstar\CTANhrefnost}\makeatother @@ -179,6 +179,7 @@ lppl copyright 2010-2011 by FC \usepackage{fancyvrb}\fvset{gobble=0,listparameters={\topsep=0pt}} % verbatim \usepackage{interfaces} % interfaces (à tester aussi avant \documentclass) \usetikz{basic,chains,positioning} % pgf / TikZ +\usepackage{nccfoots} % \Footnote{marker}{text} \usepackage{embedfile} \RequirePackage{amsopn,amsmath}% \RequirePackage[a]{esvect}% for vectors @@ -252,7 +253,7 @@ morekeywords=[7]{yellow}, % % \fi % -% \CheckSum{7863} +% \CheckSum{7884} % % \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 @@ -280,13 +281,13 @@ morekeywords=[7]{yellow}, % \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{\AtBeginDocument,\AtEndDocument,\begingroup,\endgroup,\ifnum,\ifodd,\ifdim,\ifcsname,\ifcat,\ifcase,\iffalse,\FancyVerbFormatLine,\begin,\end,\@let@token,\@undefined,\active} % \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} % \DoNotIndex{\z@,\wd,\vrule,\voidb@x,\verb,\bibitem,\NC@rewrite@,\NC@list,\NC@do,\NC@,\nobreak,\number,\showbox,\tabu@AtEnd,\tabu@getnbc@ls,\tabu@s@nitizetext} % \DoNotIndex{\FrameCommand,\MakeFramed,\FrameRestore,\hskip,\hfil,\hfill,\hsize,\hspace,\hss,\hbox,\hb@xt@,\endMakeFramed,\escapechar,\tabu@s@veX,\tabu@sett@rget,\tabu@stack} -% \DoNotIndex{\do,\date,\if@tempswa,\@tempdima,\@tempboxa,\@tempswatrue,\@tempswafalse,\ifdefined,\ifhmode,\ifmmode,\cr} -% \DoNotIndex{\box,\author,\advance,\multiply,\Command,\outer,\next,\leavevmode,\kern,\title,\toks@,\trcg@where,\tt} +% \DoNotIndex{\do,\date,\if@tempswa,\@tempdima,\@tempboxa,\@tempswatrue,\@tempswafalse,\ifdefined,\ifhmode,\ifmmode,\cr,\@lowpenalty,\@medpenalty,\maxdimen,\tabu@,\tabu@@,\tabu@l@@d@rs} +% \DoNotIndex{\box,\author,\advance,\multiply,\Command,\outer,\next,\leavevmode,\kern,\title,\toks@,\trcg@where,\tt,\tabu@msgalign@PT,\toks} % \DoNotIndex{\the,\width,\star,\space,\section,\subsection,\textasteriskcentered,\textwidth,\stform} % \DoNotIndex{\",\:,\@empty,\@for,\@gtempa,\@latex@error,\@namedef,\@nameuse,\@tempa,\@testopt,\@width,\\,\m@ne,\makeatletter,\makeatother} % \DoNotIndex{\maketitle,\parindent,\x,\kernel@ifnextchar} @@ -295,7 +296,8 @@ morekeywords=[7]{yellow}, % \makeatletter % \newrobustcmd\ClearPage{\@ifstar\clearpage{}} % \providecommand\lsstyle{} -% \newrobustcmd*\TabU[1][\pkgcolor]{\quitvmode\hbox{{#1{\larger[3]\usefont{U}{eur}mn\char"1C}$_\aleph \mkern.1666mu b\,$\rotatebox[origin=c]{-90}{\sf\smaller U}}}\xspaceverb} +% \newcommand\TabU {\texorpdfstring \T@bU {tabu }} +% \newrobustcmd*\T@bU[1][\pkgcolor]{\quitvmode\hbox{{#1{\larger[3]\usefont{U}{eur}mn\char"1C}$_\aleph \mkern.1666mu b\,$\rotatebox[origin=c]{-90}{\sf\smaller U}}}\xspaceverb} % \newrobustcmd*\TABU[1][\pkgcolor]{\quitvmode\hbox{{#1{\larger[8]\usefont{U}{eur}mn\char"1C}$_\aleph \mkern.1666mu b\,$\rotatebox[origin=c]{-90}{\sf\smaller U}}}\xspaceverb} % \colorlet{reflink}{CornflowerBlue!40!Indigo} % \colorlet{pkgcolor}{reflink} @@ -407,10 +409,10 @@ morekeywords=[7]{yellow}, % \expandafter\SpecialUsageIndex\csname #2\endcsname % \csanchor[{#1}]{#2}} % \renewcommand\enddeclcs{% -% \crcr \hline \end{tabu}\nobreak -% \par \nobreak \noindent -% \ignorespacesafterend -% } +% \crcr \hline \end{tabu}\nobreak +% \par \nobreak \noindent +% \ignorespacesafterend +% } % \def\declmargin{\hspace*\declmarginwidth } % \def\declmarginwidth{\dimexpr -\leftmargini +\arrayrulewidth +\tabcolsep\relax} % \pretocmd\textasteriskcentered{\usefont{OMS}{cmsy}mn}{}{} @@ -469,6 +471,7 @@ morekeywords=[7]{yellow}, % }% % \clearpage % \tocsetup{depth-=1} +% \addtocontents{toc}{\tocsetup{subsection/font+=\string\smaller,subsection/skip=-2pt plus2pt minus2pt}} % \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}} @@ -483,11 +486,11 @@ morekeywords=[7]{yellow}, % \AtBeginEnvironment{macro}{\if@nobreak\else\Needspace{2\baselineskip}\fi % \MacrocodeTopsep\z@skip \MacroTopsep\z@skip \parsep\z@ \topsep\z@ \itemsep\z@ \partopsep\z@ % \let\llap\macro@llap} -% \AtEndEnvironment{macro}{\goodbreak\vskip.3\parskip} -% \newrobustcmd*\stform{\ifincsname\else\expandafter\@stform\fi} -% \newrobustcmd*\@stform{\@ifnextchar*{\@@stform[]\textasteriskcentered\@gobble}\@@stform} -% \newrobustcmd*\@@stform[2][\string]{\textttbf{#1#2}\Xspace} -% \newrobustcmd*\xspaceverb{\ifnum\catcode`\ =\active\else\expandafter\xspace\fi} +% \AtEndEnvironment{macro}{\goodbreak \vskip.3\parskip} +% \newrobustcmd*\stform{\ifincsname\else \expandafter\@stform \fi} +% \newrobustcmd*\@stform{\@ifnextchar*{\@@stform[]\textasteriskcentered\@gobble}\@@stform } +% \newrobustcmd*\@@stform[2][\string]{\textttbf{#1#2}\xspaceverb } +% \newrobustcmd*\xspaceverb{\ifnum\catcode`\ =\active\else \expandafter\xspace \fi} % \new\let\Xspace \xspaceverb % % \makeatother @@ -500,8 +503,8 @@ morekeywords=[7]{yellow}, % test =1pt blue, % testdash =.7pt on1.2pt off 2pt blue, % } +% \def\dash{\hbox{$\scriptscriptstyle\cdotp$}} % -% \title{\vspace*{-28pt}\href{http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/tabu.html}{\scalebox{2}{\TABU[]}}\vspace*{6pt}} % \AtBeginShipoutNext{\AtBeginShipoutUpperLeft{% % \tikz[remember picture,overlay]{ % \coordinate (upper west) at (current page.north west); @@ -523,20 +526,21 @@ morekeywords=[7]{yellow}, % \eta & \theta & \iota & \kappa \\ \tabucline[b]- % \end{tabu}}}; % }}} -% +% \title{\vspace*{-28pt}\href{http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/tabu.html}{\scalebox{2}{\TABU[]}}\Footnotemark{\textsuperscript*}\vspace*{6pt}} % \date{} % \author{\small\thisdate~--~\hyperref[\thisversion]{version \thisversion\ release}} % \subtitle{\begin{tabu}{X[c]}\Large tabu\, and\, longtabu \\[1ex] \LARGE Flexible \LaTeX{} tabulars\\ \small\FC \end{tabu}\vspace*{-12pt}} % % \maketitle % -% {\makeatletter\let\@thefnmark\@empty\let\@makefntext\@firstofone -% \footnotetext{\noindent\parskip=0pt\scriptsize -% This documentation is produced with the \textt{DocStrip} utility, and required \thispackage with its \textt{linegoal} option.\par -% \begin{tabu}{X[-3]X[-1]X} -% \smex To get the package, &run: &\texttt{etex \thisfile.dtx} \\ +% {\makeatletter +% \Footnotetext{*}{\noindent\parskip=0pt\scriptsize +% This documentation is produced with the \textt{DocStrip} utility, and required \thispackage +% with its \hyperref[subsec:linegoal package option]{\textt{linegoal}} option.\par +% \begin{tabu} {X[-3]X[-1]X} +% \smex To get the package, &run: &\textt{etex \thisfile.dtx} \\ % \smex To get the documentation &run (thrice): &\textt{pdflatex \thisfile.dtx} \\ -% \leavevmode\hphantom\smex To get the index, &run: &\texttt{makeindex -s gind.ist \thisfile.idx} +% \leavevmode\hphantom\smex To get the index, &run: &\textt{makeindex -s gind.ist \thisfile.idx} % \end{tabu}§ % The \xext{dtx} file is embedded into this pdf file thank to \Xpackage{embedfile} by H. Oberdiek.} % } @@ -546,15 +550,15 @@ morekeywords=[7]{yellow}, % {\let\quotation\relax\let\endquotation\relax\vspace*{-1cm}% % \begin{abstract}\parskip\smallskipamount\parindent0pt\lastlinefit0\leftskip.2cm\rightskip\leftskip % -% This package defines a single environment \textt{tabu} to make all kinds of tabulars in text or in math mode -% provided that they do not split across pages. +% This package defines a single environment \env{tabu} to make all kinds of tabulars +% in text or in math mode provided that they do not split across pages. % -% An environment \textt{longtabu} -- based on D. Carlisle \Xpackage{longtable} package -- +% An environment \env{longtabu} -- based on D. Carlisle \Xpackage{longtable} package -- % is also provided to make tabulars that can stretch out on several pages, while keeping % some features (not all of them) of the \env*{tabu}. % -% \textt{tabu} is more flexible that \textt{tabular}, \textt{tabular*}, \textt{tabularx} -% and \textt{array} and extends the possibilities. All tabulars in this document were made +% \env{tabu} is more flexible that \env{tabular}, \env{tabular*}, \env{tabularx} +% and \env{array} and extends the possibilities. All tabulars in this document were made % with the \env*{tabu}, \emph{of course}... The implementation is optimised to minimise the % measurements required to put all together. % @@ -604,9 +608,9 @@ morekeywords=[7]{yellow}, % % \changefont{spread*=1.1} % \phantomsection \label{Summary} -% \addcontentsline{toc}{section}{Summary of the features provided by \textt{\pkgcolor t\,a\,b\,u}} +% \addcontentsline{toc}{section}{\protect\textcolor{FireBrick}{Summary of the features provided by \TabU}} ^^A\textt{\pkgcolor t\,a\,b\,u}}} % \def\arraystretch{1}\vspace*{-9mm} -% \tabcolsep=3pt \tabulinesep=.5mm \def\dash{\hbox{$\scriptscriptstyle\cdotp$}} +% \tabcolsep=3pt \tabulinesep=.5mm % \begin{longtabu}{>{\ttfamily\bfseries}X[-1]X} \toprule % \rowfont{\larger\bfseries\lsstyle} % \multicolumn2c{Summary of the features provided by \thispackage} @@ -619,19 +623,20 @@ morekeywords=[7]{yellow}, % is like \textt{longtable} with the possibility to use \textt{tabu X} columns and vertical lines % with the extended syntax. % \\ -% \M*{tabu} to \meta{dimen} & +% \hyperref[tabu.sec]{\M*{tabu} to \meta{dimen}} & % specifies the target width of the whole tabular. This is like \textt{tabular\textasteriskcentered}\, % with an automatic stretchability that can be overwritten with \textt{@\M*{\cs\extracolsep\M*{dimen}}} % in front of the preamble. % \\ -% \M*{tabu} spread \meta{dimen} & +% \hyperref[longtabu.sec]{\M*{tabu} spread \meta{dimen}} & % has no equivalent in \LaTeX: the final width is \meta{dimen} wider than the % natural width that can be obtained with \textt{spread 0pt}. % \\ \tabucline[\dash]- % \hyperref[Vertical lines]{\texttbf\textbar[width,color]} & % vertical lines have an optional parameter. % \\ \tabucline[\dash]- -% \hyperref[tabu X columns]{X[coef,align,type]} \par X[coef,align,type,\$] & +% \hyperref[tabu X columns]{X[coef,align,type]} \par +% \refitem{tabu X columns,3}[{X[coef,align,type,\$]}] & % \textt X columns widths are adjusted in order for the whole tabular to fit the % target width. The target width is a dimension either: % \begin{itempunct}[label=\ding{223}] @@ -650,7 +655,7 @@ morekeywords=[7]{yellow}, % Then the width is made narrower down to the natural width of the column if possible.\par % In any case, the final width does not exceed the one obtained with \textt{X$\mathversion{bold}\left[\abs{\textt{coef}}\right]$}. % \\ -% \textt{X\M*[X options]\M*{S\M*[S options]}} & +% \hyperref[subsec:embedding siunitx S columns]{\textt{X\M*[X options]\M*{S\M*[S options]}}} & % Embed a \Xpackage{siunitx} \textt S column into a \env{tabu}-\textt X column. % \\ \tabucline[\dash]- % \cs\everyrow\M*{code} & Allows to add horizontal lines automatically for every row.\par @@ -872,7 +877,7 @@ morekeywords=[7]{yellow}, % % \setbox\tempbox=\vbox{\linewidth=.65\linewidth\hsize\linewidth\smaller % \begin{lstlisting} -% \taburowcolors 5{SkyBlue!65 .. Gold!60} +% \taburowcolors 5{green!25 .. yellow!50} % \begin{tabu}{X[-1]X} % \repeatcell 2{ % rows=10, @@ -887,7 +892,7 @@ morekeywords=[7]{yellow}, % \begin{tabu}{X[2mc]X[mc]} % \indent\copy\tempbox % & -% \taburowcolors 5{SkyBlue!65 .. Gold!60} +% \taburowcolors 5{green!25 .. yellow!50} % \begin{tabu}{X[-1]X} % \repeatcell 2{ % rows=10, @@ -931,6 +936,7 @@ morekeywords=[7]{yellow}, % % \Needspace{4\baselineskip} % \subsection(Verbatim material){Inserting Verbatim material (\xpackage{fancyvrb})} +% \label{Verbatim material.subsec} % % Though the content of the \env*{tabu} is collected for measuring purpose, it is possible to insert % verbatim material with the \env{tabu\stform*} variant of the environment. The content is then carefully @@ -1051,6 +1057,7 @@ morekeywords=[7]{yellow}, % % % \subsection(siunitx S columns inside tabu X columns){Embedding \xpackage{sunitx} \textt S columns inside \textt X columns} +% \label{subsec:embedding siunitx S columns} % % A \textt S column from \Xpackage{siunitx} can be embedded into a \textt X column of \thispackage... with the following limitations: % \begin{itemize}[leftmargin=2em] @@ -1178,18 +1185,18 @@ morekeywords=[7]{yellow}, % the \textbf{column type} (\textt p, \textt m, or \textt b). \\ % \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 \env*{tabular} in text mode, and \env*{array} in math mode, +% \item You are used to the \env*{tabular} in text mode, and \env*{array} in \hyperref[math mode.sec]{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. +% possible in \hyperref[math mode.sec]{math mode}; \xpackage{delarray} shortcuts for delimiters are available in both math and text modes. % \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. +% and for the insertion of \hyperref[Verbatim material.subsec]{verbatim text} inside \textt X columns. % \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 +% and \cs\centering without special care about \cs\arraybackslash and conversely \cs\\ has its % ``normal'' meaning inside a list of items that may appear in a \textt X column... % \end{itemize} % @@ -1197,7 +1204,7 @@ morekeywords=[7]{yellow}, % % \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 +% is inserted by default at the beginning of the tabular preamble, unless another value for \cs\extracolsep is specified. Therefore % ``\env{tabu to}'' fills in width the specified \meta{dimen}. % % \bigskip @@ -1225,18 +1232,24 @@ morekeywords=[7]{yellow}, % % The following commands provided for \textt{tabu} do not work with \textt{longtabu}:\par\nobreak % \let\theadfont\bfseries -% \begin{tabu}{X[-1]*2{X[-1c]}X} \toprule -% \rowfont[c]{\bfseries} \textt{tabu} command &\thead{Not \\available} &\thead{Not \\implemented} &Comment \\\tabucline[dash]- -% \csref{tabucline} & &\AsteriskRoundedEnds &\cs{tabucline} does not care of page breaks presently: use \cs{hline} instead. \\ -% \csref{usetabu} &\CheckFAIL & &but \csref{savetabu} and \csref{preamble} work. \\ -% \hyperref[math mode.sec]{mathematical mode} &\CheckFAIL & &\textt{longtable} is not designed to work in math mode. \\ -% \xpackage{delarray} shortcuts &\CheckFAIL & &a delimiter cannot be spanned over pages... \\ -% \csref{tabuphantomline} &\CheckFAIL & &useless inside \textt{longtabu} -% \\\bottomrule +% \newtabulinestyle{green-yellow=on 3pt LawnGreen off3pt yellow!60} +% {\tabulinesep=2pt +% \begin{tabu}{X[-1]*2{X[-1c]}X} \tabucline[\heavyrulewidth]- +% \rowfont[c]\bfseries +% \env{tabu} command &\thead{Not \\available} &\thead{Not (yet)\\implemented} &Comment \\\tabucline[\dash]- \everyrow{\tabucline[green-yellow]-} +% \cs\tabucline & &\indent\lower.5ex\hbox{\AsteriskRoundedEnds} &\cs\tabucline does not care of page breaks presently: use \cs\hline instead. \\ +% \cs\usetabu &\CheckFAIL & &but \cs\savetabu and \cs\preamble work. \\ +% \hyperref[math mode.sec]{mathematical mode} &\CheckFAIL & &\env{longtable} is not designed to work in math mode. \\ +% \xpackage{delarray} shortcuts &\CheckFAIL & &a delimiter cannot be spanned over pages... \\ +% \cs\tabuphantomline &\CheckFAIL & &useless inside \env{longtabu} +% \everyrow{} \\\tabucline[\heavyrulewidth]- % \end{tabu} +% } % -% However, \textt{tabu X} columns, \cs\rowfont, \cs\extrarowsep, \cs\tabulinesep, \cs\tabudecimal work inside \env{longtabu}. -% +% However, \hyperref[tabu X columns]{\textt{tabu X} columns}, \cs\rowfont, \cs\extrarowsep, \cs\tabulinesep, \cs\tabudecimal, +% \cs\tabucline (with restrictions on page breaks), \cs\taburulecolor, \cs\tabulinestyle, \cs\taburowcolors, \cs\preamble, +% \hyperref[longtabu.sec]{\env{\M*{longtabu} to}}, \hyperref[longtabu.sec]{\env{\M*{longtabu} spread}} +% work inside \env{longtabu}. % % \subsection{\textt{tabu X} columns -- Mastering horizontal space} % \label{tabu X columns} @@ -1255,7 +1268,7 @@ morekeywords=[7]{yellow}, % and if the \emph{natural width} of the first \textt X column is finally less than % $2.5 \times \left(\text{the width of the second column}\right)$ then it will be narrowed down to this natural width. % \textbf{The following \textt{tabu}{\smaller s} have the same preamble:} \\ -% \hspace*{1em}\cs{begin}\M*{tabu} to\cs{linewidth}\M*{|X\M*[$-$2.5c]|X\M*[c]|}: \\ +% \hspace*{1em}\cs{begin}\M*{tabu} to\cs\linewidth\M*{|X\M*[$-$2.5c]|X\M*[c]|}: \\ % \begin{tabu} to\linewidth{|X[c,-2.5]|X[c]|} \tabucline- % \textt{X[$-$2.5]} & \textt X \\ \tabucline- % \end{tabu} \\ @@ -1273,7 +1286,7 @@ morekeywords=[7]{yellow}, % \$ & \textt{X\M*[\$]} is a shortcut for:\, \textt{>\M*{\$}X<\M*{\$}} & \\ % \$\$ & \textt{X\M*[\$\$]} is a shortcut for:\, \textt{>\M*{\$\cs\displaystyle}X<\M*{\$}} & \\ % \end{tabu} -% \item \textt{tabu X} columns can be spanned with \cs{multicolum}. +% \item \textt{tabu X} columns can be spanned with \cs\multicolum. % \item \textt{tabu X} columns can be used with ``\textt{tabu spread}'' for small tabulars. % \item \textt{tabu X} columns can contain any type of \textt{tabular}, \textt{tabular*}, \textt{tabularx} or \textt{tabu} % without special care about the syntax. \textt{tabu} can also be put inside \textt{tabular}, \textt{tabular*} @@ -1282,26 +1295,27 @@ morekeywords=[7]{yellow}, % (for \textt{top}) while the default global alignment of a \textt{tabu} in a paragraph is \textt c (for \textt{centered}). % ^^AWhen nested inside another \textt{tabu}, \textt{tabu} takes care not to add duplicate margins around its cells... % \item The ``algorithm'' (or the arithmetic) to get the target width for \textt{tabu X} columns is the same as the one -% used by \xpackage{tabularx}. \cs{hfuzz} is the ``tolerance'' for the whole tabular width. We use \eTeX{} \cs{dimexpr} +% used by \xpackage{tabularx}. \cs\hfuzz is the ``tolerance'' for the whole tabular width. We use \eTeX{} \cs{dimexpr} + % instead of \TeX{} primitives (with round/truncate bias correction). % \item \label{item:convergence optimisation} Convergence to the target width is optimised: -% the \cs{halign} preamble is not re-built at each trial, but only expanded again, +% the \cs\halign preamble is not re-built at each trial, but only expanded again, % until the target is reached. Though optimized, the process is the same as the one implemented for \textt{tabularx} % and in particular the content of the \textt{tabu} environment is collected as soon as a \textt{tabu X} column % is found in the preamble. This implies restrictions on catcode modifications and verbatim text inside % a \textt{tabu} with \textt X columns. % \item \label{item:default target width} If the width of the whole tabular is not specified with ``\textt{tabu to}'' -% it is considered to be \cs{linewidth}. -% \nameref{subsec:linegoal package option} makes the default width equal to \cs{linegoal}. Compilation must then be done +% it is considered to be \cs\linewidth. +% \nameref{subsec:linegoal package option} makes the default width equal to \cs\linegoal. Compilation must then be done % with \hologo{pdfTeX} either in \textt{pdf} or \textt{dvi} mode, and package \xpackage{linegoal} is loaded. -% \cs{linegoal} requires \hologo{pdfTeX} for its \cs{pdfsavepos} primitive and the \xpackage{zref-savepos}: +% \cs\linegoal requires \hologo{pdfTeX} for its \cs\pdfsavepos primitive and the \xpackage{zref-savepos}: % if the \textt{tabu} is not alone in its paragraph \ie if the target is not -% \cs{linewidth}, then two compilations (or more) are required to get the correct target. \\ -% Default target for nested \textt{tabu} environments is always \cs{linewidth}, which equals to the column width inside +% \cs\linewidth, then two compilations (or more) are required to get the correct target. \\ +% Default target for nested \textt{tabu} environments is always \cs\linewidth, which equals to the column width inside % \textt p, \textt m, \textt b and \textt X columns. -% \item As long as the \cs{halign} content is expanded more than once, protections against counters incrementation, whatsits (\emph{write}) +% \item As long as the \cs\halign content is expanded more than once, protections against counters incrementation, whatsits (\emph{write}) % index entries, footnotes \etc. are set up: the mechanism of \xpackage{tabularx} is reimplemented and enhanced for \textt{tabu X} columns. -% \cs{tabuDisableCommands} can be used to neutralize the expansion of additional macros during the trials. +% \cs\tabuDisableCommands can be used to neutralize the expansion of additional macros during the trials. % \end{itemize} % % \subsubsection(X columns with tabu spread){X columns with ``\textt{tabu spread}''} @@ -1372,7 +1386,7 @@ morekeywords=[7]{yellow}, % of British folklore. Holmes is alive to millions." % & % There the text was too long, and \textt{tabu spread} behaves as if you didn't give it a target.\par\vskip\baselineskip -% The result of this example is the same as if one had written \cs{begin}\M*{tabu}\textt{to}\cs{linewidth}. +% The result of this example is the same as if one had written \cs{begin}\M*{tabu}\textt{to}\cs\linewidth. % & \cellcolor{GhostWhite}\centering\rotatebox{-90}{\kern-1.4ex\bfseries Sherlock Holmes} % \\ \tabucline{1-2} % \multicolumn{2}{|c|}{The ``official'' web site: \url{http://www.sherlockholmes.com/}} & \omit \\ \tabucline{-2} @@ -1464,8 +1478,8 @@ morekeywords=[7]{yellow}, % \tabuphantomline % \end{tabu} % -% Remember you may need \cs{tabuphantomline} in conjunction with \cs{savetabu} and \cs{usetabu} with \cs{multicolumn}. -% Even if it is possible to add a \cs{tabuphantomline} in any line of the \textt{tabu}, it is a good practice +% Remember you may need \cs\tabuphantomline in conjunction with \cs\savetabu and \cs\usetabu with \cs\multicolumn. +% Even if it is possible to add a \cs\tabuphantomline in any line of the \textt{tabu}, it is a good practice % to append it \emph{at the end} of the \textt{tabu}, for it may introduce indesirable side effects on vertical alignment % otherwise, when \textt{tabu} is nested inside another tabular. % @@ -1479,10 +1493,10 @@ morekeywords=[7]{yellow}, % \label{tabulinesep.subsec}\label{vertical spacing.sec} % % \begin{declcs}{tabulinesep}$=$\meta{dimen} \\ -% \cs{tabulinesep}$=$\string^\meta{dimen} \\ -% \cs{tabulinesep}$=$\string_ \meta{dimen} \\ -% \cs{tabulinesep}$=$\string^\meta{dimen}\string_\meta{dimen} \\ -% \cs{tabulinesep}$=$\string_\meta{dimen}\string^\meta{dimen} +% \cs\tabulinesep$=$\string^\meta{dimen} \\ +% \cs\tabulinesep$=$\string_ \meta{dimen} \\ +% \cs\tabulinesep$=$\string^\meta{dimen}\string_\meta{dimen} \\ +% \cs\tabulinesep$=$\string_\meta{dimen}\string^\meta{dimen} % \end{declcs} % % \cs\tabulinesep sets the \emph{minimal } vertical space allowed between the cell content and the @@ -1531,10 +1545,10 @@ morekeywords=[7]{yellow}, % \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} \\ -% \cs{extrarowsep}$=$\string_ \meta{dimen} \\ -% \cs{extrarowsep}$=$\string^\meta{dimen}\string_\meta{dimen} \\ -% \cs{extrarowsep}$=$\string_\meta{dimen}\string^\meta{dimen} +% \cs\extrarowsep$=$\string^\meta{dimen} \\ +% \cs\extrarowsep$=$\string_ \meta{dimen} \\ +% \cs\extrarowsep$=$\string^\meta{dimen}\string_\meta{dimen} \\ +% \cs\extrarowsep$=$\string_\meta{dimen}\string^\meta{dimen} % \end{declcs} % % \cs\extrarowsep is an extra vertical space which is added to each row, inconditionally. \xfile{array.sty} @@ -1561,8 +1575,7 @@ morekeywords=[7]{yellow}, % % These parameters can be used in text and math modes. % -% Examples \textcolor{gray}{(with \cs\tracingtabu$=3$ and \Xpackage{interfaces}-\cs\papergraduate to see the struts)}: -% +% Examples \textcolor{gray}{(with \cs\tracingtabu$=3$ and \Xpackage{interfaces}-\cs\papergraduate to see the struts)}:\par\nobreak % { % \def\arraystretch{1} % \def\smalltest#1#2{\tracingtabu=3 \begin{tabu}{#1} \hline #2 \\ \hline \end{tabu}} @@ -1581,30 +1594,25 @@ morekeywords=[7]{yellow}, % & % \smalltest{X[-1c]X[-1c$]}{First & \dpartial \Phi \theta \\ \hline Second & \dtotal \theta t} % \\ \tabucline[testdash]- -% \multicolumn4{|[test]c|[test]}{\cs{extrarowsep}=$#1$} +% \multicolumn4{|[test]c|[test]}{\cs\extrarowsep=$#1$} % \\ \tabucline[test]- % \end{tabu} % }} -% % \tikz{ % \papergraduate [xcolor=ForestGreen,ycolor=Maroon,opacity=.1,text opacity=.9] (0,0) (158mm,46mm); % \node at (5mm,5mm) [anchor=south west,inner sep=0pt] {\test{3mm}}; % } -% % \tikz{ % \papergraduate[xcolor=ForestGreen,ycolor=Maroon,opacity=.1,text opacity=.9] (0,0) (158mm,40mm); % \node at (5mm,5mm) [anchor=south west,inner sep=0pt] {\test{0mm}}; % } % } % -% -% % \subsection{\textt{tabu} in math mode} % \label{math mode.sec} % -% { -% \tabulinesep=3pt -% \begin{tabu} to\linewidth{XX[-1$]} \toprule +% {\tabulinesep=2pt +% \begin{tabu} to\linewidth {XX[-1$]} \toprule % On the left, you can see the famous Maxwell-Lorentz equations for electromagnetic field in vacuum, % publicated in \oldstylenums{1873}. % & @@ -1618,15 +1626,13 @@ morekeywords=[7]{yellow}, % \\ \bottomrule % \end{tabu}} % -% In this example, the big \textt{tabu} is: \cs{begin}\M*{tabu} to\cs\linewidth\M*{XX[-1\$]}. -% -% The nested \textt{tabu} (in math mode) uses \xpackage{delarray} shortcut: its preamble is: \Verb+\begin{tabu}({rl}.+ +% In this example, the big \env{tabu} is: \cs{begin}\M*{tabu} to\cs\linewidth \M*{XX[-1\$]}. % -% \cs\tabulinesep has been set to \texttbf{3pt}. +% The nested \env{tabu} (in math mode) uses \xpackage{delarray} shortcut: its preamble is: \Verb+\begin{tabu}({rl}.+ % +% \cs\tabulinesep has been set to \texttbf{2pt}. % Horizontal rules are \Xpackage{booktabs} \cs\toprule and \cs\bottomrule. % -% % \begin{tabu}{@{}*3{X[c]@{}}} \toprule \savetabu{math} % \rowfont{\bfseries\ttfamily} array & tabu & tabu spread $1em$ \\ \midrule % $\begin{array} [t] |{cc}| @@ -1646,7 +1652,6 @@ morekeywords=[7]{yellow}, % \\ \bottomrule % \end{tabu} % -% % Here, vertical lines are made with \xpackage{delarray} shortcuts:\hfill % \verb+$\begin{tabu} spread 1em |{cc}|+ % @@ -1661,8 +1666,7 @@ morekeywords=[7]{yellow}, % \end{tabu} % % \bigskip -% {\raggedleft\footnotesize\lk This was an example of \csref{savetabu}...\csref{usetabu} to keep the alignment.\par} -% +% {\raggedleft\footnotesize\lk This was an example of \cs\savetabu...\cs\usetabu to keep the alignment.\par} % % \section{Lines leaders and colors inside \env{tabu}} % \label{Lines inside tabu} @@ -1670,25 +1674,24 @@ morekeywords=[7]{yellow}, % \subsection{First important remark} % % The features provided in this section are quite experimental: they are not generally taken for good typography. -% You can use \xpackage{tabu} with package \xpackage{booktabs} for example, which provides properly designed +% You can use \thispackage with package \xpackage{booktabs} for example, which provides properly designed % commands for horizontal rules in tabulars. \xpackage{arydshln} is pretty good too, but it modifies a huge % amount of macros of \xfile{array.sty}, something that \thispackage does not. % -% Lines in \textt{tabu} printed in this document are mostly made with \xpackage{booktabs}. +% Lines in \env{tabu} printed in this document are mostly made with \xpackage{booktabs}. % % % \subsection(Vertical lines){Vertical lines: \textt\textbar\ has an optional parameter} -% \label{Vertical lines} +% \label{Vertical lines}\enlargethispage\baselineskip % % Inside \textt{tabu} environment, the vertical line marker \textt\textbar\ has an \emph{optional} argument -% which is the width of the vertical rule. The default width remains \cs{arrayrulewidth} of course. +% which is the width of the vertical rule. The default width remains \cs\arrayrulewidth of course. % The optional argument for \textt\textbar\ can also contain the name of a color. % color \emph{names} are only possible, not a color specification by the mean of a color model. -% The width of the line if specified, must come before the color name and... as for \textt X columns -% parameters, commas are optional. +% The width of the line if specified, must come before the color name and... +% as for \hyperref[tabu X columns]{\textt X columns} parameters, commas are optional. % % Example:\par\nobreak -% % {\tabcolsep=3pt\def\margintext#1{\noalign{\vtop to0pt{\marginnote{\rotatebox{45}{\ttfamily\small #1}}[-2cm]\vss}}} % \begin{tabu*}{@{}X[-1mc]X[m]X[-2ml]@{}} \toprule % \begin{tabu}{||[5pt]|c|c||[5pt]|} @@ -1736,8 +1739,7 @@ morekeywords=[7]{yellow}, % can be used to preserve the alignment of text, when using horizontal lines. % Besides, the optional argument can be used to change (locally) the \cs\extratabsurround dimension. % -% The example of \xpackage{array} documentation is: -% +% The example of \xpackage{array} documentation is:\par\nobreak % {\centering % \begin{tabu}to 10.5cm{|[test]*2{X[mc]|[test]}} \tabucline[test]- % Tables @@ -1768,14 +1770,14 @@ morekeywords=[7]{yellow}, % \end{tabu} % \par} % -% Now with \textt{tabu} you can make double, triple (or more) \cs\firsthline or \cs\lasthline as in:\par\nobreak -% +% Now with \env{tabu} you can make double, triple (or more) \cs\firsthline or \cs\lasthline as in:\par\nobreak % {\centering -% \tabulinesep=1mm -% \begin{tabu*}{|[test]@{}X[-.5m]@{}|[test]X[2m]@{}|[test]m{4.5cm}|[test]} \tabucline[test]- +% \tabulinesep=1mm\tabulinestyle{test} +% \begin{tabu*}{|@{}X[-.5m]@{}|X[2m]@{}|m{4.5cm}|} \tabucline- % \tikz{\node [rotate=65,inner sep=0pt,outer sep=0pt] -% {\begin{tabu}{c}Top \\ alignment\end{tabu}};} +% {\begin{tabu}{c}Top \\ alignment\end{tabu}};} % & +% \indent % \begin{Verbatim}[commandchars=$()] % Tables % \begin{tabu}[($bf$red(t))]{c} @@ -1801,8 +1803,9 @@ morekeywords=[7]{yellow}, % \end{tabu} used.% % \\ \tabucline[testdash]- % \tikz{\node [rotate=65,inner sep=0pt,outer sep=0pt] -% {\begin{tabu}{c}Bottom \\ alignment\end{tabu}};} +% {\begin{tabu}{c}Bottom \\ alignment\end{tabu}};} % & +% \indent % \begin{Verbatim}[commandchars=$()] % Tables % \begin{tabu}[($bf$red(t))]{c} @@ -1826,7 +1829,7 @@ morekeywords=[7]{yellow}, % with some \\ line \\ \tikzlabel{extratabstrut}commands \\ % \lasthline\hline\hline\hline % \end{tabu} used.% -% \\ \tabucline[test]- +% \\ \tabucline- % \end{tabu*} % \par} % @@ -1835,7 +1838,7 @@ morekeywords=[7]{yellow}, % &and also to: &\cs\firstline \cs\hline \cs\hline \cs\hline % \end{tabu} % -% But the optional argument must come in \emph{first position}: \cs{firsthline}\M*[extratabsurround] ... +% But the optional argument must come in \emph{first position}: \cs\firsthline\M*[extratabsurround] ... % % The same for \cs\lastline. % @@ -1846,7 +1849,7 @@ morekeywords=[7]{yellow}, % \subsection(Lines styles){More style for lines} % % \begin{declcs}{taburulecolor}\M{rule color} \\ -% \cs{taburulecolor}\M|double rule sep color|\M{rule color} +% \cs\taburulecolor\M|double rule sep color|\M{rule color} % \end{declcs} % % \cs\taburulecolor sets (in a ``locally-global'' way) the color to be used for \cs\hline, \cs\firsthline, \cs\lasthline and @@ -1929,15 +1932,15 @@ morekeywords=[7]{yellow}, % \begin{declcs}{tabucline}\M[style or spec.]\M*{start-end}\\ % \end{declcs} % -% \cs{tabucline} is an attempt to give a versatile command to make horizontal lines: +% \cs\tabucline is an attempt to give a versatile command to make horizontal lines: % \begin{itemize} -% \item \cs{tabucline} is pretty good with vertical lines even if the thickness of the line grows up, -% \item \cs{tabucline} takes care of \cs{extrarowheight}, -% \item \cs{tabucline} can make horizontal dashed lines, with a \xpackage{pgf}/\xpackage{TikZ} syntax:\\ -% \cs{tabucline}\M*[\meta{width} on\meta{dash} off\meta{gap}]\M*{\meta{first column}-\meta{last column}} -% \item alternatively, you can give \cs{tabucline} a \cs{hbox} to make a leader with it: The \meta{\ttfamily spec.} must then -% begin with \cs{hbox}, \cs{box} or \cs{copy}, -% \item finally you can give \cs{tabucline} a color \emph{name}, after the line specification. +% \item \cs\tabucline is pretty good with vertical lines even if the thickness of the line grows up, +% \item \cs\tabucline takes care of \cs\extrarowheight, +% \item \cs\tabucline can make horizontal dashed lines, with a \xpackage{pgf}/\xpackage{TikZ} syntax:\\ +% \cs\tabucline\M*[\meta{width} on\meta{dash} off\meta{gap}]\M*{\meta{first column}-\meta{last column}} +% \item alternatively, you can give \cs\tabucline a \cs\hbox to make a leader with it: The \meta{\ttfamily spec.} must then +% begin with \cs\hbox, \cs\box or \cs\copy, +% \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} @@ -1951,10 +1954,10 @@ morekeywords=[7]{yellow}, % stops at column 2. \\ \tabucline[1pt on 1.5pt off 2pt]{1-4} \margintext{[1pt on 1.5pt off 2pt]} % \cs\tabucline\M*[1.5pt]\M*{-} & draws a horizontal solid line of width \textt{1.5pt} between the first % and the last column. \\ \tabucline[1.5pt]{-} \margintext{[1.5pt]} -% \cs\tabucline\M*{2-} & \spaceskip=\fontdimen2\font plus1em\relax draws a horizontal solid line of width \cs{arrayrulewidth} between the second +% \cs\tabucline\M*{2-} & \spaceskip=\fontdimen2\font plus1em\relax draws a horizontal solid line of width \cs\arrayrulewidth between the second % column and the last one.\\ \tabucline{2-} \margintext{default} % \cs\tabucline\M*[on 2pt red]\M*{-5} & draws a horizontal dashed line between columns 1 and 5 -% of width \cs{arrayrulewidth}. Dashed are +% of width \cs\arrayrulewidth. Dashed are % \textt{2pt} long and gap width is \textt{4pt} (the default). % \\ \tabucline[on 2pt red]{-5} \margintext{[on 2pt red]} % \end{tabu} @@ -2286,40 +2289,29 @@ morekeywords=[7]{yellow}, % \xpackage{dcolumn} or \xpackage{rccol}. It just make % 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. +% \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 \env{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: % -% % \begin{Verb*} % \def\usermacro#1{\numprint[\officialeuro]{\zap@space #1 \@empty}} % \nprounddigits{2} \npprintnull \npthousandsep{\,} \npunitseparator{~} % \end{Verb*} % -% \begin{SaveVerbatim}{tabudecimal} -% \begin{tabu}{*2{>{\tabudecimal\usermacro}r}} -% 12.324 &745.32 \\ -% 21.13 &0 \\ -% 213.3245 &12.342 \\ -% 322143.12 &324.325 \\ -% \end{tabu} -% \end{SaveVerbatim} -% % \nprounddigits{2} \npprintnull \npthousandsep{\,} \npunitseparator{~} % \makeatletter \let\npunitcommand\@firstofone % \def\usermacro#1{\numprint[\officialeuro]{\zap@space #1 \@empty}} % \makeatother % % \begin{tabu*}{XX} -% ^^A\multicolumn2l{\Verb+\begin{tabu}{|[GreenYellow]*2{>{\tabudecimal\usermacro}X[r]|[GreenYellow]}}+} \\ ^^A ICI PROBLEME % { % \begin{Verbatim} % \rowfont[c]{\bf} January & February \\ @@ -2457,7 +2449,7 @@ morekeywords=[7]{yellow}, % {\hfill\scriptsize\lk Here \cs\tabulinesep$=3mm$\par} % } % -% \section(Differences: tabu, tabular, tabularx, longtable){Differences between \textt{tabu},\, \textt{tabular},\, \textt{tabularx} and \textt{longtable}} +% \section(Differences: tabu, tabular, tabularx, longtable){Differences between \env{tabu},\, \env{tabular},\, \env{tabularx} and \env{longtable}} % % \subsection{Paragraph indentation} % @@ -2497,7 +2489,7 @@ morekeywords=[7]{yellow}, % \end{SaveVerbatim} % % -% When you typeset the following \textt{tabular}: +% When you typeset the following \env{tabular}: % \UseVerbatim{tempVerb} % % \begin{tabu}to .9\linewidth{XX} \savetabu{tabbing} @@ -2535,21 +2527,21 @@ morekeywords=[7]{yellow}, % \begin{tikzpicture}[ % start chain=going below, every join/.style={->,thin,black,solid},node distance=.5cm and 1cm, % every node/.style={black,on chain}] -% \node (initialisation) at (0,0) {\begin{tabu}{c} initialisation \\ \cs{hbox}\end{tabu}} -% node (@array) [join] {\cs{@array}} +% \node (initialisation) at (0,0) {\begin{tabu}{c} initialisation \\ \cs\hbox\end{tabu}} +% node (@array) [join] {\cs\@array} % {[start branch] % node (@arraydesc) [join] {% % \begin{tabu}\{{l}. % \begin{tabu}[c].{l}\} -% \cs{begingroup} \\ +% \cs\begingroup \\ % \qquad \cs{@mkpream}\M*{preamble} \\ -% \cs{endgroup} \\ +% \cs\endgroup \\ % \end{tabu} ``\textt{@mkpream}'' group % \\[4ex] -% \cs{halign}\M*{\cs{@preamble} \textellipsis\ tabular content } +% \cs\halign\M*{\cs{@preamble} \textellipsis\ tabular content } % \end{tabu}} % } -% node (end) [join] {end of \cs{hbox}}; +% node (end) [join] {end of \cs\hbox}; % \end{tikzpicture} % % For more details, see the \nameref{Flow chart of expansion}. @@ -2626,7 +2618,7 @@ morekeywords=[7]{yellow}, % \label{debugshow}\label{debugshow package option} % % \begin{declcs}{tracingtabu} \\ -% \cs{tracingtabu}\,=\,1, 2, 3 or 4 +% \cs\tracingtabu\,=\,1, 2, 3 or 4 % \end{declcs} % % The control sequence \cs\tracingtabu has the same effect as the \textt{debugshow} option: @@ -2690,12 +2682,11 @@ morekeywords=[7]{yellow}, % % \subsection(delarray compatibility){Correction for \xpackage{colortbl} and \xpackage{arydshln}: compatibility with \xpackage{delarray}} % -% Both \xpackage{colortbl} and \xpackage{arydshln} forget the control sequence \cs{@arrayright} in their implementation, -% quite strangely because both of them take care of \cs{@arrayleft}. As a result, \xpackage{delarray} shortcuts for +% Both \xpackage{colortbl} and \xpackage{arydshln} forget the control sequence \cs\@arrayright in their implementation, +% quite strangely because both of them take care of \cs\@arrayleft. As a result, \xpackage{delarray} shortcuts for % delimiters around a tabular does not work if \xpackage{colortbl} and/or \xpackage{arydshln} are loaded. % -% Those control sequences are used by the \xpackage{delarray} package to put variable size delimiters around the array: -% +% Those control sequences are used by the \xpackage{delarray} package to put variable size delimiters around the array:\par\nobreak % {\centering\tabcolsep=12pt % \begin{tabu*}{X[-1m]X[-1mc]X[-1m]} % \begin{Verbatim} @@ -2704,7 +2695,8 @@ morekeywords=[7]{yellow}, % \end{tabu} % \end{Verbatim} % & -% is like: & +% is like: +% & % \begin{Verbatim} % \left\{\begin{tabu}{X} % ... @@ -2713,7 +2705,6 @@ morekeywords=[7]{yellow}, % \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 @@ -2722,15 +2713,15 @@ morekeywords=[7]{yellow}, % With this correction, the ``known problem number 1'' in \xpackage{arydshln} documentation is solved. % % -% \section{To do for even better \textt{tabus}} +% \section{To do for even better \env{tabus}} % % In decreasing order of priority: % % \nprounddigits{0} % \begin{itemize}[leftmargin=*,label=\ding{223}] -% \item Make double \cs{tabucline} compatible with \xpackage{colortbl} \cs{doublerulesepcolor} +% \item Make double \cs\tabucline compatible with \xpackage{colortbl} \cs\doublerulesepcolor % \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} ... +% \cs\tabucline\M[line spec]\M*{start-stop, start-stop}\M[line spec]\M*{start-stop} ... % \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. @@ -3099,7 +3090,7 @@ morekeywords=[7]{yellow}, % \begin{macrocode} %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu}[2011/02/25 v2.7 - flexible LaTeX tabulars (FC)] +\ProvidesPackage{tabu}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC)] \RequirePackage{array}[2008/09/09] \RequirePackage{varwidth}[2009/03/30] % \end{macrocode} @@ -3133,8 +3124,8 @@ morekeywords=[7]{yellow}, % \begin{tikzpicture}[yscale=.4,xscale=.6,framed, % start chain, every join/.style={->,thin,black,solid},node distance=.5cm and .5cm, % every node/.style={black}] -% \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,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<{$}}. % sets \cs{tabu@target} \\ % loads \env{tabu} setup and prepares \cs{tabu@cleanup} and \cs{tabu@reset} @@ -3142,7 +3133,7 @@ morekeywords=[7]{yellow}, % node [on chain=going below,join] (tabu@begin) {\cs{tabu@begin}} % node [on chain] (tabu@begindesc) {$\begin{tabu}\{{>{$}l<{$}}. % if \cs{tabu@target} $> 0$ then prepare \\ -% \textt{@\M*{\cs{extracolsep}\M*{\cs{@flushglue}}}} +% \textt{@\M*{\cs\extracolsep\M*{\cs{@flushglue}}}} % \end{tabu}$}; % \chainin (tabu@begin) % node [on chain=going below] (H) {} @@ -3157,27 +3148,27 @@ morekeywords=[7]{yellow}, % \node [on chain=going right,join,fill=GhostWhite,draw=gray,dashed] (@arraydesc) % {\begin{tabu}\{{l}. % creates the \cs{@arstrutbox} \\ -% \cs{begingroup} \\ +% \cs\begingroup \\ % \quad \cs{@mkpream}: parse the preamble to create \cs{@preamble} \\ -% \quad \cs{xdef} \cs{@preamble} macro \\ -% \cs{endgroup}\\ +% \quad \cs\xdef \cs{@preamble} macro \\ +% \cs\endgroup\\ % \cs{@arrayleft}\\ -% \cs{vtop} or \cs{vbox} or \cs{vcenter} \cs{bgroup} ... \cs{halign}\{ preamble... +% \cs\vtop or \cs\vbox or \cs\vcenter \cs\bgroup ... \cs\halign\{ preamble... % \end{tabu}} % node [on chain=going below] (H) {}; % } % { [start chain=endtabu] % \node [on chain] (end{tabu}) at (begintabu |- H) {\cs{end}\M*{tabu}} -% node [on chain=going below,join] (endtabu) {\cs{endtabu}} -% node [on chain=going right,join] (endtabular) {\cs{endtabular}} -% node [on chain=going right,join] (endarray) {\cs{endarray}} -% node [on chain=going right,join] (endarraydesc) {\begin{tabu}\{{l}. end of \cs{halign} \\ end of \cs{vtop}, \cs{vbox} or \cs{vcenter}\end{tabu}}; +% node [on chain=going below,join] (endtabu) {\cs\endtabu} +% node [on chain=going right,join] (endtabular) {\cs\endtabular} +% node [on chain=going right,join] (endarray) {\cs\endarray} +% node [on chain=going right,join] (endarraydesc) {\begin{tabu}\{{l}. end of \cs\halign \\ end of \cs\vtop, \cs\vbox or \cs\vcenter\end{tabu}}; % \chainin (endtabular) % node [on chain=going below,node distance=.7cm] (H) {}; -% \node at (H -| endarraydesc.west) [anchor=west] (endtabulardesc) {\begin{tabu}\{{l}. end of math group \\ end of \cs{hbox}\end{tabu}}; +% \node at (H -| endarraydesc.west) [anchor=west] (endtabulardesc) {\begin{tabu}\{{l}. end of math group \\ end of \cs\hbox\end{tabu}}; % \draw [->] (endtabular) |- (endtabulardesc) node [near end,above] {\small if in text mode}; % \draw [->] (endtabu.north east) to [bend left,looseness=.5] node [midway,above] {\small if in math mode} (endarray.north); -% \node at (endtabulardesc.south -| begintabu) [yshift=-.5cm] (endgroup) {\cs{endgroup}} node at (endgroup.east) [anchor=west] {end of envir}; +% \node at (endtabulardesc.south -| begintabu) [yshift=-.5cm] (endgroup) {\cs\endgroup} node at (endgroup.east) [anchor=west] {end of envir}; % \draw [->] (endtabu) -- (endgroup); % } % \path [fill=LightGoldenrodYellow] (bluebox) rectangle ($(endtabulardesc.south -| bluebox)-(1,0)$) @@ -3198,23 +3189,23 @@ morekeywords=[7]{yellow}, % start chain=going below,node distance=.3cm and .5cm, % every join/.style={->,thin,black,solid},every node/.style={black}] % -% \node [on chain] (begingroup) at (0,0) {\cs{begingroup}} +% \node [on chain] (begingroup) at (0,0) {\cs\begingroup} % node [on chain=going right] (@mkpream) {\cs{@mkpream}} % node [on chain,join] {Finds a \textt X column} % node [on chain,join] {rewrite \textt X column} -% {[start branch] node [on chain] {\begin{tabu}\{{l}. Parse the optional parameter for \textt X\\ Set \cs{aftergroup}\cs{tabu@prep@TRIAL}\end{tabu}} +% {[start branch] node [on chain] {\begin{tabu}\{{l}. Parse the optional parameter for \textt X\\ Set \cs\aftergroup\cs{tabu@prep@TRIAL}\end{tabu}} % } % node [on chain,join] {... \cs{@mkpream} ...} -% {[start branch] node [on chain,join] {builds the \cs{halign} preamble}} -% node [on chain,join] {\cs{xdef}\cs{@preamble}} -% node [on chain,join] (endgroup) {\cs{endgroup}} +% {[start branch] node [on chain,join] {builds the \cs\halign preamble}} +% node [on chain,join] {\cs\xdef\cs{@preamble}} +% node [on chain,join] (endgroup) {\cs\endgroup} % node [on chain] (H) {}; % \node (tabu@prep@TRIAL) at (begingroup |- H) {\cs{tabu@prep@TRIAL}}; -% \draw [->] (endgroup.west) -| (tabu@prep@TRIAL.north) node [midway,left] {\ssmall\begin{tabu}{c} triggered by\\ \cs{aftergroup}\end{tabu}}; +% \draw [->] (endgroup.west) -| (tabu@prep@TRIAL.north) node [midway,left] {\ssmall\begin{tabu}{c} triggered by\\ \cs\aftergroup\end{tabu}}; % \chainin (tabu@prep@TRIAL); % { [start branch] \node [on chain,join] {\cs{tabu@setup@TRIAL}} % node [on chain,join] {\begin{tabu}\{{l}. -% Neutralisation of \cs{write} \\ +% Neutralisation of \cs\write \\ % Protection for: \begin{tabu}{!{\textbullet}l} % footnotes \\ counters \\ index % \end{tabu} @@ -3224,15 +3215,15 @@ morekeywords=[7]{yellow}, % node [on chain,join=with tabu@prep@TRIAL] (tabu@arrayleft@measure) {\cs{tabu@arrayleft@measure}} % node [on chain=going right,join] {\begin{tabu}\{{l}. prepares \cs{tabu@Xfinish} \\ Collect the \textt{tabu} body\end{tabu}} % node [on chain,join] (tabu@TRIAL) {\cs{tabu@TRIAL}} -% {[start branch] node [on chain,join] {\begin{tabu}{l} Expands \cs{halign} into a \cs{vbox} \end{tabu}} +% {[start branch] node [on chain,join] {\begin{tabu}{l} Expands \cs\halign into a \cs\vbox \end{tabu}} % } % node [on chain,join] {\cs{tabu@endTRIAL}} -% {[start branch] node [on chain,join] {\cs{endarray}} +% {[start branch] node [on chain,join] {\cs\endarray} % } -% node [on chain,join] (tabu@arith) {\begin{tabu}{c} \cs{tabu@arith}\\ \cs{wd}\M*{tabu}$-$\cs{tabu@target} $<$ \cs{hfuzz} ?\end{tabu}} +% node [on chain,join] (tabu@arith) {\begin{tabu}{c} \cs{tabu@arith}\\ \cs\wd\M*{tabu}$-$\cs{tabu@target} $<$ \cs\hfuzz ?\end{tabu}} % node [on chain=going right,node distance=1cm] (tabu@Xfinish) {\cs{tabu@Xfinish}}; % \draw (tabu@arith) [->] -- (tabu@Xfinish) node [midway,above,blue] {Yes}; -% \draw [->] (tabu@arith.west) |- (tabu@TRIAL) node (No) [very near start,left] {{\small\begin{tabu}.{r}\} Updates \\ \cs{tabucolX}\end{tabu}} \textcolor{red}{No}}; +% \draw [->] (tabu@arith.west) |- (tabu@TRIAL) node (No) [very near start,left] {{\small\begin{tabu}.{r}\} Updates \\ \cs\tabucolX\end{tabu}} \textcolor{red}{No}}; % % \end{tikzpicture}} % @@ -4179,7 +4170,6 @@ morekeywords=[7]{yellow}, % \end{macro} % % \subsubsection{Parsing line styles} -% %¤%% Parsing the line styles ------------------------------------------ % % \begin{macro}{\tabu@getline} @@ -4495,7 +4485,8 @@ morekeywords=[7]{yellow}, \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname\tabu + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget }% {longtabu} @@ -4506,7 +4497,7 @@ morekeywords=[7]{yellow}, % \end{macro} % \end{macro} % -% \subsubsection{Setting the \textt{tabu} target} +% \subsubsection{Setting the \env{tabu} target} %¤%% Read the target and then : \tabular or \@array ------------------ % % \begin{macro}{\tabu@settarget} @@ -4857,7 +4848,7 @@ morekeywords=[7]{yellow}, % \begin{macro}{\tabu@lines} % % The \texttbf\textbar\, token for vertical lines may have a special -% catcode. \xfile{array.sty} makes the test with \cs{if} and therefore, +% catcode. \xfile{array.sty} makes the test with \cs\if and therefore, % it is catcode insensitiv. Here, we use \cs\scantokens and check if % \texttbf\textbar\, is not an \emph{other} character. % @@ -4945,7 +4936,7 @@ morekeywords=[7]{yellow}, % \end{macrocode} % \end{macro} % -% \subsubsection{Rewriting \textt{tabu X} columns} +% \subsubsection{Rewriting \env{tabu X} columns} % \label{tabu X column definition} %¤%% The X column(s): rewriting process ----------------------------- % @@ -5011,7 +5002,7 @@ morekeywords=[7]{yellow}, % % \begin{macro}{\tabu@rewriteXrestore} % -% This macro replaces \cs\tabu@rewriteX in the case of \cs{usetabu}. +% This macro replaces \cs\tabu@rewriteX in the case of \cs\usetabu. % % \begin{macrocode} \def\tabu@rewriteXrestore #1#2#3{\let\@halignto \relax @@ -5178,7 +5169,7 @@ morekeywords=[7]{yellow}, % % \begin{macro}{\preamble (private column type)} % -% \cs{preamble} is defined as a \textt{tabu} new column type: loaded only inside the \cs{@mkpream} +% \cs\preamble is defined as a \textt{tabu} new column type: loaded only inside the \cs\@mkpream % group inside the \textt{tabu} environment. % % \begin{macrocode} @@ -5505,7 +5496,7 @@ morekeywords=[7]{yellow}, % \end{macrocode} % \end{macro} % -% \subsubsection{Collecting the \textt{tabu} body} +% \subsubsection{Collecting the \env{tabu} body} %¤%% Collecting the environment body ---------------------------------- % % The macro collect the stuff inside \cs\@array: depending on the global vertical alignment @@ -5527,9 +5518,12 @@ morekeywords=[7]{yellow}, \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 + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty \end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir{\end{#3}}\fi}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% \let\tabu@collectbody \tabu@endofcollect \else\def\tabu@temp{#3}% \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% @@ -5634,10 +5628,12 @@ morekeywords=[7]{yellow}, \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi \expandafter{\expandafter \tabuthepreamble \the\tabu@thebody - \LT@echunk - \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths}\egroup % got \tabu@box + \tabuendlongtrial}\egroup % got \tabu@box }% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial \def\tabu@adl@endtrial{% \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! % \end{macrocode} @@ -5682,8 +5678,8 @@ morekeywords=[7]{yellow}, {\expandafter \tabu@closetrialsgroup \expandafter \tabu@rescan \expandafter{% \expandafter\tabuthepreamble - \the\tabu@thebody - \endarray}} + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} {\expandafter\tabu@closetrialsgroup \expandafter \tabuthepreamble \the\tabu@thebody}% @@ -5776,7 +5772,7 @@ morekeywords=[7]{yellow}, % At the exit, \cs\iftabu@measuring is set to \cs\iftrue: a further trial is necessary, % or \cs\iffalse: the target width is reached. % -% \subsubsection(Algorithm for tabu to){The arithmetic of \textt X columns: the \textt{tabu to} case} +% \subsubsection(Algorithm for tabu to){The arithmetic of \textt X columns: the \env{tabu to} case} % % \begin{macro}{\tabu@arithnegcoef} % @@ -5868,7 +5864,7 @@ morekeywords=[7]{yellow}, % \end{macrocode} % \end{macro} % -% \subsubsection(Algorithm for tabu spread){The arithmetic of \textt X columns for \textt{tabu spread}} +% \subsubsection(Algorithm for tabu spread){The arithmetic of \textt X columns for \env{tabu spread}} % % \begin{macro}{\tabu@spreadarith} % @@ -6072,7 +6068,6 @@ morekeywords=[7]{yellow}, % \end{macro} % % \subsection(Natural width measure){Measuring the natural width of columns (\xpackage{varwidth} code from D. Arseneau)} -% %¤%% Measuring the natural width (varwidth) - store the results ------- % % \begin{macro}{\tabu@startpboxmeasure} @@ -6318,9 +6313,7 @@ morekeywords=[7]{yellow}, % \end{macrocode} % \end{macro} % -% -% \subsection(Horizontal lines inside tabu){Horizontal lines inside \textt{tabu}: \cs{tabucline}, \cs{firsthline} and \cs{lasthline}} -% +% \subsection(Horizontal lines inside tabu){Horizontal lines inside \env{tabu}: \cs{tabucline}, \cs{firsthline} and \cs{lasthline}} %¤%% \firsthline and \lasthline corrections --------------------------- % % \subsubsection{Horizontal lines: multiple \cs{firsthline} / \cs{lasthline}} @@ -6492,7 +6485,6 @@ morekeywords=[7]{yellow}, % \end{macro} % % \subsubsection{Horizontal lines: \cs{tabucline}} -% %¤%% Horizontal lines : \tabucline ------------------------------------ % % \begin{macro}{\tabucline} @@ -6590,8 +6582,7 @@ morekeywords=[7]{yellow}, % \end{macro} % % -% \subsection{Numbers in \textt{tabu}} -% +% \subsection{Numbers in \env{tabu}} %¤%% Numbers: siunitx S columns (and \tabudecimal) ------------------- % % \subsubsection{\cs{tabudecimal}} @@ -6672,7 +6663,6 @@ morekeywords=[7]{yellow}, % % % \subsection(Verbatim with X columns){Verbatim inside \textt{tabu} with \textt X columns} -% %¤%% Verbatim inside X columns ---------------------------------------- % % \begin{macro}{\tabu@verbatim} @@ -6863,9 +6853,9 @@ morekeywords=[7]{yellow}, % \begin{macro}{\tabu@savewarn} % \begin{macro}{\tabu@saveerr} % -% Info for overwritting when \cs{savetabu} is used. +% Info for overwritting when \cs\savetabu is used. % -% Error if \cs{usetabu} is called with an unknown argument. +% Error if \cs\usetabu is called with an unknown argument. % % \begin{macrocode} \def\tabu@savewarn#1#2{\PackageInfo{tabu} @@ -6882,7 +6872,6 @@ morekeywords=[7]{yellow}, % \subsection(\cs{rowfont}){\csbf{rowfont}} % % \subsubsection(Font and alignment){Setting font and alignment specification} -% %¤%% \rowfont --------------------------------------------------------- % % \begin{macro}{\rowfont} @@ -6945,7 +6934,6 @@ morekeywords=[7]{yellow}, % \end{macro} % % \subsubsection(Tokens preparation){Preparing stuff to be able to use \cs{rowfont}} -% %¤%% \tabu@prepnext@tok ----------------------------------------------- % % \begin{macro}{\tabu@prepnext@tok} @@ -6963,11 +6951,11 @@ morekeywords=[7]{yellow}, % % \begin{center} % \begin{tikzpicture} -% \node (L) at (1,1) {$\underbrace{\hbox{>\M*{\cs{bfseries}\cs{color}\M*{red}}}}$} +% \node (L) at (1,1) {$\underbrace{\hbox{>\M*{\cs\bfseries\cs\color\M*{red}}}}$} % node [anchor=west] (r) at (L.east) {\raise.5ex\hbox{\larger r}} -% node [anchor=west] (R) at (r.east) {$\underbrace{\hbox{<\M*{\cs{color}\M*{black}\cs ,\cs\$}}}$} -% node [anchor=center] at (L.south) {\cs{toks}<$i$>} -% node [anchor=center] at (R.south) {\cs{toks}<$i+1$>}; +% node [anchor=west] (R) at (r.east) {$\underbrace{\hbox{<\M*{\cs\color\M*{black}\cs ,\cs\$}}}$} +% node [anchor=center] at (L.south) {\cs\toks<$i$>} +% node [anchor=center] at (R.south) {\cs\toks<$i+1$>}; % \end{tikzpicture} % \end{center} % @@ -6975,24 +6963,24 @@ morekeywords=[7]{yellow}, % 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}: +% 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$$) -% 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$$). +% \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$$). % 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, % 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 +% 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 -% \cs{ittabu@cellright} is reset to \texttt{false}. +% \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. +% 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: -% \cs{iftabu@cellright} is set to \textt{false}. \\ +% \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$$ % 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 @@ -7049,14 +7037,15 @@ morekeywords=[7]{yellow}, % \end{macro} % % \subsubsection(Glue neutralisation){Neutralisation of glues and alignment modification} -% %¤%% Neutralisation of glues ------------------------------------------ % % \begin{macro}{\tabu@cellleft} % \begin{macro}{\tabu@celllalign} % \begin{macro}{\tabu@cellright} % \begin{macro}{\tabu@cellralign} -% First initialisation to \cs{@empty}. +% +% First initialisation to \cs\@empty. +% % \begin{macrocode} \let\tabu@cellleft \@empty \let\tabu@cellright \@empty @@ -7088,7 +7077,7 @@ morekeywords=[7]{yellow}, % % Setup macros to modify the alignment. The skips inserted to make the standard alignment % specified in the \textt{tabular} preamble are not the same with standard \xpackage{array} tabulars -% and \xpackage{colortbl} tabulars, hence the switch \cs{iftabu@colortbl}. +% and \xpackage{colortbl} tabulars, hence the switch \cs\iftabu@colortbl. % % \begin{macrocode} \def\tabu@cell@l{% force alignment to left @@ -7205,7 +7194,6 @@ morekeywords=[7]{yellow}, % \end{macrocode} % \end{macro} % -% % \subsection{Taking care of footnotes and \cs{arraybackslash}} % \label{Taking care of footnotes and arraybackslash} % @@ -7296,7 +7284,7 @@ morekeywords=[7]{yellow}, \expandafter\tabu@normalcrbackslash \@trivlist}} % \end{macrocode} % -% \subsubsection{Utilities: \textt{tabu} \cs{fbox}} +% \subsubsection{Utilities: \env{tabu} \cs{fbox}} %¤%% Utilities: \fbox \fcolorbox and \tabudecimal ------------------- % % \cs\tabu@fbox works exactly like \LaTeX{} \cs\fbox but allows the syntax: \cs\fbox\cs\bgroup...\cs\egroup @@ -7408,9 +7396,9 @@ morekeywords=[7]{yellow}, % The \cs\vrule inserted is exactly what package \xpackage{array} calls: \cs\@finalstrut\cs\@arstrutbox. % % However, just like in \xfile{array.sty}, this array-\textt{strut} should be inserted inconditionnally, -% and \cs{ifhmode} applies only to \cs\nobreak (misplaced \cs{fi} in \xpackage{arydshln} definition). +% and \cs\ifhmode applies only to \cs\nobreak (misplaced \cs\fi in \xpackage{arydshln} definition). % -% Finally, \xpackage{arydshln} is not compatible with colors in columns, such that: \textt{>\M*{\cs{color}\M*{red}}p{3in}}, +% Finally, \xpackage{arydshln} is not compatible with colors in columns, such that: \textt{>\M*{\cs\color\M*{red}}p{3in}}, % Unless \xpackage{colortbl} is also loaded, the color group is missing. % % Fixed inside \env*{tabu}. @@ -7429,9 +7417,7 @@ morekeywords=[7]{yellow}, }% \tabu@adl@fix % \end{macrocode} % -% % \subsubsection{\xpackage{longtable} \cs{@startpbox}: \cs{everypar} needed} -% %¤%% Correction for longtable' \@startbox definition ------------------ %¤%% => \everypar is ``missing'' : TeX should be in vertical mode % @@ -7550,7 +7536,7 @@ morekeywords=[7]{yellow}, % At Begin Document,a fix for \Xpackage{arydshln} and \Xpackage{colortbl} comptability with \Xpackage{delarray} % shortcuts available inside \env{tabu}: requirement for this fix is checked by \cs\tabu@fix@arrayright. % -% Then the switch \cs{iftabu@colortbl} is set. +% Then the switch \cs\iftabu@colortbl is set. % % Finally, the \env*{longtabu} is defined only if the \Xpackage{longtable} package is detected. % @@ -7672,19 +7658,27 @@ morekeywords=[7]{yellow}, % % \bibitem{enumitem-zref} % \textit{The \xpackage{enumitem-zref} package} by \FC \\ -% 2010/11/28 ver 1.1 -- Extended references for enumitem pkg \\ +% 2011/02/18 ver 1.8 -- Extended references for enumitem pkg \\ % \href{http://www.ctan.org/tex-archive/help/Catalogue/entries/enumitem-zref.html}{\nolinkurl{CTAN:help/Catalogue/entries/enumitem-zref.html}} % \label{enumitem-zref} % % \end{thebibliography} % -% % \begin{History} % % \def\Version#1{\HistVersion{#1}\setitemize{name=#1,leftmargin=2em}\itemize} % \addtocontents{toc}{\tocsetup{subsection/font+=\string\smaller}} +% \sectionformat\subsection[hang]{ +% font=\normalsize\bfseries\pkgcolor, +% top=\smallskipamount, +% bottom=0pt, +% break=\addpenalty{-\csname @medpenalty\endcsname}, +% } +% \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/26 v2.8}\HistLabel{2.8} +% \item Bug in the starred version (with \cs\scantokens) of the \env*{longtabu\stform*}. +% \end{Version} % % \begin{Version}{2011/02/25 v2.7}\HistLabel{2.7} % \item Automatic \cs\par after the end of the \env*{tabu} used with its default target is removed in case of \env{tabu spread}: this was a bug. @@ -7752,7 +7746,7 @@ morekeywords=[7]{yellow}, % \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 \env{tabu} environment. -% \item Bug fixed inside \cs{tabu@prepnexttok} (again !!! - a difficult case !) +% \item Bug fixed inside \cs\tabu@prepnexttok (again !!! - a difficult case !) % \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 @@ -7809,7 +7803,7 @@ morekeywords=[7]{yellow}, % \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 \env{tabu} in math mode. -% \item Fix a bug with vertical lines and \xpackage{colortbl} \cs{arrayrulecolor} specification. +% \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 \env{tabu spread} with \textt X columns. % \end{Version} diff --git a/Master/texmf-dist/source/latex/tabu/tabu.ins b/Master/texmf-dist/source/latex/tabu/tabu.ins index f140a1facd0..ff03c1e9c4b 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/25 v2.7 - tabu : Flexible LaTeX tabulars +%% tabu : 2011/02/26 v2.8 - 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/25 v2.7 - tabu: Flexible LaTeX tabulars} +\Msg{* Package: 2011/02/26 v2.8 - tabu: Flexible LaTeX tabulars} \Msg{************************************************************************} \keepsilent @@ -77,7 +77,7 @@ This is a generated file. Copyright (FC) 2010-2011 - lppl -tabu : 2011/02/25 v2.7 - tabu : Flexible LaTeX tabulars +tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars ********************************************************************************************** \string\begin{tabu} { preamble } => default target: \string\linewidth or \string\linegoal @@ -162,6 +162,7 @@ lppl copyright 2010-2011 by FC \Msg{************************************************************************} \endbatchfile + \endinput %% %% End of file `tabu.ins'. diff --git a/Master/texmf-dist/tex/latex/tabu/tabu.sty b/Master/texmf-dist/tex/latex/tabu/tabu.sty index 6b28197777a..3c18755daf2 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/25 v2.7 - tabu : Flexible LaTeX tabulars +%% tabu : 2011/02/26 v2.8 - tabu : Flexible LaTeX tabulars %% %% ********************************************************************************************** %% \begin{tabu} { preamble } => default target: \linewidth or \linegoal @@ -62,8 +62,9 @@ %% tabu : Flexible LaTeX tabulars %% lppl copyright 2010-2011 by FC %% + \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{tabu}[2011/02/25 v2.7 - flexible LaTeX tabulars (FC)] +\ProvidesPackage{tabu}[2011/02/26 v2.8 - flexible LaTeX tabulars (FC)] \RequirePackage{array}[2008/09/09] \RequirePackage{varwidth}[2009/03/30] \AtEndOfPackage{\tabu@AtEnd \let\tabu@AtEnd \@undefined} @@ -622,7 +623,8 @@ \ifmmode\PackageError{tabu}{longtabu not allowed in math mode}\fi \def\tabu@{\longtable}\def\endlongtabu{\endlongtable}% \LTchunksize=\@M - \expandafter\let\csname tabu*\endcsname\tabu + \expandafter\let\csname tabu*\endcsname \tabu + \expandafter\def\csname endlongtabu*\endcsname{\endlongtabu}% \let\LT@startpbox \tabu@LT@startpbox % \everypar{ array struts } \tabu@spreadfalse \tabu@negcoeffalse \tabu@settarget }% {longtabu} @@ -1241,9 +1243,12 @@ \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 + \iftabuscantokens + \iftabu@long \def\tabu@endenvir {\end{#3}\tabu@gobbleX}% + \else \def\tabu@endenvir {\let\endarray \@empty \end{#3}\tabu@gobbleX}% - \else \def\tabu@endenvir{\end{#3}}\fi}% + \fi + \else \def\tabu@endenvir {\end{#3}}\fi}% \let\tabu@collectbody \tabu@endofcollect \else\def\tabu@temp{#3}% \ifx \tabu@temp\@empty \toks@\expandafter{\the\toks@ #2\end }% @@ -1309,10 +1314,12 @@ \iftabuscantokens \tabu@rescan \else \expandafter\@secondoftwo \fi \expandafter{\expandafter \tabuthepreamble \the\tabu@thebody - \LT@echunk - \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne - \LT@get@widths}\egroup % got \tabu@box + \tabuendlongtrial}\egroup % got \tabu@box }% \tabu@longtrial +\def\tabuendlongtrial{% no @ allowed for \scantokens + \LT@echunk \global\setbox\@ne \hbox{\unhbox\@ne}\kern\wd\@ne + \LT@get@widths +}% \tabuendlongtrial \def\tabu@adl@endtrial{% \crcr \noalign{\global\adl@ncol \tabu@nbcols}}% anything global is crap, junky and fails ! \def\tabu@seteverycr {\tabu@reset @@ -1329,8 +1336,8 @@ {\expandafter \tabu@closetrialsgroup \expandafter \tabu@rescan \expandafter{% \expandafter\tabuthepreamble - \the\tabu@thebody - \endarray}} + \the\expandafter\tabu@thebody + \iftabu@long \else \endarray \fi}} {\expandafter\tabu@closetrialsgroup \expandafter \tabuthepreamble \the\tabu@thebody}% diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 070e74a3881..6d027ea6d45 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -789,6 +789,7 @@ $Master = "$mydir/../.."; 'wntamil', "die 'skipping, nonfree license'", 'wordcount', "&MAKEwordcount", 'wp-conv', "die 'skipping, nonfree license'", + 'wp2latex', "die 'skipping, compilation'", 'xbase', "die 'skipping, use xpackages'", 'xeCJK', "die 'skipping, use xecjk'", 'xecolour', "&MAKEflatten", -- cgit v1.2.3