Riesige Tabellen einfach erzeugen?

Tabellen und Grafiken erstellen und anordnen


Tabellenwahn

Riesige Tabellen einfach erzeugen?

Beitrag von Tabellenwahn »

Hi,

ich bin gerade am Verfassen einer Umfangreichen Wertesammlung in Latex. Hierbei habe ich nun mehrere Tausend Werte, die in mehreren Tabellen zusammengefasst werden sollen.

Kleinere Tabellen sind ja in Latex vom Programmieraufwand gar kein Problem. Nur je länger die Tabelle wird, desto mehr Zeit geht auch drauf. So könnte es Tage dauern bis ich alle Werte in Tabellen eingetragen habe.

Hierbei ist es ja eigentlich immer das selbe Schema:

Wert & Wert & Wert & Wert & Wert \\
...

Gint es eine möglichkeit das erstellen einer Tabelle halbwegs zu automatisieren?

Lg Sabrina

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Vielleicht die Werte in Excel eintragen und dann Excel2LaTeX-Export? (geht afaik auch mit OpenOffîce)

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

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
\end{longtable}
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.]
Zuletzt geändert von KOMA am Do 29. Jul 2010, 09:11, insgesamt 1-mal geändert.

Tabellenwahn

Beitrag von Tabellenwahn »

Code:
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.
Guten Morgen!

ich weiss zwar keineswegs was du mit sh,bash, tsh, Shells, sed, MinSYS/MinGW und CygWin meinst, aber ich werde es dennoch mal versuchen. Kinen dieser Begriffe habe ich jemals gehört. Ich schaue mal wie das funktionieren könnte und gebe dann Rückantwort :)

Lg Sabrina

PS: So ein Excel Converter :) Da schaudert es mich wenn ich an Excel denke ;)

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Tabellenwahn hat geschrieben:ich weiss zwar keineswegs was du mit sh,bash, tsh, Shells, sed, MinSYS/MinGW und CygWin meinst
Ich habe für Windows-Anwender mal ein paar Links ergänzt, die das erklären. Und wie gesagt: Es gibt eventuell auch reine LaTeX-Lösungen, für die ich bereits Links angegeben hatte.

Tabellenwahn

Beitrag von Tabellenwahn »

Okay Danke!

Ich dachte schon ich habe irgendwas verpasst :)

Dürfte mit csv2latex aber klappen denke ich mal.

Lg Sabrina

Antworten