Tabellen Kopfzeile mit `\multicolumn` aus Datei einlesen
Hi, ich versuche eine Kopfzeile für eine Tabelle aus einer Datei einzulesen. Diese soll sich aus beliebig vielen Einträgen zusammensetzen und jeweils über (erstmal) zwei Spalten zentriert sein. Folgendes habe ich bereits versucht:
\documentclass{scrartcl}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.8}
\pgfplotstableread{%
A B C D a b
2.3 3.1 2.9 3.3 OP1 OP2
3.2 2.7 2.6 3.4 5 2
3.4 2.8 2.9 3.1 a b
}\loadedtable
\begin{document}
\pgfplotstabletypeset[%% So soll die Tabelle aussehen
header=true,
column type={c},
columns={A,B,C,D},
every head row/.style={before row={\multicolumn{2}{c}{OP1}&\multicolumn{2}{c}{OP2}\\}},
multicolumn names=c,
]\loadedtable
\makeatletter
\pgfplotstablegetelem{1}{[index]4}\of{\loadedtable}%
\edef\sudo@number@OP{\pgfplotsretval}%
\pgfplotstablegetelem{0}{[index]4}\of{\loadedtable}%
\edef\sudo@table@head{\noexpand\multicolumn{2}{c}{\pgfplotsretval}}%
\pgfplotsforeachungrouped\i in {5,...,\sudo@number@OP}{%
\pgfplotstablegetelem{0}{[index]\i}\of{\loadedtable}%
\edef\sudo@table@head{\sudo@table@head&\noexpand\multicolumn{2}{c}{\pgfplotsretval}}% Hier gibt es Fehler
}%
\edef\sudo@table@head{\sudo@table@head\\}% Hier gibt es Fehler
\edef\sudo@temp{%
\noexpand\pgfplotstableset{%
sudo table head/.style={every head row/.style={before row={\sudo@table@head}},}% Hier gibt es Fehler
}%
}%
\sudo@temp
\makeatother
%
\pgfplotstabletypeset[
header=true,
column type={c},
columns={A,B,C,D},
sudo table head,
multicolumn names=c,
]\loadedtable
\end{document}
Es gibt aber immer Fehler da die `\multicolumn`-Anweisungen nicht zu früh expandiert werden dürfen. Wenn man die Zeilen mit `Hier gibt es Fehler` sowie den `sudo table head`-Stil auskommentiert läuft LaTeX erstmal durch, erstellt aber natürlich nicht die richtig formatierte Tabelle.
Ich hab auch schon mal versucht die Kopfzeile - also `\multicolumn{2}{c}{OP1}&\multicolumn{2}{c}{OP2}\\` komplett in der Datei bereit zu stellen und einzulesen. Ich versuche mal dafür auch noch ein MWE zu basteln.
einzulesen.
\documentclass{scrartcl}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.8}
\pgfplotstableread{%
A B C D a b
2.3 3.1 2.9 3.3 OP1 OP2
3.2 2.7 2.6 3.4 5 2
3.4 2.8 2.9 3.1 \multicolumn{2}{c}{OP1}&\multicolumn{2}{c}{OP2}\\ b
}\loadedtable
\makeatletter
\pgfplotstablegetelem{2}{[index]4}\of{\loadedtable}%
\def\sudo@temp{%
\noexpand\pgfplotstableset{%
sudo table head/.style={every head row/.style={before row={\pgfplotsretval}},}% Hier gibt es Fehler
}%
}%
\sudo@temp
\makeatother
\begin{document}
\pgfplotstabletypeset[
columns={A,B,C,D},
sudo table head,
]\loadedtable
\end{document}
Es geht darum eine spezielle Vorlage zu erstellen, bei der nur noch eine externe Datei geladen werden muss und der Rest automatisch erstellt wird.