21
Sep 07

LaTeX Beamer Paket

Zum Erstellen von Präsentationen sehr zu Empfehlen (besonders dann, wenn sie viele Formeln enthalten) ist das LaTeX-Beamer Packet. Vielleicht werde ich in Kürze mehr dazu schreiben. Bis dahin mag ich auf eine Reihe sehr guter Anleitungen und Tipps hinweisen:


04
Aug 05

Interessantes zu TeX aber auch LaTeX

Findet man im Comprehensive Tex Archive Network CTAN. Definitiv lesenswert ist das LaTeX2ε-SündenregisterPDF, ein Artikel, der sich mit veralteten Packeten und anderen Don't's beschäftigt. Dort gibt es auch andere deutsche Dokumente und Anleitungen.

Obwohl es in Richtung TeX geht, lohnt sich auch der Blick in das TeX-Showcase. Auf dieser Seite wird ausgestellt, was man alles machen kann, mit TeX.

Zu guterletzt der Hinweis auf das LaTeX2ε-Cheat SheetPDF. Ein Must-Have für alle, die nicht sooo häufig texen und dazu neigen, Befehle zu vergessen. Dieses Cheat Sheet notiert die wichtigsten Strukturen und Befehle auf zwei gut auszudruckenden Seiten.


21
Jun 05

Tabellen farbig hinterlegen

Die einfachste Methode ist die Verwendung des Packetes \colortbl. Dieses stellt einem zwei Befehle zur Verfügung, mit denen man Zeilen und Spalten farbig hinterlegen kann. Es handelt sich hierbei um
\columncolor[Farbmodell]{Farbe}[Linker Overhang][Rechter Overhang]
\rowcolor[Farbmodell]{Farbe}[Linker Overhang][Rechter Overhang]

Wie immer, die Optionen in den eckigen Klammern sind optional ;). Man kann mit der ersten Option Farben direkt definieren, dort also, wie schon in Farbe in LaTeX, das Farbmodell (RGB, gray oder CMYK) angeben und in der geschweiften Klammer die Farbwerte. Alternativ verwendet man zuvor definierte Farben und kann die erste Optionen-Klammer weglassen.

Wie erhält man nun farbig hinterlegte Tabellen? Eigentlich ist dies relativ einfach. Zeilen hinterlegt man mit einer Farbe, in dem man am Anfang der zu färbenden Tabelle den Befehl \rowcolor{Farbe} angibt. Dies sieht dann wie folgt aus:
\begin{tabular}{|c|c|c|}
Zelle 11 & Zelle 12 & Zelle 13 \\
\rowcolor{hellgrau} $\ldots$ & $\ldots$ & $\ldots$ \\
$\ldots$ & $\ldots$ & $\ldots$ \\
\rowcolor{hellgrau} Zelle n1 & Zelle n2 & Zelle n3 \\
\end{tabular}

Man stellt nun allerdings fest, dass die Gitterlinien teilweise verdeckt sind. Um dies zu verhindern, muss man die Option "Overhang" verwenden. Um die Gitterlinien sichtbar zu machen hilft es bei mir, den linken "Overhang" auf 5.5pt oder 0.9\tabcolsep einzustellen, der Quellcode sieht dann wie folgt aus:
\begin{tabular}{|c|c|c|}
Zelle 11 & Zelle 12 & Zelle 13 \\
\rowcolor{hellgrau}[5.5pt] $\ldots$ & $\ldots$ & $\ldots$ \\
$\ldots$ & $\ldots$ & $\ldots$ \\
\rowcolor{hellgrau}[5.5pt] Zelle n1 & Zelle n2 & Zelle n3 \\
\end{tabular}

Einfärben von einzelnen Spalten funktioniert ähnlich. Hier wird die Definition in die Spaltendefinition hinter \begin{tabular} eingefügt. Auch hier musste ich den linken Overhang anpassen, damit die Gitterlinien sichtbar waren. Der \columncolor{Farbe}[Linker Overhang]-Befehl wird in geschweifte Klammern gesetzt und mit einem größer-Zeichen '>' eingeleitet. Es steht vor der Definition der Ausrichtung einer Tabellenspalte:
\begin{tabular}{| >{\columncolor{hellgrau}[5.5pt]}c|c| >{\columncolor{hellgrau}[5.5pt]}c|}
Zelle 11 & Zelle 12 & Zelle 13 \\
$\ldots$ & $\ldots$ & $\ldots$ \\
Zelle n1 & Zelle n2 & Zelle n3 \\
\end{tabular}

Einzelne Zellen muss man mit Hilfe von \multicolumn einfärben. Eine einzelne Tabellenzeile mit einer umgefärbten Zelle sieht dann wie folgt aus:
$\ldots$ & \multicolumn{1}{>{\columncolor{hellgrau}[5.5pt]}c}{farbige Zelle}& $\ldots$ \\

Mit dem Overhang muss man evtl. etwas herumspielen. Falls jemand eine Lösung für den vertikalen "Overhang" hat (Denn auch nach oben werden Gitterlinien überdeckt), kann er sie vielleicht in den Kommentaren hinterlassen?! ;)

So, und zuguterletzt, eine Beispiel-Tex-Datei und das zugehörige PDF (27kb).


11
Jun 05

Farbe mit Latex

Man gestaltet ein Dokument, welches besondere Hervorhebungen haben soll und hätte gerne farbige Boxen - oder man will Quelltext in einem Dokument, welches sowieso nicht ausgedruckt werden soll hervorherben? Wie macht man das?

Als erstes benötigt man das Packet color. Es gibt auch noch andere Packete, die mehr Farbspiele erlauben, ich gehe jedoch erst einmal nur auf dieses ein.

Die Standartfarben, welche unterstützt werden, sind black, white, green, red, blue, yellow, cyan und magenta. Und es gibt verschiedene Möglichkeiten, irgendetwas farbig hervorzuheben.

Zum einen könnt ihr natürlich farbigen Text einbinden. Dies geschieht mit dem Befehl
\textcolor{Farbe}{Ich bin der farbige Text}
Einen farbigen Rahmen um einen Text erzeugt man wie folgt:
\fcolorbox{Rahmenfarbe}{white}{Text, der in einer Box steht, die einen Rahmen in einer von dir definierten Farbe hat}.
Wie ihr vielleicht seht, kann man in der zweiten geschweiften Klammer eine weitere Farbe eingeben. Hiermit bestimmt man die Hintergrundfarbe der Box.Will man z.b. eine Box mit gelbem Hintergrund und einem roten Rahmen, würde dies wie folgt aussehen:
\fcolorbox{red}{yellow}{Roter Rahmen um einen Text, der in einer gelben Box liegt}.

Möchte man keine gesonderte Rahmenfarbe haben, kann man natürlich die Rahmenfarbe in der gleichen Farbe definieren. Noch einfacher geht es mit dem Befehl
\colorbox{Farbe}{Text, der mit einem farbigen Hintergrund erscheinen soll}.

Innerhalb dieser Boxen kann man ganz normal weiterschreiben. Matheumgebungen, Tabllen - soweit ich dies bis jetzt festgestellt habe, ist alles möglich ^-^.

(f)colorbox hat jedoch ein großes Problem. Schreibt man einen langen Text darin, erfolgt kein automatischer Umbruch. Dies kann man beheben, in dem man eine \parbox einbettet (Dies ist wahrscheinlich nur eine von vielen Möglichkeiten, wie immer bei LaTeX ^-^''). Das ganze sieht dann wie folgt aus:
\colorbox{Hintergrundfarbe}{\parbox{0.5\textwidth}{Hier der Text, der in der Box erscheinen soll}}
Der Vorteil von \parbox ist, dass ihr gleichzeitig die Breite eurer farbigen Box einstellen könnt. Ihr könnt diese in den üblichen Angaben (px,pt,cm,...) angeben oder aber auch in einer x-fachen Textweite. 0.5\textwidth bedeutet hier: Mache die Box gerade halb so groß, wie die gesammte Breite des Textes lang ist.

Diese Box macht jedoch keine Seitenumbrüche mit, d.h. eine Box wird nur auf einer Seite bleiben. Dies ist also keine Lösung um größere Umgebungen mit einem farbigen Hintergrund zu hinterlegen.

Es gibt auch die Möglichkeit, komplette Seiten farbig zu hinterlegen. Dies geschieht mit Hilfe von
\pagecolor{Hintergrundfarbe}.
Vorsicht! Ihr müsst diesen Befehl nach der Seite die ihr farbig habt wieder "rückgängig" machen. Denn die Seitenfarbe ist für die aktuelle und alle nachfolgenden Seiten. Am einfachsten macht ihr dies, in dem ihr nach der farbigen Seite den Befehl \pagecolor{white} aufruft.

Ich will mehr Farben !? ;) Die einfachste Möglichkeit ist das Einbinden der vordefinierten Farben des named-Farbschemas. Ihr müsst dafür vor \begin{document} folgenden Befehl ausführen lassen:
\input{dvipsnam.def}
Damit wird eine Liste von vordefinierten Farben eingebunden, auf die ihr nun zugreifen könnt. Schön aufgelistet findet ihr sie in der Anleitung Graphics and Colour wiht LaTeX von Patrick W. Daly. Ihr greift auf diese Liste zu, in dem ihr hinter jeden bisher eingeführten Farbenbefehl die Option [named] einbindet. Das kann dann z.B. so aussehen:
\colorbox[named]{MidnightBlue}{\textcolor[named]{GreenYellow} {Hier ist gelbgrüner Text auf mitternachtsblauem Hintergrund}}

Natürlich könnt ihr euch auch eigene Farben definieren. Hierfür verwendet man den Befehl
\definecolor{Farbname}{Farbmodell}{Werte}.

Es stehen hier drei verschiedene Farbmodelle zur Verfügung. gray, RGB und CMYK.

Gray verwendet man, wenn man einfach Grautöne erstellen möchte. Die Werte könnt ihr zwischen 0 und 1 varrieren lassen. Setzt ihr 0 ein, erhaltet ihr Schwarz, bei 1 Weiß und dazwischen eben verschiedene Grautöne ;). Ein Hellgrau würde dann z.B. wie folgt definiert werden
\definecolor{hellgrau}{gray}{0.85}
Die so neu definierte Farbe könnt ihr genauso verwenden, wie die Standartfarben.

Richtige Farbe erhält man mit dem RGB und dem CYMK-Modell. Da das Verfahren für beide Modelle analog geht, beschreibe ich es nur für RGB.

Praktisch ist es, wenn man zur Auswahl der Farbe ein Farbtool wie z.B. PkColorPicker besitzt. Man wählt dort eine Farbe aus, und das Programm zeigt einem die RGB Werte an.

Diese müssen, da die Standartausgabe der Werte auf einer Skala von 0-255 geschieht, umgerechnet werden weil LaTeX eine Skala von 0-1 erwartet. Wir teilen also die vom Programm ausgegebenen Werte durch 255. Und geben sie in der Werteklammer in der Form: {R,G,B} an ;).

Und damit kann man dann schon ganz viel Farbe in das Dokument bringen ;).


03
Jun 05

Lange Tabellen mit longtable

Der ein oder andere kennt das Problem vielleicht. Man hat eine Tabelle, welche jedoch über eine Seitenlänge hinausragt. Was nun?

Entweder man zerstückelt sie mühevoll per Hand, oder verwendet das praktische Packet longtable. Die Tabelle bindet man mit
\begin{longtable}{|c|c|c|c|}
\end{longtable}

ein. Dazwischen kommen analog zur tabular-Umgebung die Tabelleneinträge.
\begin{longtable}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{Ich bin die Kopfzeile} \
\hline
zelle 11 & zelle 12 & zelle 13 & zelle 14 \
...
zelle n1 & zelle n2 & zelle n3 & zelle n4 \
\hline
\multicolumn{4}{|l|}{Ich bin eine Fußzeile} \
\end{longtable}

Bei diesem Code hat man jedoch nur eine Kopf und Fußzeile ganz am Anfang bzw. ganz am Ende der Tabelle. Will man jedoch auf jeder Seite eine Kopf- und Fußzeile haben, muss man diese nun einstellen. Hierbei spielen die erste Kopfzeile und die letzte Fußzeile eine gesonderte Rolle und müssen separat definiert werden.

Hierfür teilt man das Innenleben der longtable-Umgebung in 5 Bereiche ein:
{Kopf am Tabellenanfang}
\endfirsthead
{Tabellenkopf auf jeder weiteren Seite}
\endhead
{Tabellenfuß auf allen außer der letzten Seite}
\endfoot
{Tabellenfuß auf der letzten Seite}
\endlastfoot
{Inhalt der Tabelle}

Wie man sieht, wird jeder Bereich durch einen Befehl beendet, der dem Compiler sagt, um welchen Teil der Tabelle es sich handelt. Dabei kommt es nicht auf die Reihenfolge der ersten vier Bereiche an. Innerhalb der Bereiche kann man z.B. eine Beschriftung (\caption) setzten oder eine spaltenübergreifende Zelle (\multicolumn) einfügen. Will man z.B. über jeden weiteren Tabellenseite die Zeile "Fortsetzung" stehen haben, müsste der Code vor\endhead wie folgt aussehen:
\multicolumn{4}{l}{\sl Fortsetzung} \[5pt]
Hierbei sorgt die Angabe [5pt] dafür, dass die restliche Tabelle nicht direkt unter dem Text klebt, sondern dazwischen ein kleiner Abstand (5pt) eingefügt wird.

Möchte man nun z.B. eine auf jeder Seite komplett "umboxte" Tabelle haben, welche auf jeder Seite mit den Spaltenüberschriften beginnt und auf der letzten Seite mit einer Beschriftung inklusive Label endet, wie im vorhergehenden Bild, kann man folgenden Code verwenden:
\begin{longtable}{|c|c|c|c|}
\hline
Name 1 & Name 2 & Name 3 & Name 4 \
\hline
\hline
\endfirsthead
\multicolumn{4}{l}{\sl Fortsetzung} \[5pt] \hline
Name 1 & Name 2 & Name 3 & Name 4 \
\hline
\hline
\endhead
\hline
\endfoot
\hline
\multicolumn{4}{l}{\phantom{dieser Text taucht nicht auf}} \[5pt]
\caption{Die Beschriftung der Tabelle} \label{der_referenzname}
\endlastfoot
zelle 11 & zelle 12 & zelle 13 & zelle 14 \
... & ... & ... & ... \
zelle n1 & zelle n2 & zelle n3 & zelle n4 \
\end{longtable}

Auch vor der Beschriftung muss manuell etwas Leerraum eingefügt werden. Da dies nicht ohne weiteres geht, behelfe ich mir mit dem Trick eines Textes, der nicht angezeigt wird. Dies kann man mit dem Befehl \phantom erreichen. Ein Inhalt in der Zeile ist notwendig, damit man den Abstand verändern kann. Alle anderen Möglichkeiten (\vspace oder [0.2cm]) haben bei mir nicht funktioniert.

Das Ergebnis könnt ihr euch als pdf (20kb) ansehen und die dazugehörige .tex-Datei downloaden: longtable.tex.