233 lines
5.8 KiB
TeX
233 lines
5.8 KiB
TeX
% special rules
|
||
\newlength\oriarrayrulewidth
|
||
\newcount\orilowpenalty
|
||
\newcommand\Midrule%
|
||
{%
|
||
\noalign%
|
||
{%
|
||
\global\oriarrayrulewidth\arrayrulewidth\relax%
|
||
\global\orilowpenalty\@lowpenalty\relax%
|
||
\global\@lowpenalty=\numexpr-10000\relax%
|
||
\global\arrayrulewidth\lightrulewidth\relax%
|
||
}%
|
||
\hline%
|
||
\noalign%
|
||
{%
|
||
\global\@lowpenalty=\orilowpenalty\relax%
|
||
\global\arrayrulewidth\oriarrayrulewidth\relax%
|
||
}%
|
||
}
|
||
\newcommand{\raisedrule}[2][0em]{\leaders\hbox{\rule[#1]{1pt}{#2}}\hfill}
|
||
|
||
% special table columns
|
||
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
|
||
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
|
||
\newcolumntype{P}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X}
|
||
\newcolumntype{Z}{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}X}
|
||
\newcolumntype{T}[3]{>{\textfont0=\the\font\DC@{#1}{#2}{#3}}c<{\DC@end}}
|
||
\newcolumntype{.}{T{.}{.}{-1}}
|
||
\newcommand{\thead}[1]{\multicolumn{1}{c}{#1}}
|
||
\newcommand{\Thead}[1]{\multicolumn{1}{c|}{#1}}
|
||
\newcommand{\tHead}[1]{\multicolumn{1}{@{}c@{}}{#1}}
|
||
\newcommand{\THead}[1]{\multicolumn{1}{@{}c@{}|@{}}{#1}}
|
||
|
||
% notes for tables
|
||
\newcommand{\tblNote}[2][]{\directlua{tableNote([[#1]], [[#2]])}}
|
||
\newcommand{\theNote}[1]{\directlua{theNote([[#1]])}}
|
||
\newcommand{\aNote}[1]{\directlua{if (tblNoteText=="") then else tblNoteText=tblNoteText..[[; ]] end tblNoteText=tblNoteText..[[#1]] end}}
|
||
|
||
% make font size in a table smaller
|
||
\newcommand{\smallTable}{\directlua{tblSmall = true}}
|
||
\newcommand{\normalTable}{\directlua{tblSmall = false}}
|
||
|
||
\newcommand{\ctable }[1][]{\@ctable {h}{#1}}%(short caption, config, body, long caption, label)
|
||
\newcommand{\htable }[1][]{\@ctable {H}{#1}}%(short caption, config, body, long caption, label)
|
||
|
||
\newcommand{\@ctable}[6]
|
||
{
|
||
%1 – float
|
||
%2 – short caption
|
||
%3 – config
|
||
%4 – body
|
||
%5 – long caption
|
||
%6 – label
|
||
\directlua
|
||
{
|
||
tblNotes = 0
|
||
tblNamedNotes = {}
|
||
tblNoteText = [[]]
|
||
if tblSmall == true
|
||
then
|
||
end
|
||
}
|
||
\begin{table}[#1]%
|
||
\robfamily%
|
||
\centering%
|
||
{%
|
||
\directlua
|
||
{
|
||
if tblSmall == true
|
||
then
|
||
tex.print([[\noexpand\footnotesize]])
|
||
end
|
||
}%
|
||
\ifthenelse{\isempty{#5}}%
|
||
{}%
|
||
{%
|
||
\ifthenelse{\isempty{#2}}%
|
||
{\caption[\nolink{#5}]{\adjustCaption{#5}}}%
|
||
{\caption[\nolink{#2}]{\adjustCaption{#5}}}%
|
||
}%
|
||
\labelTable{#6}%
|
||
\ifthenelse{\isempty{#3}}%
|
||
{\begin{tabular}{l*{255}{c}}}%
|
||
{\begin{tabular}{#3}}%
|
||
\toprule%
|
||
#4%
|
||
\bottomrule%
|
||
\end{tabular}%
|
||
}%
|
||
{%
|
||
\directlua
|
||
{
|
||
if not ( tblNoteText == [[]] )
|
||
then
|
||
tex.print(bs..[[begin{flushleft}]]..bs..[[small]]..tblNoteText..[[.]]..bs..[[end{flushleft}]])
|
||
end
|
||
}%
|
||
}%
|
||
\end{table}%
|
||
}
|
||
|
||
\newcommand{\ltable}[9][]
|
||
{
|
||
%1 – short caption
|
||
%2 – config
|
||
%3 – first header
|
||
%4 – other header
|
||
%5 – body
|
||
%6 – other footer
|
||
%7 – final footer
|
||
%8 – long caption
|
||
%9 – label
|
||
\directlua
|
||
{
|
||
tblNotes = 0
|
||
tblNamedNotes = {}
|
||
tblNoteText = [[]]
|
||
if tblSmall == true
|
||
then
|
||
end
|
||
}%
|
||
\ifthenelse{\isempty{#3}}%
|
||
{\def\tableHeadFirst{}}%
|
||
{\def\tableHeadFirst{#3\midrule}}%
|
||
\ifthenelse{\isempty{#4}}%
|
||
{\def\tableHeadOther{}}%
|
||
{\def\tableHeadOther{#4\midrule}}%
|
||
\ifthenelse{\isempty{#6}}%
|
||
{\def\tableFootOther{}}%
|
||
{\def\tableFootOther{\midrule#6}}%
|
||
\ifthenelse{\isempty{#7}}%
|
||
{\def\tableFootFinal{}}%
|
||
{\def\tableFootFinal{\midrule#7}}%
|
||
\ifthenelse{\isempty{#9}}%
|
||
{%
|
||
%\directlua{print([[table »#1« needs label!]]) unlabeledTab = unlabeledTab + 1}%
|
||
\def\tableLabel{}%
|
||
}%
|
||
{%
|
||
\def\tableLabel{\labelTable{#9}}%
|
||
}%
|
||
\ifthenelse{\isempty{#8}}%
|
||
{%
|
||
\def\tableCaptionFirst{\tableLabel}%
|
||
\def\tableCaptionOther{}%
|
||
}%
|
||
{%
|
||
\ifthenelse{\isempty{#1}}%
|
||
{\def\tableCaptionFirst{\caption[\nolink{#8}]{\adjustCaption{#8}\tableLabel}\\}}%
|
||
{\def\tableCaptionFirst{\caption[\nolink{#1}]{\adjustCaption{#8}\tableLabel}\\}}%
|
||
\def\tableCaptionOther{\caption[]{\adjustCaption{#8 (Fortsetzung)}}\\} %
|
||
}%
|
||
\begin{center}%
|
||
\ifthenelse{\isempty{#2}}%
|
||
{\begin{longtable}{l*{255}{c}}}%
|
||
{\begin{longtable}{#2}}%
|
||
\tableCaptionFirst%
|
||
\toprule%
|
||
\tableHeadFirst%
|
||
\endfirsthead%
|
||
\tableCaptionOther%
|
||
\toprule%
|
||
\tableHeadOther%
|
||
\endhead%
|
||
\tableFootOther%
|
||
\bottomrule%
|
||
\endfoot%
|
||
\tableFootFinal%
|
||
\bottomrule%
|
||
\endlastfoot%
|
||
#5%
|
||
%{%
|
||
% \directlua
|
||
% {
|
||
% if not ( tblNoteText == [[]] )
|
||
% then
|
||
% tex.print(bs..[[begin{flushleft}]]..bs..[[small]]..tblNoteText..[[.]]..bs..[[end{flushleft}]])
|
||
% end
|
||
% }%
|
||
%}%
|
||
\end{longtable}%
|
||
\end{center}%
|
||
}
|
||
|
||
\newcommand{\LTable}[2]
|
||
{
|
||
%1 – config
|
||
%2 – body
|
||
\directlua
|
||
{
|
||
tblNotes = 0
|
||
tblNamedNotes = {}
|
||
tblNoteText = [[]]
|
||
if tblSmall == true
|
||
then
|
||
end
|
||
}%
|
||
%\begin{center}%
|
||
\ifthenelse{\isempty{#1}}%
|
||
{\begin{longtable}{l*{255}{c}}}%
|
||
{\begin{longtable}{#1}}%
|
||
\directlua
|
||
{
|
||
if tblSmall == true
|
||
then
|
||
tex.print([[\noexpand\footnotesize]])
|
||
end
|
||
}%
|
||
\toprule%
|
||
\endfirsthead%
|
||
\toprule%
|
||
\endhead%
|
||
\bottomrule%
|
||
\endfoot%
|
||
\bottomrule%
|
||
\endlastfoot%
|
||
#2
|
||
%{%
|
||
% \directlua
|
||
% {
|
||
% if not ( tblNoteText == [[]] )
|
||
% then
|
||
% tex.print(bs..[[begin{flushleft}]]..bs..[[small]]..tblNoteText..[[.]]..bs..[[end{flushleft}]])
|
||
% end
|
||
% }%
|
||
%}%
|
||
\end{longtable}%
|
||
%\end{center}%
|
||
}%
|
||
% tex.print(bs..[[newline{]]..bs..[[centering]]..bs..[[mbox[][l]{]]..bs..[[small]]..tblNoteText..[[.}}]])%
|