Longtable als tabular-Ersatz

Posted by quark007 | Posted in LaTeX | Posted on 14-11-2013-05-2008

0

In Zusammenhang mit meiner Tätigkeit an einer hiesigen Uni in deren Folge ich Skripte in LaTeX übersetzen soll, bin ich auf diese Tabellenerweiterung gestoßen. Eigentlich gedacht für mehrseitige Tabellen, scheint mir diese Fuktion doch wesentlich umfangreicher und optisch schöner als die normale Tabular-Umgebung. Daher hier eine kleine Einführung.

Zu Verwenden ist longtable wie tabular auch, jedoch hat es etwas mehr Einstellungsmöglichkeiten. Eine Tabelle würde z.B. so aussehen:

\begin{longtable}{p{3cm}|r|c|l|}
\caption{Das ist aber eine kleine Tabelle!\label{tab:1_kleine_tabelle}}\\
\setlength\LTleft{0pt}
\setlength\LTright{\fill}
\bfseries TitelSpalte1&\bfseries TitelSpalte2&\bfseries TitelSpalte3&\bfseries TitelSpalte4\\ \hline
\endfirsthead
\bfseries TitelSpalte1&\bfseries TitelSpalte2&\bfseries TitelSpalte3&\bfseries TitelSpalte4\\ \hline
&&&\\
\endhead
&&&\\
\multicolumn{4}{c}{Fortsetzung auf der nächsten Seite}
\endfoot
\endlastfoot
Data01 & Data02 & Data03 & Data04 \\
Data11 & Data12 & Data13 & Data14 \\
Data21 & Data22 & Data23 & Data24 \\
Data31 & Data32 & Data33 & Data34 \\
Data41 & Data42 & Data43 & Data44 \\
Data51 & Data52 & Data53 & Data54 \\
Data61 & Data62 & Data63 & Data64 \\
Data71 & Data72 & Data73 & Data74 \\
Data81 & Data82 & Data83 & Data84 \\
Data91 & Data92 & Data93 & Data94 \\
&&&\\
Data01 & Data02 & Data03 & Data04 \\
Data11 & Data12 & Data13 & Data14 \\
Data21 & Data22 & Data23 & Data24 \\
Data31 & Data32 & Data33 & Data34 \\
Data41 & Data42 & Data43 & Data44 \\
Data51 & Data52 & Data53 & Data54 \\
Data61 & Data62 & Data63 & Data64 \\
Data71 & Data72 & Data73 & Data74 \\
Data81 & Data82 & Data83 & Data84 \\
Data91 & Data92 & Data93 & Data94 \\
&&&\\
Data01 & Data02 & Data03 & Data04 \\
Data11 & Data12 & Data13 & Data14 \\
Data21 & Data22 & Data23 & Data24 \\
Data31 & Data32 & Data33 & Data34 \\
Data41 & Data42 & Data43 & Data44 \\
Data51 & Data52 & Data53 & Data54 \\
Data61 & Data62 & Data63 & Data64 \\
Data71 & Data72 & Data73 & Data74 \\
Data81 & Data82 & Data83 & Data84 \\
Data91 & Data92 & Data93 & Data94 \\
\end{longtable}

Das Beispiel sieht compiliert dann wie folgt aus:

Longtable wird wie folgt definiert:

\begin{longtable}{Breite}{Definition}

Da ich jedoch bei dem Beispiel die Breite variable lassen will, also LaTeX die Tabellenbreite auf den Inhalt anpasst, habe ich diese Option weggelassen. Standardisiert kann man auch {l} verwenden um die Tabelle immer maximal breit zu machen.

Die Definition ist wie bei tabular mit r (rechts-ausgerichtet), l (links-ausgerichtet), c (zentriert) sowie p{Breite} (Partbox, also feste Spalten Breite) zu erledigen. Ein | (AltGr+<) sorgt für eine vertikale Linie zwischen den 2 Spalten Ausrichtungen z.B.  c|r.

p{3cm} steht dabei für Part-Boxen, also eine Box mit einer definierten Breite in diesem Fall von 3cm.

Ein wichtiger Unterschied zwischen longtable und tabular ist, dass in Longtable\caption{} und ein \label{} anders verarbeitet werden. Das \label{} muss IN der \caption{} stehen. Die \caption{} muss desweiteren mit einem Zeilenumbruch „\\“ von dem Tabelleninhalt getrennt werden. Befindet sich das \label{} nicht in der \caption, so erstellt longtable, falls label vor caption steht eine weitere Zeile über der caption und falls andersherum also caption vor label steht, wird unter der caption noch eine leere Zeile eingeblendet. Also wichtig:

!!\label{} muss in der \caption{} stehen!!

Wenn die \caption{} über der Tabelle stehen soll, muss diese von einem Zeilenumbruch \\ abgeschlossen werden

Importieren von Tabellen in LaTeX

Posted by quark007 | Posted in LaTeX | Posted on 08-03-2010-05-2008

0

Für Tabellenkalkulation benutzt man gerne Excel oder OpenOffice Calc. Damit ist die Datenverarbeitung sehr einfach und auch schön flexibel. Aber wie soll man solche Daten in Exel bekommen? Die Felder kopieren und einfügen… klar geht das, ist aber ein extrem hoher Aufwand. Aber es gibt Abhilfe 🙂

Für Excel oder OpenOffice Calc gibt es Plugins, mit denen man Tabellen direkt exportieren kann. Man erhält nachher den Quellcode, den man in das LaTeX Dokument einfügen kann und fertig.

Mario hat mir folgendes File geschickt, was ein Plugin für Excel darstellt. Die installation stellt sich als extrem einfach heraus. Einfach das File in Excel öffnen (Entweder im Programm oder im Dateiexplorer auf „Öffnen mit“ gehen und dann Excel auswählen).
Wenn dieses Addon jedoch jedes mal geladen werden soll, dann muss das File in das „Addin“-Verzeichnis von Excel eingefügt werden. Anschließend muss das Add-in unter „Tools -> Add-in“ hinzugefügt werden. So wird jedes mal der zusätzliche Button in der Symbolleiste erscheinen.

Für OpenOffice Calc gibt es ebenfalls ein Plugin. Diese ist hier herunter zu laden. Die herunter geladene Datei einfach mit OpenOffice Calc öffnen und schon wird das Plugin gespeichert.
Will man nun eine Tabelle exportieren, so markiert man den zu exportierenden Teil und geht auf „Extras -> Makros -> Makro ausführen“. Dort wählt man dann unter „Meine Makros „Calc2LaTeX“ aus und führt das Makro mit dem Namen „Main“ aus. Dann können ine paar Einstellungen verändert werden. Nach dem Klick auf „Convert“ erhält man den Latex-Code für die Tabelle. Diese kann man dann noch nach belieben verändern.

Damit kann man sich eine Menge Arbeit ersparen, also probiert es aus und schreibt mir eure Erfahrungen damit.