von KOMA » Do 29. Jul 2010, 07:59
Klar. Nehmen wir an, die Werte liegen in der Datei foo.dat als CSV vor, also in der Form:
a, b, c, d, e, f
g, h, i, j, k, l
m, n, o, p, q, r
usw., dann kann man mit folgendem Aufruf ein foo.tex daraus machen:
sed -e 's/,/ \&/g;s/$/ \\\\/' foo.dat >foo.tex
Das Quoting mit einfachen Anführungszeichen ist hierbei für
sh, bash, tsh und ähnliche übliche Shells. Bei CMD.EXE muss man ggf. anders quoten. Da man aber für die Installation von sed ohnehin am besten mal eben
MinSYS/MinGW oder
CygWin installiert, ist es kein Problem auch gleich eine bash zu verwenden.
Ergebnis ist dann jedenfalls
a & b & c & d & e & f \\
g & h & i & j & k & l \\
m & n & o & p & q & r \\
usw.
Ein guter Editor kann ebenfalls das Komma durch ein & ersetzen und am Zeilenende ein \\ oder \tabularnewline einfügen.
Zum Schluss muss man dann nur noch einen longtable-Kopf wie
\begin{longtable}{*6l}
\caption{Die Bi-Ba-Butze-Mann-Tabelle}\\
\toprule
Bi & Ba & Butze & Mann & und & Frau \\
\midrule
\endfirsthead
\caption[]{Die Bi-Ba-Butze-Mann-Tabelle (Fortsetzung)}\\
\toprule
Bi & Ba & Butze & Mann & und & Frau \\
\midrule
\endhead
davor und ein
dahinter kopieren und ist fertig.
Und wenn Du eine reine (La)TeX-Lösung suchst:
csv2latex,
csvsimple,
csvtools bzw.
datatool.
[Edit: Links ergänzt, die MinGW, Cygwin und die diversen shells erklären.]
Klar. Nehmen wir an, die Werte liegen in der Datei foo.dat als CSV vor, also in der Form:
[code]a, b, c, d, e, f
g, h, i, j, k, l
m, n, o, p, q, r[/code] usw., dann kann man mit folgendem Aufruf ein foo.tex daraus machen: [code]sed -e 's/,/ \&/g;s/$/ \\\\/' foo.dat >foo.tex[/code] Das Quoting mit einfachen Anführungszeichen ist hierbei für [url=http://de.wikipedia.org/wiki/Unix-Shell]sh, bash, tsh[/url] und ähnliche übliche Shells. Bei CMD.EXE muss man ggf. anders quoten. Da man aber für die Installation von sed ohnehin am besten mal eben [url=http://de.wikipedia.org/wiki/MinGW]MinSYS/MinGW[/url] oder [url=http://de.wikipedia.org/wiki/Cygwin]CygWin[/url] installiert, ist es kein Problem auch gleich eine bash zu verwenden.
Ergebnis ist dann jedenfalls [code]a & b & c & d & e & f \\
g & h & i & j & k & l \\
m & n & o & p & q & r \\[/code] usw.
Ein guter Editor kann ebenfalls das Komma durch ein & ersetzen und am Zeilenende ein \\ oder \tabularnewline einfügen.
Zum Schluss muss man dann nur noch einen longtable-Kopf wie [code]\begin{longtable}{*6l}
\caption{Die Bi-Ba-Butze-Mann-Tabelle}\\
\toprule
Bi & Ba & Butze & Mann & und & Frau \\
\midrule
\endfirsthead
\caption[]{Die Bi-Ba-Butze-Mann-Tabelle (Fortsetzung)}\\
\toprule
Bi & Ba & Butze & Mann & und & Frau \\
\midrule
\endhead[/code]
davor und ein [code]\end{longtable}[/code] dahinter kopieren und ist fertig.
Und wenn Du eine reine (La)TeX-Lösung suchst: [url=http://ctan.org/pkg/csv2latex]csv2latex[/url], [url=http://ctan.org/pkg/csvsimple]csvsimple[/url], [url=http://ctan.org/pkg/csvtools]csvtools[/url] bzw. [url=http://ctan.org/pkg/datatool]datatool[/url].
[Edit: Links ergänzt, die MinGW, Cygwin und die diversen shells erklären.]