HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/texlive/texmf-dist/tex/latex/carlisle/ltxtable.sty
%% LaTeX2e file `ltxtable.sty'
%% generated by the `filecontents' environment
%% from source `ltxtable' on 2021/06/13.
%%
%
%% ltxtable package (C) 1995, 2021 David Carlisle
%%
%% This file may be distributed under the terms of the LPPL.
%% See 00readme.txt for details.
%
% User documentation is in the file ltxtable.tex
%
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ltxtable}
                [2021/06/13 v0.4 longtable/tabularx merge (DPC)]
%    \end{macrocode}
%
% May as get these in, going to need them...
%    \begin{macrocode}
\RequirePackage{tabularx,longtable}
%    \end{macrocode}
%
%    \begin{macrocode}
\def\LTXtable#1#2{%
\begingroup
\TX@target#1\relax
\expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
  \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}%
%    \end{macrocode}
% Need to modify |\TX@trial| so that |longtable| functions are
% Subverted to do the measuring that |tabularx| normally does.
% Also during the trial runs each `chunk' is not unboxed so it just
% gets thrown away when the next chunk starts.
%    \begin{macrocode}
\def\TX@trial##1{%
  \setbox\@tempboxa=\hbox{%
%    \end{macrocode}
% |\multicolum| A sad tale, For now just stop |longtable| messing with
% it, so that |tabularx| can mess with it.
%    \begin{macrocode}
\let\LTmulticolumn\multicolumn
%    \end{macrocode}
%
%    \begin{macrocode}
\def\endlongtable{%
  \LT@echunk
% from 2021 longtable uses an allocated box \LT@gbox not \box1
\global\setbox\LT@gbox\hbox{\unhbox\LT@gbox}%
  \kern\wd\LT@gbox
  \LT@get@widths%
  \endgroup}%
%    \end{macrocode}
%
%    \begin{macrocode}
\def\LT@ntabularcr{%
  \ifnum0=`{}\fi
  \LT@echunk
  \LT@get@widths
  \LT@bchunk}%
%    \end{macrocode}
%
%    \begin{macrocode}
\def\LT@argtabularcr[####1]{%
  \ifnum0=`{}\fi
  \ifdim ####1>\z@
  \unskip\@xargarraycr{####1}\else \@yargarraycr{####1}\fi
  \LT@echunk
  \LT@get@widths
  \LT@bchunk}%
%    \end{macrocode}
%
%    \begin{macrocode}
% Any extra commands. This is used on the first run to count the number
% of {\ttfamily X} columns.
%    \begin{macrocode}
    ##1\relax
%    \end{macrocode}
% Added at v1.05: dissable "\write"s during a trial run. This trick is
% from the \TeX{}Book.
%    \begin{macrocode}
   \let\immediate=\relax\def\write####1####{{\afterassignment}\toks@=}%
%    \end{macrocode}
% Turn off warnings (see appendix D). Also prevent them being turned
% back on by setting the parameter names to be registers.
%    \begin{macrocode}
    \hbadness=\@M\hfuzz=\maxdimen
    \let\hbadness=\@tempcnta\let\hfuzz=\@tempdima
%    \end{macrocode}
% Make the table, and finish the hbox.
% Since v1.06, "\toks@" contains the preamble specification,
% and possible optional argument, as well as the table body.
% Well it does in |tabularx|, here the body is in an external file so
% just input it.
%    \begin{macrocode}
    \input{#2}\unskip}%
%    \end{macrocode}
% Since v1.05 reset all \LaTeX\ counters, by executing "\TX@ckpt".
%    \begin{macrocode}
\TX@ckpt
%    \end{macrocode}
% Print some statistics.
% Added "\TX@align" in v1.05, to line up the columns.
%    \begin{macrocode}
  \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}}%
%    \end{macrocode}
% \end{macro}
  \TX@trial{\def\NC@rewrite@X{%
          \global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
\let\LT@make@row\LT@blank@row
  \loop
    \TX@arith
    \ifTX@
    \TX@trial{}%
  \repeat
%    \end{macrocode}
% On the last run, may as well run with |\setlongtables|.
%    \begin{macrocode}
\let\LT@make@row\relax
\input{#2}%
\endgroup}
%    \end{macrocode}