%% %% This is file `colortbl.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% colortbl.dtx (with options: `package') %% %% %% Source File: `colortbl.dtx'. %% Copyright 1996 1998 1999 2012 2018 2020 2022 2024 David Carlisle %% %% This file may be distributed under the terms of the LPPL. %% See readme for details. %% \NeedsTeXFormat{LaTeX2e}[1995/06/01] \ProvidesPackage{colortbl} [2024/07/06 v1.0i Color table columns (DPC)] \edef\@tempa{% \noexpand\AtEndOfPackage{% \catcode`\noexpand\^^A\the\catcode`\^^A\relax}} \@tempa \catcode`\^^A=\catcode`\% \DeclareOption{debugshow}{\catcode`\^^A=9 } \DeclareOption*{\PassOptionsToPackage\CurrentOption{color}} \ProcessOptions \RequirePackage{array,color} \ifx\do@row@strut\@undefined\let\do@row@strut\relax\fi \def\@classz{\@classx \@tempcnta \count@ \prepnext@tok \expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil \@addtopreamble{% \setbox\z@\hbox\bgroup\bgroup \CT@everycr{}% \ifcase \@chnum \hskip\stretch{.5}\kern\z@ \d@llarbegin \insert@column \d@llarend\do@row@strut\hskip\stretch{.5}\or \d@llarbegin \insert@column \d@llarend\do@row@strut \hfill \or \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend\do@row@strut \or \ifx\ar@align@mcell\@undefined $\vcenter \@startpbox{\@nextchar}\insert@column \@endpbox $ \else \setbox\ar@mcellbox\vbox \@startpbox{\@nextchar}\insert@column \@endpbox \ar@align@mcell \do@row@strut \fi \or \vtop \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut \or \vbox \@startpbox{\@nextchar}\insert@column \@endpbox\do@row@strut \fi \egroup\egroup \begingroup \CT@setup \CT@column@color \CT@row@color \CT@cell@color \CT@do@color \endgroup \@tempdima\ht\z@ \advance\@tempdima\minrowclearance \vrule\@height\@tempdima\@width\z@ \unhbox\z@}% \prepnext@tok} \def\CT@setup{% \@tempdimb\col@sep \@tempdimc\col@sep \def\CT@color{% \global\let\CT@do@color\CT@@do@color \color}} \def\CT@@do@color{% \global\let\CT@do@color\relax \@tempdima\wd\z@ \advance\@tempdima\@tempdimb \advance\@tempdima\@tempdimc \kern-\@tempdimb \leaders\vrule ^^A \@height\p@\@depth\p@ \hskip\@tempdima\@plus 1fill \kern-\@tempdimc \hskip-\wd\z@ \@plus -1fill } \def\CT@extract#1\columncolor#2#3\@nil{% \if!\noexpand#2% \let\CT@column@color\@empty \else \if[\noexpand#2% \CT@extractb{#1}#3\@nil \else \def\CT@column@color{% \CT@color{#2}}% \CT@extractd{#1}#3\@nil \fi \fi} \def\CT@extractb#1#2]#3{% \def\CT@column@color{% \CT@color[#2]{#3}}% \CT@extractd{#1}}% \def\CT@extractd#1{\@testopt{\CT@extracte{#1}}\col@sep} \def\CT@extracte#1[#2]{\@testopt{\CT@extractf{#1}[#2]}{#2}} {\catcode`\!\active \gdef\CT@extractf#1[#2][#3]#4\columncolor#5\@nil{% \@tempdimb#2\relax \@tempdimc#3\relax \edef!{\string!}% \edef\CT@column@color{% \CT@column@color \@tempdimb\the\@tempdimb\@tempdimc\the\@tempdimc\relax}% \toks\@tempcnta{#1#4}}}% \let\CT@everycr\everycr \newtoks\everycr \CT@everycr{\noalign{\global\let\CT@row@color\relax}\the\everycr} \def\CT@start{% \let\CT@arc@save\CT@arc@ \let\CT@drsc@save\CT@drsc@ \let\CT@row@color@save\CT@row@color \let\CT@cell@color@save\CT@cell@color \global\let\CT@cell@color\relax} \def\CT@end{% \global\let\CT@arc@\CT@arc@save \global\let\CT@drsc@\CT@drsc@save \global\let\CT@row@color\CT@row@color@save \global\let\CT@cell@color\CT@cell@color@save} \gdef\@ishortstack#1{% \CT@start\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\CT@end\egroup} \AtBeginDocument{% \expandafter\def\expandafter\@tabarray\expandafter{% \expandafter\CT@start\@tabarray}} \expandafter\def\expandafter\endarray\expandafter{\endarray\CT@end} \def\@tempa#1\@arstrut#2\relax{ \long\def\multicolumn##1##2##3{% #1% \let\CT@cell@color\relax \let\CT@column@color\relax \let\CT@do@color\relax \@arstrut #2}} \expandafter\@tempa\multicolumn{#1}{#2}{#3}\relax \let\@temp\relax \def\@classvi{\ifcase \@lastchclass \@acol \or \ifx\CT@drsc@\relax \@addtopreamble{\hskip\doublerulesep}% \else \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% \fi\or \@acol \or \@classvii \fi} \def\doublerulesepcolor#1#{\CT@drs{#1}} \def\CT@drs#1#2{% \ifdim\baselineskip=\z@\noalign\fi {\gdef\CT@drsc@{\color#1{#2}}}} \let\CT@drsc@\relax \def\arrayrulecolor#1#{\CT@arc{#1}} \def\CT@arc#1#2{% \ifdim\baselineskip=\z@\noalign\fi {\gdef\CT@arc@{\color#1{#2}}}} \let\CT@arc@\relax \def\@arrayrule{\@addtopreamble {{\CT@arc@\vline}}} \def\hline{% \noalign{\ifnum0=`}\fi \let\hskip\vskip \let\vrule\hrule \let\@width\@height {\CT@arc@\vline}% \futurelet \reserved@a\@xhline} \def\@xhline{\ifx\reserved@a\hline {\ifx\CT@drsc@\relax \vskip \else \CT@drsc@\hrule\@height \fi \doublerulesep}% \fi \ifnum0=`{\fi}} \def\@cline#1-#2\@nil{% \omit \@multicnt#1% \advance\@multispan\m@ne \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi \@multicnt#2% \advance\@multicnt-#1% \advance\@multispan\@ne {\CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill}% \cr \noalign{\vskip-\arrayrulewidth}} \newlength\minrowclearance \minrowclearance=0pt \let\@mkpreamarray\@mkpream \def\@mkpream{% \let\CT@setup\relax \let\CT@color\relax \let\CT@do@color\relax \let\color\relax \let\CT@column@color\relax \let\CT@row@color\relax \let\CT@cell@color\relax \@mkpreamarray} \let\CT@do@color\relax \def\rowcolor{% \noalign{\ifnum0=`}\fi \global\let\CT@do@color\CT@@do@color \@ifnextchar[\CT@rowa\CT@rowb} \def\CT@rowa[#1]#2{% \gdef\CT@row@color{\CT@color[#1]{#2}}% \CT@rowc} \def\CT@rowb#1{% \gdef\CT@row@color{\CT@color{#1}}% \CT@rowc} \def\CT@rowc{% \@ifnextchar[\CT@rowd{\ifnum`{=0\fi}}} \def\CT@rowd[#1]{\@testopt{\CT@rowe[#1]}{#1}} \def\CT@rowe[#1][#2]{% \@tempdimb#1% \@tempdimc#2% \xdef\CT@row@color{% \expandafter\noexpand\CT@row@color \@tempdimb\the\@tempdimb \@tempdimc\the\@tempdimc \relax}% \ifnum0=`{\fi}} \def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@} \def\@@ifxempty#1#2\XC@@ {\ifx#1\@@ifxempty \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} \def\rowcolors {\@ifstar{\@rowcmdfalse\rowc@lors}{\@rowcmdtrue\rowc@lors}} \def\rowc@lors{\@testopt{\rowc@l@rs}{}} \def\rowc@l@rs[#1]#2#3#4% {\global\rownum=\z@ \global\@rowcolorstrue \@ifxempty{#3}% {\def\@oddrowcolor{\@norowcolor}}% {\def\@oddrowcolor{\gdef\CT@row@color{\CT@color{#3}}}}% \@ifxempty{#4}% {\def\@evenrowcolor{\@norowcolor}}% {\def\@evenrowcolor{\gdef\CT@row@color{\CT@color{#4}}}}% \if@rowcmd \def\@rowcolors {#1\if@rowcolors \noalign{\relax\ifnum\rownum<#2\@norowcolor\else \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}% \fi}% \else \def\@rowcolors {\if@rowcolors \ifnum\rownum<#2\noalign{\@norowcolor}\else #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi \fi}% \fi \CT@everycr{\@rowc@lors\the\everycr}% \ignorespaces} \def\@rowc@lors{\noalign{\global\advance\rownum\@ne}\@rowcolors} \let\@rowcolors\@empty \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors} \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}} \def\@norowcolor{\global\let\CT@row@color\relax} \@norowcolor \newif\if@rowcolors \newif\if@rowcmd \@ifundefined{rownum}{% \@ifundefined{c@rownum}% {\newcount\rownum\let\c@rownum\rownum}% {\let\rownum\c@rownum}% }% {\let\c@rownum\rownum} \providecommand\therownum{\arabic{rownum}} \edef\cellcolor{\noexpand\protect \expandafter\noexpand\csname cellcolor \endcsname} \@namedef{cellcolor }{% \@ifnextchar[{\CT@cellc\@firstofone}{\CT@cellc\@gobble[]}% } \def\CT@cellc#1[#2]#3{% \expandafter\gdef\expandafter\CT@cell@color\expandafter{% \expandafter\CT@color#1{[#2]}{#3}% \global\let\CT@cell@color\relax }} \global\let\CT@cell@color\relax \AtBeginDocument{% \def\@tempa{$\hfil\egroup\box\z@\box\tw@}% \ifx\@tempa\DC@endright \def\DC@endright{% $\hfil\egroup \ifx\DC@rl\bgroup \hskip\stretch{-.5}\box\z@\box\tw@\hskip\stretch{-.5}% \else \box\z@\box\tw@ \fi}% \else \def\@tempa{$\hfil\egroup\hfill\box\z@\box\tw@}% \ifx\@tempa\DC@endright \def\DC@endright{% $\hfil\egroup% \hskip\stretch{.5}\box\z@\box\tw@\hskip\stretch{-.5}}% \fi \fi} \AtBeginDocument{% \ifx\hhline\@undefined\else \def\HH@box#1#2{\vbox{{% \ifx\CT@drsc@\relax\else \global\dimen\thr@@\tw@\arrayrulewidth \global\advance\dimen\thr@@\doublerulesep {\CT@drsc@ \hrule \@height\dimen\thr@@ \vskip-\dimen\thr@@}% \fi \CT@arc@ \hrule \@height \arrayrulewidth \@width #1 \vskip\doublerulesep \hrule \@height \arrayrulewidth \@width #2}}} \def\HH@loop{% \ifx\@tempb`\def\next##1{\the\toks@\cr}\else\let\next\HH@let \ifx\@tempb|\if@tempswa \ifx\CT@drsc@\relax \HH@add{\hskip\doublerulesep}% \else \HH@add{{\CT@drsc@\vrule\@width\doublerulesep}}% \fi \fi\@tempswatrue \HH@add{{\CT@arc@\vline}}\else \ifx\@tempb:\if@tempswa \ifx\CT@drsc@\relax \HH@add{\hskip\doublerulesep}% \else \HH@add{{\CT@drsc@\vrule\@width\doublerulesep}}% \fi \fi\@tempswatrue \HH@add{\@tempc\HH@box\arrayrulewidth\arrayrulewidth\@tempc}\else \ifx\@tempb##\if@tempswa\HH@add{\hskip\doublerulesep}\fi\@tempswatrue \HH@add{{\CT@arc@\vline\copy\@ne\@tempc\vline}}\else \ifx\@tempb~\@tempswafalse \if@firstamp\@firstampfalse\else\HH@add{&\omit}\fi \ifx\CT@drsc@\relax \HH@add{\hfil}\else \HH@add{{% \CT@drsc@\leaders\hrule\@height\HH@height\hfil}}% \fi \else \ifx\@tempb-\@tempswafalse \gdef\HH@height{\arrayrulewidth}% \if@firstamp\@firstampfalse\else\HH@add{&\omit}\fi \HH@add{{% \CT@arc@\leaders\hrule\@height\arrayrulewidth\hfil}}% \else \ifx\@tempb=\@tempswafalse \gdef\HH@height{\dimen\thr@@}% \if@firstamp\@firstampfalse\else\HH@add{&\omit}\fi \HH@add {\rlap{\copy\@ne}\leaders\copy\@ne\hfil\llap{\copy\@ne}}\else \ifx\@tempb t\HH@add{% \def\HH@height{\dimen\thr@@}% \HH@box\doublerulesep\z@}\@tempswafalse\else \ifx\@tempb b\HH@add{% \def\HH@height{\dimen\thr@@}% \HH@box\z@\doublerulesep}\@tempswafalse\else \ifx\@tempb>\def\next##1##2{% \HH@add{% {\baselineskip\p@\relax ##2% \global\setbox\@ne\HH@box\doublerulesep\doublerulesep}}% \HH@let!}\else \ifx\@tempb\@sptoken\let\next\HH@spacelet\else \PackageWarning{hhline}% {\meaning\@tempb\space ignored in \noexpand\hhline argument% \MessageBreak}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \lowercase{\def\HH@spacelet} {\futurelet\@tempb \HH@loop} \fi} \ExplSyntaxOn \cs_if_exist:NF\tag_mc_begin:n{ \cs_new:Npn\tag_mc_begin:n#1{} \cs_new:Npn\tag_mc_end:{} } \AtBeginDocument{ \def\LT@@hline{% \ifx\LT@next\hline \global\let\LT@next\@gobble \ifx\CT@drsc@\relax \gdef\CT@LT@sep{% \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}% \else \gdef\CT@LT@sep{% \multispan\LT@cols{% \tag_mc_begin:n{artifact} \CT@drsc@\leaders\hrule\@height\doublerulesep\hfill \tag_mc_end: \int_gdecr:N \g__tbl_row_int }\cr}% \fi \else \global\let\LT@next\empty \gdef\CT@LT@sep{% \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}% \fi \ifnum0=`{\fi}% \multispan\LT@cols {\tag_mc_begin:n{artifact} \CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill \tag_mc_end: \int_gdecr:N \g__tbl_row_int }\cr \CT@LT@sep \multispan\LT@cols {\tag_mc_begin:n{artifact} \CT@arc@\leaders\hrule\@height\arrayrulewidth\hfill \tag_mc_end: \int_gdecr:N \g__tbl_row_int }\cr \noalign{\penalty\@M}% \LT@next} } \ExplSyntaxOff \endinput %% %% End of file `colortbl.sty'.