Ich habe eine Tabelle spreadtab
mit einer recht komplexen Kopf- und Fußzeile, die an mehreren Stellen in meinem Dokument verwendet wird. Der eigentliche Inhalt besteht nur aus wenigen einfachen Zeilen. Ich möchte eine neue Umgebung (oder ein neues Makro) definieren, damit ich die Kopf- und Fußzeile nicht für jede Tabelle wiederholen muss.
Der einzige funktionierende Ansatz, den ich gefunden habe, ist der folgende, basierend aufhttps://tex.stackexchange.com/a/312860/102921Undhttps://tex.stackexchange.com/a/207313/102921.
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[main=english]{babel}
\usepackage{array, environ, spreadtab, xpatch}
\makeatletter
\def\spreadtab@ii{\IfSubStr\ST@tab{\noexpand\input}{\expandafter\spreadtab@iii\ST@tab\@nil}\relax}
\def\spreadtab@iii#1\input#2#3\@nil{%
\long\def\spreadtab@iv##1\spreadtab@iv{\endgroup\def\ST@tab{#1##1#3}\spreadtab@ii}%
\begingroup
\everyeof{\spreadtab@iv\noexpand}%
\expandafter\spreadtab@iv\@@input#2
}
\xpretocmd\spreadtab@i\spreadtab@ii{}{}
\makeatother
\newwrite\mytabularwrite
\NewEnviron{mytable}{%
\immediate\openout\mytabularwrite=mytabularfile.tex%
\immediate\write\mytabularwrite{\unexpanded\expandafter{\BODY}}%
\immediate\closeout\mytabularwrite
\begin{spreadtab}{{tabular}{|l|ccc|}}
\hline
& @Heading 1 & @Heading 1 & @Heading 1 \\\hline % here is a complex header
\input{mytabularfile}
@ Total & \STcopy{>}{sum(b2:[0,-1])} & & \\\hline % end a complex footer
\end{spreadtab}
}
\begin{document}
\begin{mytable}
@ Label 1 & 1000 & 500 & 800 \\\hline
@ Label 2 & 2000 & 1500 & 1800 \\\hline
% At most 10 of such lines per table
\end{mytable}
\end{document}
Gibt es eine Möglichkeit, ohne temporäre Dateien auszukommen? Da das endgültige Dokument etwa 100 solcher Tabellen enthalten wird, mache ich mir hinsichtlich der Geschwindigkeit ein paar Sorgen.