Sebastian Walz 860d31cee1
Tohu vaBohu
2023-04-21 00:22:52 +02:00

233 lines
5.8 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

% 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..[[.}}]])%