Current File : //usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty |
%%
%% This is file `tabularx.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% tabularx.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at https://latex-project.org/bugs/
%% (but please observe conditions on bug reports sent to that address!)
%%
%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
%% --------------------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This file may only be distributed together with a copy of the LaTeX
%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
%% without such generated files.
%%
%% The list of all files belonging to the LaTeX `Tools Bundle' is
%% given in the file `manifest.txt'.
%%
%% File: tabularx.dtx Copyright (C) 1991-1999 2012 2014 2016 2017 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tabularx}
[2020/01/15 v2.11c `tabularx' package (DPC)]
\DeclareOption{infoshow}{\AtEndOfPackage\tracingtabularx}
\DeclareOption{debugshow}{\AtEndOfPackage\tracingtabularx}
\ProcessOptions
\RequirePackage{array}[1994/02/03]
\newdimen\TX@col@width
\newdimen\TX@old@table
\newdimen\TX@old@col
\newdimen\TX@target
\newdimen\TX@delta
\newcount\TX@cols
\newif\ifTX@
\def\tabularx#1{%
\edef\TX@{\@currenvir}%
{\ifnum0=`}\fi
\setlength\TX@target{#1}%
\TX@typeout{Target width: #1 = \the\TX@target}%
\toks@{}\TX@get@body}
\let\endtabularx\relax
\long\def\TX@get@body#1\end
{\toks@\expandafter{\the\toks@#1}\TX@find@end}
\def\TX@find@end#1{%
\def\@tempa{#1}%
\ifx\@tempa\TX@\expandafter\TX@endtabularx
\else\toks@\expandafter
{\the\toks@\end{#1}}\expandafter\TX@get@body\fi}
\long\def\TX@find@endtabularxa
#1\endtabularx#2\endtabularx#3\TX@find@endtabularxa{%
\ifx\TX@#2\relax\else
\toks@\expandafter{\the\toks@#1}%
\fi}
\long\def\TX@find@endtabularxb
#1\endtabularx#2\endtabularx#3\TX@find@endtabularxb{%
\ifx\TX@#2%
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{#1}{#2}}
\def\TX@find@endtabularxbb{%
\expandafter\expandafter\expandafter
\TX@find@endtabularxb
}
\def\TX@{tabularx}
\def\TX@endtabularx{%
\expandafter\expandafter\expandafter
\TX@find@endtabularxa\csname end\TX@\endcsname
\endtabularx\TX@\endtabularx\TX@find@endtabularxa
\expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
\let\verb\TX@verb
\def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
\edef\TX@ckpt{\cl@@ckpt}%
\let\@elt\relax
\TX@old@table\maxdimen
\TX@col@width\TX@target
\global\TX@cols\@ne
\TX@typeout@
{\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
\TX@trial{\def\NC@rewrite@X{%
\global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
\loop
\TX@arith
\ifTX@
\TX@trial{}%
\repeat
{\let\@footnotetext\TX@ftntext\let\@xfootnotenext\TX@xftntext
\csname tabular*\expandafter\endcsname\expandafter\TX@target
\the\toks@
\csname endtabular*\endcsname}%
\global\TX@ftn\expandafter{\expandafter}\the\TX@ftn
\ifnum0=`{\fi}%
\expandafter\expandafter\expandafter
\TX@find@endtabularxbb
\expandafter\end\expandafter{\TX@}%
\endtabularx\TX@\endtabularx\TX@find@endtabularxb
}
\def\TX@arith{%
\TX@false
\@tempdimb\maxdimen
\divide\@tempdimb\TX@cols
\ifdim\TX@col@width>\@tempdimb
\TX@typeout@{Don't exceed \maxdimen}%
\wd\@tempboxa\maxdimen
\fi
\ifdim\TX@old@table=\wd\@tempboxa
\TX@col@width\TX@old@col
\TX@typeout@{Reached minimum width, backing up.}%
\else
\dimen@\wd\@tempboxa
\advance\dimen@ -\TX@target
\ifdim\dimen@<\TX@delta
\TX@typeout@{Reached target.}%
\else
\ifnum\TX@cols>\@ne
\advance\TX@cols\m@ne
\fi
\divide\dimen@\TX@cols
\advance\dimen@ -\TX@col@width
\ifdim \dimen@ >\z@
\PackageWarning{tabularx}%
{X Columns too narrow (table too wide)\MessageBreak}%
\TX@col@width\TX@error@width\relax
\else
\TX@old@col\TX@col@width
\TX@old@table\wd\@tempboxa
\TX@col@width-\dimen@
\TX@true
\fi
\fi
\fi}
\def\TX@error@width{1em}
\TX@delta\hfuzz
\newcolumntype{X}{}
\def\tabularxcolumn#1{p{#1}}
\def\TX@newcol{\newcol@{X}[0]}
\def\TX@trial#1{%
\setbox\@tempboxa\hbox{%
#1\relax
\let\@footnotetext\TX@trial@ftn
\let\TX@vwarn\@empty
\expandafter\let\expandafter\tabularx\csname tabular*\endcsname
\expandafter\let\expandafter\endtabularx\csname endtabular*\endcsname
\def\write{\begingroup
\def\let{\afterassignment\endgroup\toks@}%
\afterassignment\let\count@}%
\hbadness\@M
\hfuzz\maxdimen
\let\hbadness\@tempcnta
\let\hfuzz\@tempdima
\expandafter\tabular\the\toks@
\endtabular}%
\TX@ckpt
\TX@typeout@{\@spaces
\expandafter\TX@align
\the\wd\@tempboxa\space\space\space\space\space\@@
\expandafter\TX@align
\the\TX@col@width\space\space\space\space\space\@@
\@spaces\the\TX@cols}}
\def\TX@align#1.#2#3#4#5#6#7#8#9\@@{%
\ifnum#1<10 \space\fi
\ifnum#1<100 \space\fi
\ifnum#1<\@m\space\fi
\ifnum#1<\@M\space\fi
#1.#2#3#4#5#6#7#8\space\space}
\ifx\arraybackslash\@undefined
\def\arraybackslash{\let\\\tabularnewline}
\fi
\def\tracingtabularx{%
\def\TX@typeout{\PackageWarningNoLine{tabularx}}%
\def\TX@typeout@##1{\typeout{(tabularx) ##1}}}
\let\TX@typeout\@gobble
\let\TX@typeout@\@gobble
\newtoks\TX@ftn
\long\def\TX@ftntext#1{%
\edef\@tempa{\the\TX@ftn\noexpand\footnotetext
[\the\csname c@\@mpfn\endcsname]}%
\global\TX@ftn\expandafter{\@tempa{#1}}}%
\long\def\TX@xftntext[#1]#2{%
\global\TX@ftn\expandafter{\the\TX@ftn\footnotetext[#1]{#2}}}
\long\def\TX@trial@ftn#1{}
{\uccode`\*=`\ %
\uppercase{\gdef\TX@verb{%
\leavevmode\null\TX@vwarn
{\ifnum0=`}\fi\ttfamily\let\\\ignorespaces
\@ifstar{\let~*\TX@vb}{\TX@vb}}}}
\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}%
\expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!}
\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= }
\begingroup
\catcode`\*=\catcode`\#
\catcode`\#=12
\gdef\TX@vfirst{%
\if\@tempa#%
\def\@tempb{\TX@v@#}%
\else
\let\@tempb\TX@v@
\if\@tempa\space~\else\@tempa\fi
\fi
\@tempb}
\gdef\TX@v@*1 *2{%
\TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2}
\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2}
\endgroup
\def\TX@vwarn{%
\@warning{\noexpand\verb may be unreliable inside tabularx}%
\global\let\TX@vwarn\@empty}
\endinput
%%
%% End of file `tabularx.sty'.