%% %% 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-2024 %% The LaTeX 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} [2023/12/11 v2.12a `tabularx' package (DPC)] \NeedsTeXFormat{LaTeX2e}[2024/06/01] \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}% \SuspendTagging {tabularx}% \TX@trial{\def\NC@rewrite@X{% \global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}% \loop \TX@arith \ifTX@ \TX@trial{}% \repeat \ResumeTagging {tabularx}% {\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'.