You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
348 lines
12 KiB
348 lines
12 KiB
%%
|
|
%% This is file `ctable.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% ctable.dtx (with options: `package')
|
|
%%
|
|
%% This is a generated file.
|
|
%%
|
|
%% Copyright (C) 2005 by Wybo Dekker <wybo@dekkerdocumenten.nl>
|
|
%%
|
|
%% This file may be distributed and/or modified under the conditions of
|
|
%% the LaTeX Project Public License, either version 1.2 of this license
|
|
%% or (at your option) any later version. The latest version of this
|
|
%% license is in:
|
|
%%
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%%
|
|
%% and version 1.2 or later is part of all distributions of LaTeX version
|
|
%% 1999/12/01 or later.
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
|
|
\ProvidesPackage{ctable}
|
|
[2015/10/17 v1.31 ctable package for flexible typesetting of table and
|
|
figure floats using key/value directives]
|
|
\RequirePackage{ifpdf,etoolbox,xcolor,xkeyval,array,tabularx,booktabs,rotating}
|
|
\ifpdf
|
|
\@ifpackageloaded{tikz}{
|
|
\PackageWarning{ctable}{
|
|
Transparency disabled: incompatible with tikz package
|
|
}
|
|
\def\transparent#1{}
|
|
}{
|
|
\RequirePackage{transparent}
|
|
}
|
|
\else
|
|
\PackageWarningNoLine{ctable}{\MessageBreak
|
|
Transparency disabled: pdfTeX is not running in PDF mode
|
|
}
|
|
\def\transparent#1{}
|
|
\fi
|
|
\newif\if@CTcaptionloaded
|
|
\AtBeginDocument{
|
|
\makeatletter
|
|
\@ifpackageloaded{tikz}{
|
|
\@ifpackageloaded{transparent}{
|
|
\PackageError{ctable}{You must load ctable after tikz}{}
|
|
}
|
|
}{}
|
|
\@ifpackageloaded{caption}{\@CTcaptionloadedtrue}{\@CTcaptionloadedfalse}
|
|
\makeatother
|
|
}
|
|
\def\NN{\tabularnewline}
|
|
\def\FL{\toprule}
|
|
\def\ML{\NN\midrule}
|
|
\def\LL{\NN\bottomrule}
|
|
\def\@dfltCTfgcolor#1 #2 #3={\definecolor{@dfltCTframefg}{rgb}{#1,#2,#3}}
|
|
\def\@dfltCTbgcolor#1 #2 #3={\definecolor{@dfltCTframebg}{rgb}{#1,#2,#3}}
|
|
\def\@CTfgcolor#1 #2 #3={%
|
|
\definecolor{@CTframefg}{rgb}{#1,#2,#3}
|
|
\def\@CTfgactual{@CTframefg}}
|
|
\def\@CTbgcolor#1 #2 #3={%
|
|
\definecolor{@CTframebg}{rgb}{#1,#2,#3}
|
|
\def\@CTbgactual{@CTframebg}}
|
|
\def\@CTtextsuperscript#1{%
|
|
\ifx\@CTsuper\@CTtrue\@textsuperscript{#1}\else{\footnotesize#1}\fi
|
|
}
|
|
\def\@CTtrue{1}
|
|
\def\@CTfalse{0}
|
|
\def\@CTdoinside{\relax}
|
|
\newif\if@CTusex
|
|
\newif\if@CTinmemoir
|
|
\@ifclassloaded{memoir}{\@CTinmemoirtrue}{\@CTinmemoirfalse}
|
|
\newdimen\@CTframesep \newdimen\@dfltCTframesep
|
|
\newdimen\@CTframerule \newdimen\@dfltCTframerule
|
|
\newdimen\@CTwidth \newdimen\@dfltCTwidth
|
|
\newdimen\@CTcaptionskip \newdimen\@dfltCTcaptionskip
|
|
\newdimen\@CTmaxwidth \newdimen\@dfltCTmaxwidth
|
|
\newdimen\@CTmincapwidth \newdimen\@dfltCTmincapwidth
|
|
\newdimen\@CTfooterwidth \newdimen\@dfltCTfooterwidth
|
|
\newdimen\@CTw % the final width
|
|
\newdimen\@CTfloatwidth
|
|
\newdimen\@CToldsep
|
|
\newdimen\@CToldrule
|
|
\newbox\CT@t % tabular saved and measured here
|
|
|
|
\define@key{suCT}{bgopacity}{\def\@dfltCTbgopacity{#1}}
|
|
\define@key{suCT}{botcap}[]{\let\@dfltCTbotcap\@CTtrue}
|
|
\define@key{suCT}{captionsinside}[]{\def\rot@LR{-1}
|
|
\if@twoside\@rot@twosidetrue
|
|
\else\@rot@twosidefalse\fi}
|
|
\define@key{suCT}{captionsleft}[]{\@rot@twosidefalse\def\rot@LR{-1}}
|
|
\define@key{suCT}{captionsright}[]{\@rot@twosidefalse\def\rot@LR{0}}
|
|
\define@key{suCT}{captionskip}{\@dfltCTcaptionskip=#1}
|
|
\define@key{suCT}{center}[]{\let\@dfltCTalign\centering}
|
|
\define@key{suCT}{continued}{\def\@dflttextcontinued{#1}}
|
|
\define@key{suCT}{doinside}{\def\@dfltCTdoinside{#1}}
|
|
\define@key{suCT}{figure}[]{\def\@dfltCTtaborfig{figure}}
|
|
\define@key{suCT}{framebg}{\@dfltCTbgcolor#1=}
|
|
\define@key{suCT}{framefg}{\@dfltCTfgcolor#1=}
|
|
\define@key{suCT}{framerule}{\@dfltCTframerule=#1}
|
|
\define@key{suCT}{framesep}{\@dfltCTframesep=#1}
|
|
\define@key{suCT}{left}[]{\let\@dfltCTalign\raggedright}
|
|
\define@key{suCT}{maxwidth}{\@dfltCTmaxwidth=#1}
|
|
\define@key{suCT}{mincapwidth}{\@dfltCTmincapwidth=#1}
|
|
\define@key{suCT}{footerwidth}[-1pt]{\@dfltCTfooterwidth=#1}
|
|
\define@key{suCT}{nonotespar}[]{\let\@dfltCTnotespar\@CTfalse}
|
|
\define@key{suCT}{nosideways}[]{\let\@dfltCTsideways\empty}
|
|
\define@key{suCT}{nostar}[]{\def\@dfltCTstarred{}}
|
|
\define@key{suCT}{nosuper}[]{\let\@dfltCTsuper\@CTfalse}
|
|
\define@key{suCT}{notespar}[]{\let\@dfltCTnotespar\@CTtrue}
|
|
\define@key{suCT}{pos}{\def\@dfltCTpos{#1}}
|
|
\define@key{suCT}{right}[]{\let\@dfltCTalign\raggedleft}
|
|
\define@key{suCT}{sideways}[]{\def\@dfltCTsideways{sideways}}
|
|
\define@key{suCT}{star}[]{\def\@dfltCTstarred{*}}
|
|
\define@key{suCT}{super}[]{\let\@dfltCTsuper\@CTtrue}
|
|
\define@key{suCT}{table}[]{\def\@dfltCTtaborfig{table}}
|
|
\define@key{suCT}{topcap}[]{\let\@dfltCTbotcap\@CTfalse}
|
|
\define@key{suCT}{width}{\@dfltCTwidth=#1}
|
|
|
|
\newcommand{\setupctable}[1]{\setkeys{suCT}{#1}}
|
|
\setupctable{
|
|
bgopacity=1,
|
|
captionskip=0pt,
|
|
center,
|
|
continued=(continued),
|
|
doinside={},
|
|
footerwidth=0pt,
|
|
framebg=1 1 1,
|
|
framefg=0 0 0,
|
|
framerule=0pt,
|
|
framesep=0pt,
|
|
maxwidth=0pt,
|
|
mincapwidth=0pt,
|
|
nonotespar,
|
|
nosideways,
|
|
nostar,
|
|
super,
|
|
table,
|
|
topcap,
|
|
width=0pt,
|
|
}
|
|
|
|
\define@key{CT}{bgopacity}{\def\@CTbgopacity{#1}}
|
|
\define@key{CT}{botcap}[]{\let\@CTbotcap\@CTtrue}
|
|
\define@key{CT}{captionskip}{\@CTcaptionskip=#1}
|
|
\define@key{CT}{caption}{\def\@CTcaption{#1}}
|
|
\define@key{CT}{cap}{\def\@CTcap{#1}}
|
|
\define@key{CT}{center}[]{\let\@CTalign\centering}
|
|
\define@key{CT}{continued}[\@dflttextcontinued]{\def\@CTcontinued{#1}}
|
|
\define@key{CT}{doinside}{\def\@CTdoinside{#1}}
|
|
\define@key{CT}{figure}[]{\def\@CTtaborfig{figure}}
|
|
\define@key{CT}{framebg}{\@CTbgcolor#1=}
|
|
\define@key{CT}{framefg}{\@CTfgcolor#1=}
|
|
\define@key{CT}{framerule}{\@CTframerule=#1}
|
|
\define@key{CT}{framesep}{\@CTframesep=#1}
|
|
\define@key{CT}{label}{\def\@CTlabel{#1}}
|
|
\define@key{CT}{left}[]{\let\@CTalign\raggedright}
|
|
\define@key{CT}{maxwidth}{\@CTmaxwidth=#1}
|
|
\define@key{CT}{mincapwidth}{\@CTmincapwidth=#1}
|
|
\define@key{CT}{footerwidth}[-1pt]{\@CTfooterwidth=#1}
|
|
\define@key{CT}{nonotespar}[]{\let\@CTnotespar\@CTfalse}
|
|
\define@key{CT}{nosideways}[]{\let\@CTsideways\empty}
|
|
\define@key{CT}{nostar}[]{\def\@CTstarred{}}
|
|
\define@key{CT}{nosuper}[]{\let\@CTsuper\@CTfalse}
|
|
\define@key{CT}{notespar}[]{\let\@CTnotespar\@CTtrue}
|
|
\define@key{CT}{pos}{\def\@CTpos{#1}\def\@CTbegin{\@CTbeg[#1]}}
|
|
\define@key{CT}{right}[]{\let\@CTalign\raggedleft}
|
|
\define@key{CT}{sidecap}[]{\let\@CTbotcap\undefined}
|
|
\define@key{CT}{sideways}[]{\def\@CTsideways{sideways}}
|
|
\define@key{CT}{star}[]{\def\@CTstarred{*}}
|
|
\define@key{CT}{super}[]{\let\@CTsuper\@CTtrue}
|
|
\define@key{CT}{table}[]{\def\@CTtaborfig{table}}
|
|
\define@key{CT}{topcap}[]{\let\@CTbotcap\@CTfalse}
|
|
\define@key{CT}{width}{\@CTwidth=#1}
|
|
\def\@CTCaption{
|
|
\ifx\@CTcaption\empty\else
|
|
\def\@CTcaptionarg{\ifx\@CTlabel\empty\else\label{\@CTlabel}\fi
|
|
\@CTcaption\ \@CTcontinued\strut}
|
|
\begingroup
|
|
\ifx\@CTcap\empty
|
|
\edef\x{\endgroup\noexpand\caption[]{\expandonce\@CTcaptionarg}}
|
|
\else
|
|
\edef\x{\endgroup\noexpand\caption[\expandonce\@CTcap]%
|
|
{\expandonce\@CTcaptionarg}}
|
|
\fi
|
|
\x
|
|
\fi
|
|
}
|
|
\newcolumntype{Y}{X}
|
|
\def\@CTXcolumntype#1{%
|
|
\let\NC@find@X\undefined
|
|
\newcolumntype{X}{#1}%
|
|
}
|
|
\long\def\@CTframe#1#2#3{%
|
|
\@CToldsep\fboxsep\fboxsep\@CTframesep%
|
|
\@CToldrule\fboxrule\fboxrule\@CTframerule%
|
|
\transparent{\@CTbgopacity}%
|
|
\fcolorbox{#1}{#2}{\fboxsep\@CToldsep\fboxrule\@CToldrule\transparent{1}#3}%
|
|
}
|
|
\newcommand{\tnote}[2][a]{%
|
|
\ifx\@CTnotespar\@CTtrue%
|
|
\@CTtextsuperscript{\normalfont\textit{#1}}\,#2
|
|
\else%
|
|
\hbox{\@CTtextsuperscript{\normalfont\textit{#1}}}\NN
|
|
\fi
|
|
}
|
|
\newcommand{\tmark}[1][a]{%
|
|
\hbox{\textsuperscript{\normalfont\textit{#1}}}}
|
|
\newdimen\@CTcurftwidth
|
|
\newcommand{\ctable}[4][]{%
|
|
\let\@CTtaborfig \@dfltCTtaborfig
|
|
\let\@CTalign \@dfltCTalign
|
|
\let\@CTsideways \@dfltCTsideways
|
|
\let\@CTcontinued \empty
|
|
\let\@CTpos \@dfltCTpos
|
|
\let\@CTcaption \empty
|
|
\let\@CTcap \undefined
|
|
\let\@CTlabel \empty
|
|
\let\@CTbotcap \@dfltCTbotcap
|
|
\let\@CTstarred \@dfltCTstarred
|
|
\let\@CTsuper \@dfltCTsuper
|
|
\let\@CTnotespar \@dfltCTnotespar
|
|
\let\@CTdoinside \@dfltCTdoinside
|
|
\let\@CTbgopacity \@dfltCTbgopacity
|
|
\@CTframerule \@dfltCTframerule
|
|
\@CTcaptionskip \@dfltCTcaptionskip
|
|
\@CTframesep \@dfltCTframesep
|
|
\@CTwidth \@dfltCTwidth
|
|
\@CTmaxwidth \@dfltCTmaxwidth
|
|
\@CTmincapwidth \@dfltCTmincapwidth
|
|
\@CTfooterwidth \@dfltCTfooterwidth
|
|
\def\@CTfgactual {@dfltCTframefg}%
|
|
\def\@CTbgactual {@dfltCTframebg}%
|
|
\def\@CTbeg {\begin{\@CTsideways\@CTtaborfig\@CTstarred}}%
|
|
\def\@CTbegin {\@CTbeg}%
|
|
\def\@CTend {\end{\@CTsideways\@CTtaborfig\@CTstarred}}%
|
|
\setkeys{CT}{#1}%
|
|
\ifx\@CTcap\undefined\let\@CTcap\@CTcaption\fi
|
|
\ifx\@CTcap\empty
|
|
\if@CTcaptionloaded\else
|
|
\PackageWarningNoLine{ctable}{\MessageBreak
|
|
An empty cap= option prevents lot/loc entry only\MessageBreak
|
|
if the caption package is loaded!}
|
|
\fi
|
|
\fi
|
|
\if@CTinmemoir\else
|
|
\ifx\@CTbotcap\undefined
|
|
\PackageError{ctable}{\MessageBreak
|
|
You can, currently, use the sidecap option only with\MessageBreak
|
|
memoir documents. Use topcap or botcap only}
|
|
\fi
|
|
\fi
|
|
\ifdim\@CTwidth=0pt\else
|
|
\ifdim\@CTmaxwidth=0pt\else
|
|
\PackageError{ctable}{\MessageBreak
|
|
You may not use the width and maxwidth options together\MessageBreak
|
|
Use either width or maxwidth}
|
|
\fi
|
|
\fi
|
|
\ifx\@CTpos\empty
|
|
\ifx\@CTsideways\empty\else
|
|
\PackageError{ctable}{\MessageBreak
|
|
You may not use the pos and sideways options together\MessageBreak
|
|
Rotated tables and figures are always typeset on a separate page}
|
|
\fi
|
|
\fi
|
|
\ifx\@CTcaption\empty
|
|
\ifx\@CTlabel\empty\else
|
|
\PackageError{ctable}{\MessageBreak
|
|
You may not label a captionless table\MessageBreak
|
|
Such a label can't be referenced}
|
|
\fi
|
|
\fi
|
|
\sbox\CT@t{%
|
|
\@CTXcolumntype{l}% temporarily make type X = l
|
|
\@CTframe{\@CTfgactual}{\@CTbgactual}{%
|
|
\@CTdoinside
|
|
\begin{tabular}{#2}
|
|
#4%
|
|
\end{tabular}%
|
|
}%
|
|
}%
|
|
\@CTusexfalse
|
|
\ifdim\@CTmaxwidth=0pt
|
|
\ifdim\@CTwidth=0pt
|
|
\else
|
|
\@CTusextrue
|
|
\fi
|
|
\else
|
|
\ifdim\wd\CT@t>\@CTmaxwidth
|
|
\@CTusextrue
|
|
\fi
|
|
\fi
|
|
\if@CTusex
|
|
\sbox\CT@t{%
|
|
\@CTXcolumntype{Y}% restore X
|
|
\@CTframe{\@CTfgactual}{\@CTbgactual}{%
|
|
\@CTdoinside
|
|
\begin{tabularx}{\ifdim\@CTwidth>0pt\@CTwidth\else\@CTmaxwidth\fi}{#2}
|
|
#4%
|
|
\end{tabularx}%
|
|
}%
|
|
}%
|
|
\fi
|
|
\@CTw=\wd\CT@t
|
|
\@CTfloatwidth=\ifdim\@CTmincapwidth>\@CTw
|
|
\@CTmincapwidth
|
|
\else
|
|
\@CTw
|
|
\fi
|
|
\@CTbegin
|
|
\ifx\@CTcontinued\empty\else\addtocounter{\@CTtaborfig}{-1}\fi
|
|
\@CTalign
|
|
\begin{minipage}{\@CTfloatwidth}\parindent0pt
|
|
\ifx\@CTbotcap\@CTfalse\@CTCaption\vskip\@CTcaptionskip\fi
|
|
\ifx\@CTbotcap\undefined%
|
|
\begin{sidecaption}[\@CTcap]{\@CTcaption}[\@CTlabel]
|
|
\fi
|
|
\centering{\usebox\CT@t}% insert the tabular
|
|
\def\@CTfootnotes{#3}%
|
|
\ifx#3\empty\else{% append footnotes, if any
|
|
\@CTcurftwidth=\ifdim\@CTfooterwidth=-1pt\@CTw\else
|
|
\ifdim\@CTfooterwidth=0pt\hsize\else
|
|
\@CTfooterwidth\fi\fi
|
|
\footnotesize
|
|
\ifx\@CTnotespar\@CTtrue%
|
|
\\[.2ex]
|
|
\begin{minipage}{\@CTcurftwidth}%
|
|
#3%
|
|
\end{minipage}%
|
|
\else%
|
|
\\
|
|
\begin{tabularx}{\@CTcurftwidth}{r@{\,}>{\raggedright}X}
|
|
#3%
|
|
\end{tabularx}%
|
|
\fi
|
|
}
|
|
\fi
|
|
\ifx\@CTbotcap\undefined\end{sidecaption}\fi
|
|
\ifx\@CTbotcap\@CTtrue\vskip\@CTcaptionskip\@CTCaption\fi
|
|
\end{minipage}
|
|
\@CTend
|
|
}
|
|
\endinput
|
|
%%
|
|
%% End of file `ctable.sty'.
|
|
|