Ein paar kleine Tipps für LaTeX Schreiber

Samstag, 05.09.2009 um 15:58 Uhr

Moin liebe Lesergemeinde,

heute gibt es mal ein paar kleine Tipps zu verschiedenen LaTeX Problemen.

Bis vor kurzem habe ich Hoch-/Tiefstellungen von Buchstaben im Text immer in der Matheumgebung mit _{} gemacht. Da werden die Buchstaben allerdings kursiv geschrieben, was in einem Flusstext eher stört. Also habe ich das kursiv mit \mathrm{} wieder aufgehoben. Nicht sonderlich toll zu schreiben und daher nicht zweckmäßig. Neulich habe ich beiden Befehle \textsuperscript und \textsubscript gefunden. Mit denen kann man Buchstaben hoch und tief stellen. Um das Schreiben etwas abzukürzen habe ich mir die beiden Befehle \up und \down definiert. Das ist kürzer und einfacher zu merken :) Wer diese Befehle auch verwenden möchte, muss die folgenden zwei Zeilen in seine tex-Dokumenteneinleitung schreiben:

\newcommand{\up}[2]{#1\textsuperscript{#2}}
\newcommand{\down}[2]{#1\textsubscript{#2}}

Für Tabellen nutze ich entweder tabularx oder auch LTXTable (verbindet longtable mit tabularx). Tabularx führt den neuen Spaltentyp X ein, die X Spalte passt sich variabel an die Breite der Tabelle und der Anzahl der Spalten an. Text wird allerding immer linksbündig gesetzt. Will man eine zentrierte Spalte haben muss man in der Spaltendefinition \centering\arraybackslash}X schreiben. Oder man legt sich selber einen neuen Spaltentyp an, den man einfach anstelle von X einsetzt. Für eine zentrierte X Spalte nutze ich folgenden Befehl:

\newcolumntype{C}{>{\centering\arraybackslash}X}

Manchmal wird es notwendig die Spalten manuell in der Größe einzustellen, das geht mit p{Breite}, allerdings ist dieser Typ ebenfalls linksbündig. Für eine Spalte mi der Ausrichtung in der Mitte und Rechts sind folgende Befehle zu verwenden.

\newcolumntype{Z}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

Ab und zu ist es ganz schick ein Bild durch Text umfließen zu lassen. Das geht mit dem Paket wrapfig ganz gut. Allerdings hat das Paket einen nervigen Fehler. Wenn das umflossene Bild nicht vollständig umflossen wird, sondern der nebenstehende Text kürzer ist als die Bildhöhe, wird die wrapfig Umgebung nicht richtig geschlossen und man bekommt Probleme mit den Absätzen und Einrückungen. Das lässt sich durch einen Workaround lösen. Dieser definiert den neuen Befehl \wrapfill. Dieser wird an das Ende des Absatzes der das Bild nicht ganz umfließt angefügt. Nun wird die Bildumgebung ordentlich geschlossen. Der nächste Absatz beginnt jetzt unter dem Bild. Hier sollte ich noch anfügen, dass ich diesen Hack auch nur kopiert habe. Ich habe dazu leider gar keine Doku gefunden. Das Paket wrapfig ist zwar leidlich dokumentiert, aber durchgesehen habe ich dort trotzdem nicht.


\usepackage{blindtext,wrapfig}
\makeatletter
\newcommand\wrapfill{\par
\ifx\parshape\WF@fudgeparshape
\nobreak
\vskip-\baselineskip
\vskip\c@WF@wrappedlines\baselineskip
\allowbreak
\WFclear
\fi
}
\makeatother

Kommentare

  1. hgtr sagt:

    Bitte bitte mehr LaTeX Tipps! Ich lerne so etwas sehr gerne in kleinen Häpchen und nicht auf einer aufgeblähten Tutorial-Seite.

  2. Jazz sagt:

    Moin,
    da muss ich dich auch enttäuschen, ich hab diese Zeilen auch nur kopiert (also die vom dritten Beispiel). Sie funktionieren tadellos, Auswirkungen sind mir keine aufgefallen.

    Problem beim Verstehen irgendwelcher Hacks ist, dass sie genauso undokumentiert sind, wie die Pakete in denen sie Fehler beheben. Ich habe versucht im Paket wrapfig durchzusehen und zu schauen, welche Eigenschaften der Hack nutzt. Irgendwann hab ich dann entmutigt aufgegeben.

    Sorry also, diese Zeilen kann ich nicht wirklich erklären.

  3. Dee sagt:

    Schöne Tipps, es wäre aber schön, wenn Du vor allem beim dritten Beispiel erklärst, was jede Zeile macht. Sehr oft kopieren vor allem LaTeX-Unerfahrene einfach Codeteile, die ggf. Auswirkungen auf andere Pakete und Textstellen hat, und wundern sich dann, dass etwas nicht funktioniert.

    Ich nutze LaTeX nun schon seit über 10 Jahren und kann von Deinen Zeilen nur die Hälfte erklären. Sprich: Was tust Du da?

Kommentar hinzufügen