Listing 6
\makeatletter \newcommand\maxwidth{% \ifdim\Gin@nat@width>\linewidth% \linewidth% \else\Gin@nat@width\fi} \makeatother
Listing 7
\section{Beispiel für Writer2LaTeX:} Dies ist ein Beispiel, wie ein LibreOffice-Writer-Dokument nach LaTeX umgewandelt wird. \subsection{Bilder:} \begin{figure} \includegraphics[width=\maxwidth]{writerbeispielmyconf-img001} \caption[Eingefügtes Bild]{Eingefügtes Bild} \end{figure}
Tabellen
Tabellen verursachen regelmäßig Probleme, wenn Sie mit vielen Formatvorlagen geschmückt sind oder eine Zelle weiteren Tabellen enthält. Solche Konstrukte in ein einheitliches Aussehen zu bringen, erweist sich als schwierige und zeitaufwendige Aufgabe. Da fällt es oft leichter, wenn Sie den Autor auffordern, die Tabelle mit Calc statt mit Writer zu erstellen.
Dies hat zwei Vorteile: Zum einen legt der Autor nur den Inhalt fest, die Formatierung ignorieren Sie einfach. Zum anderen ermöglicht die Applikation sehr einfach, in Tabellen zu rechnen: Es stehen alle Möglichkeiten von Calc bereit, eine Writer-Tabelle muss da passen.
Die Calc-Tabelle exportieren Sie in eine CSV-Datei, wobei alle Formate verloren gehen. Anschließend wandeln Sie das CSV mit einem Editor wie Sed oder mit einem Ant-Task in eine LaTeX-Tabelle um. Der Task calc2csv
ruft dabei LibreOffice Calc auf und exportiert die Tabelle im CSV-Format (Listing 8). Dabei das Komma (44
) als Spaltentrenner, für Zeichenketten kommt das doppelte Anführungszeichen (34
) zum Einsatz. Mit terminateooo
wird LibreOffice wieder beendet. Anschließend lässt sich die CSV-Datei in eine LaTeX-Tabelle umwandeln – das Ergebnis zeigt Listing 9.
Listing 8
<calc2csv srcfile="${odt.dir}/tab_bsp.ods" destfile="${target.dir}/tab_bsp.csv" ooopath="/usr/lib/openoffice/program" csvoption="44,34,UTF8" /> <terminateooo /> <csv2tabular srcfile="${target.dir}/tab_bsp.csv" usesrcfile="true" workdir="${target.dir}" head="true" firstlinehead="true" headcol="\textbf" mode="tabular" columntypes="|l|r|" />
Listing 9
\begin{tabular}{|l|r|}\hline \textbf{Peter} & \textbf{13} \\\hline Uschi & 23 \\\hline & 36 \\ \hline \end{tabular} \endinput
Um diese Tabelle einzubinden, markieren Sie sie im Writer-Dokument mit einer Textzeile. Im Beispiel sieht diese wie folgt aus:
TABELLE::Tabellenbeschriftung::Datei::
Diese Zeile verwenden Sie später in dem zweistufigen Makro input
(Listing 10). Beim Export ersetzt es Sonderzeichen wie den Unterstrich entsprechend. Enthält der Dateiname der CSV-Datei einen Unterstrich, so machen Sie die ungewollte Ersetzung mit sedlatex
wieder rückgängig. Anschließend wandeln Sie mit Sed die Markierung in entsprechende LaTeX-Makros um. Hier im Beispiel lautet der Name des Makros InputIfFileExists
.
Listing 10
<sedlatex srcfile="${odt.dir}/dok_tab.tex" destfile="${target.dir}/dok_tab.tmp"> <configsedlatex start="TABELLE" sep="::" group="2" search="\_" replace="_" /> </sedlatex> <sed srcfile="${target.dir}/dok_tab.tmp" destfile="${target.dir}/dok_tab.tex"> <configpair one="TABELLE::(.*?)::(.*?)::" two="\\InputIfFileExists{$2.tex}{}{Tabelle nicht gefunden!}\\n" /> </sed>
Möchten Sie die Tabelle lieber in einer Gleitumgebung mitsamt Beschriftung sehen, so hilft der Parameter aus Listing 11.
Listing 11
two="\\begin{table}\\caption{$1}\\InputIfFileExists{$2.tex}{}{Tabelle nicht gefunden!}\\end{table}"
Fazit
Nach dem Umwandeln in LaTeX dürfen Sie die Datei beliebig ändern. Beachten Sie dabei aber, dass Sie alle manuellen Änderungen in der LaTeX-Datei nachpflegen müssen, wenn der Autor am Writer-Dokument Änderungen vornimmt.
Mit etwas Experimentierfreude wandeln Sie selbst komplexere Writer-Dokumente im Handumdrehen automatisch nach LaTeX um. Damit eignet sich Writer als komfortablen Editor für das Satzsystem. Im W2L-Handbuch finden Sie noch weitere interessante Möglichkeiten – ein Blick lohnt sich auf jeden Fall.
Hinterlasse einen Kommentar