latex:experten

Dies ist eine alte Version des Dokuments!


Tutorial für Experten

Was ist der Unterschied zwischen dem Kommando 'latex' und 'pdflatex'?

Zu Beginn muss man schon mal sagen, dass heute die Unterschiede zwischen den beiden Kommandos im Detail liegen. Es ist sogar so, dass beide Kommandos symbolische Links auf den selben Interpreter - nämlich pdfTeX sind.

$ ls -la $(which latex)
lrwxrwxrwx 1 root root 6 12. Jän 2010  /usr/bin/latex -> pdftex
$ ls -la $(which pdflatex)
lrwxrwxrwx 1 root root 6 12. Jän 2010  /usr/bin/pdflatex -> pdftex

pdfTeX ist die logische Weiterentwicklung und Vereinigung von TeX (geschrieben von Donald Knuth) und eTeX (geschrieben von Peter Breitenlohner). Mit Hilfe von google kann man sich da leicht einen Tag lang beschäftigen um Historie und Ablauf der Entwicklung zu erforschen.

Wichtig ist eigentlich nur zu wissen, dass pdfTeX im Gegensatz zu seinen Vorgängern in der Lage ist direkt pdf Dateien zu erstellen. D.h. man kann damit auch pdf Features nutzen. Darüber hinaus hat man aber pdfTeX mit der Fähigkeit ausgestattet weiterhin DVI Dateien zu erstellen - das Ausgabeformat von TeX bzw. eTeX. Zusammengefasst

  • latex → erzeugt DVI Dateien
  • pdflatex → erzeugt pdf Dateien

Entscheidet man sich für die Erstellung von pdf Dateien funktionieren Pakete, die auf der Konvertierung von DVI zu PostScript aufsetzen, mit pdfTeX nicht (vor allem PSTricks). Das gilt insbesondere auch für das Einbetten von PostScript-Grafiken. Diese müssen zuvor in ein Format umgesetzt werden, das von pdfTeX unmittelbar verarbeitet werden kann (PNG, JPEG, JBIG2 oder PDF). Als Alternative zur Erzeugung von Grafiken mit LaTeX wurde das System PGF/TikZ entwickelt. (vgl. http://de.wikipedia.org/wiki/PdfTeX)

D.h. vor allem die verwendbaren Grafikformate sind eine wichtige Eigenschaft die der User zu spüren bekommt. Dabei kann man folgende Formate zuordnen (die Reihenfolge ist auch jene in der pdfTeX nach Dateiendungen sucht so fern keine angegeben wurden):

  • latex → ps, eps, tiff
  • pdflatex → jpeg, png, pdf

Da nun beide Kommandos pdftex im Hintergrund verwenden kann man auch mit pdflatex DVI Dateien erzeugen (natürlich mit allen oben genannten Einschränkungen und Unterschieden.

  pdflatex -output-format dvi datei.tex

Soll ich jetzt mit latex oder pdflatex arbeiten?

Den einzig „richtigen“ Weg gibt es nicht. Bis zu diesem „Tutorial für Experten“ haben wir bewusst ausschließlich mit pdflatex gearbeitet weil das unserer Meinung nach die modernere Vorgehensweise ist. Es gibt aber eben wie überall auch hier nicht nur Vorteile. Einige sehr interessante Features funktionieren nur mit latex. Diese tools (pstricks, psfrag, usw.) wollen wir nun hier vorstellen.

Wir können auch noch folgende „gemischte“ Vorgehensweise empfehlen:

  • Die einzubindenden Grafiken als EPS und PDF speichern, im Dokument den Dateinamen ohne .eps oder .pdf angeben. Hat man Grafiken im EPS-Format vorliegen, übernimmt das Programm epstopdf die problemlose Umwandlung nach PDF.
  • Das Dokument während der Arbeit mit latex kompilieren, die entstandene DVI-Datei kann schnell überprüft werden (mit Yap unter Windows bzw. xdvi unter Linux)
  • Sind alle Arbeiten abgeschlossen, kann mit pdflatex kompiliert werden

Zeichensatz

LaTeX bzw. pdfLaTeX sind nichts anderes als Programme die eine Datei (eine Klartextdatei) lesen (parsen) und in ein anderes Format, hier eben dvi oder pdf übersetzen.

Es ist daher notwendig, dass der Interpreter pdfTeX den Zeichensatz der Inputdatei „richtig“ interpretiert. Per default tut dies pdfTeX nach der 7-bit ASCII Tabelle. Diese Tabelle enthält keine Umlaute und auch diverse Andere Zeichen (wie z.B. ß) nicht. Will man aber jetzt in seinem Text ein ö verwenden (was ja gelegentlich vorkommen soll) und dabei nicht jedesmal \„o schreiben muss man pdfTeX sagen mit welchen Zeichensatz das ö in dem Text kodiert ist.

  1. Will man LaTeX Dateien erstellen die auf allen Systemen (Linux, BSD, Solaris, MacOS, Windows, usw.) und bei unterschiedlichen lokalen Konfigurationen (denken wir an einen Rechner in Asien) kompilieren, so muss man einen Zeichensatz auswählen der überall interpretiert werden kann. Hier hat sich Unicode UTF-8 also gute Entscheidung herauskristallisiert.
  2. Es ist einer Klartextdatei NICHT anzusehen welche Zeichenkodierung zur Interpretation verwendet werden. Für einen Computer ist eine Datei ein Gefäß voll mit 001011011101010001…. Oft werden als Standard immer 8 bit als ein Buchstabe interpretiert und mit der bereits genannten ASCII Tabelle in einen lesbaren Buchstaben umgewandelt. Das muss so nicht sein. Es gibt auch keine Regelung die sagen würde, dass z.B. die ersten Bit einer Datei die Kodierung bestimmen. Trotzdem sind einige Programme sehr gut darin mit viel Heuristik herauszufinden welche Kodierung es sein könnte. Das ist besten falls fundiertes Raten!
  3. Der Editor bestimmt den verwendeten Zeichensatz. Er schreibt die Datei in Form des Bitmusters auf die Festplatte (oder wo auch immer sonst hin). D.h. der Editor entscheidet über die „richtige“ 010110101… Folge für ein ö.

UTF-8

Unsere Empfehlung ist grundsätzlich heute nach Möglichkeit Unicode UTF-8 zu verwenden. Wichtig ist natürlich dass der Editor Unicode beherrscht. Sollte dieser keine Unicode können, dann wäre zu überlegen einen anderen (moderneren) Editor einzusetzen. Um pdfTeX nun zu erklären, dass es eine Eingabedatei vor sich hat die nach UTF-8 kodiert ist sind folgende Zeilen in der preamble notwendig

\usepackage{ucs}
\usepackage[utf8x]{inputenc}

Die auf dieser Webseite vorgestellten Editoren sollten alle Unicode tauglich sein. Manchmal kann es notwendig sein den Editor dazu zu zwingen Unicode zu schreiben. „Überprüfen“ ist wie gesagt schwierig aber man kann eine Datei (die wissentlich z.B. Umlaute enthält) mit folgenden tools auf deren Zeichensatz prüfen in dem man betrachtet ob die Umlaute richtig dargestellt werden:

  • Webbrowser (z.b. firefox): Alle modernen Browser können eine Vielzahl an Zeichensätzen. Die Datei mit dem Browser öffnen und den Zeichensatz einstellen. Bei firefox 3.6 z.b. unter „View“ → „Character Encoding“.

ISO-8859-1

Bitte nicht verwenden!. Das war der Standardzeichensatz auch unter Linux in Ländern mit lateinischem Alphabet bevor UTF-8 Einzug gehalten hat. Die zugehörige LaTeX Konfiguration

\usepackage[latin1]{inputenc} %% bitte lieber "\usepackage{ucs}" mit "\usepackage[utf8x]{inputenc}" verwenden!

CP-1252

Bitte nicht verwenden!. Unter Windows ist der CP-1252 Zeichensatz nach wie vor üblich für eine Umgebung mit lateinischem Alphabet. In sehr weiten Teilen überschneiden sich CP-1252 und ISO-8859-1 und werden daher oft vermischt. Genau genommen sind es aber 2 unterschiedliche Zeichensätze. Die zugehörige LaTeX Konfiguration

\usepackage[ansinew]{inputenc} %% bitte lieber "\usepackage{ucs}" mit "\usepackage[utf8x]{inputenc}" verwenden!

Erstellen von Präsentationen

Beamer ist eine Dokumentklasse zum erzeugen von pdf-Präsentationen. Somit muss mittels pdflatex gearbeitet werden. Um sofort in einer Umgebung die folgenden Befehle ausprobieren zu können, gibt es ein kleines Beispielprojekt. Je nach verwendeter LaTeX-Distribution muss die Beamer-Klasse eventuell noch installiert werden.

Nach erfolgreicher Installation kann begonnen werden – das Grundgerüst sieht folgendermaßen aus:

  \documentclass{beamer}
  ...
  \begin{document}
  ...
  \end{document}

Das Aussehen wird über vordefinierte Styles in der Preamble definiert. zb:

  \usepackage{beamerthemeshadow}

Einzelne Folien werden mittels \frame definiert, und mittels \frametitle beschriftet.

  \frame{
    \frametitle{Titel der Folie}
 
    ...
  }

Struktur in die Präsentation bringt man, indem man mittels \section und \subsection Folien zusammenfasst. Dies sollte man am besten jeweils außerhalb der „frames“ machen

  \section{Einleitung}
  \subsection{Theorie}
 
  \frame{...}
 
  \subsection{Beispiel}
 
  \frame{...}
  ...

Die zeitliche Abfolge von Aufzählungen wird mittels <> oder \pause gesteuert.

  \begin{enumerate}
    \item <1-> erster Eintag
    \item <2-> zweiter Eintrag
  \end{enumerate}

oder

  \begin{enumerate}
    \item erster Eintag \pause
    \item zweiter Eintrag \pause
  \end{enumerate}

Beispiele:

  • <2-4> besagt, dass in den Schritten 2-4 das Element \item zu sehen sein soll.
  • < -3> = Beginn bis 3
  • <2- > = 2 bis Ende
  • < -2, 4-6, 8- >

Mittels \visible <> kann ein Teil nur in den entsprechenden Stufen dargestellt werden, in den übrigen verschwinden sie. \only <> ist ähnlich, jedoch mit dem Unterschied, dass es die entstehende Lücke schließt, indem es nachfolgenden Text nach vor schiebt. Blöcke werden folgendermaßen gesetzt:

  \begin{block}{Beschriftung}
    Inhalt des Blocks
  \end{block}

man unterscheidet:

  • block = für Infos
  • exampleblock = für Beispiele
  • alertblock = für besonders hervorzuhebendes

Audio und Video Material kann mit dem multimedia-Packet eingebunden werden. Dazu in der Preamble:

  \usepackage{multimedia}
  \usepackage{hyperref}

und an gewünschter Stelle:

  \movie[height=3.5cm, width=4.8cm]{movie-label}{moviefile.avi}

in den Optionen können divere Einstellungen (zb: Höhe, Breite) getroffen werden. Ähnliches gilt für Sounds.

  \sound[height=3.5cm, width=4.8cm]{sound-label}{soundfile.wav}

Details zur beamer Klasse findet man im beameruserguide, bzw. wenn man „latex beamer“ googled.

Text in Grafiken ersetzen

Es gibt die Möglichkeit, Text in einer EPS-Grafik durch LaTeX-Text zu ersetzen. Zum besseren Verständnis ein Beispiel. Die obere Grafik stellt das EPS dar, wie es ein Vektorgrafikprogramm (z.B. xfig) exportiert. Die in xfig eingegebenen Zeichen „a“, „b“ und „c“ können nun beim Einbinden in LaTeX durch beliebige Zeichenfolgen ersetzt werden.

Dazu müssen die Zeichen jedoch vom Grafikprogramm auch wirklich als Schriftzeichen und weder als Bitmap noch als einzelne Linienelemente exportiert werden:

Programme, die korrekt exportieren:

Programme, die nicht korrekt exportieren:

  • Inkscape (Auf dieser Seite wird eine Methode beschrieben wie mit Inkscape trotzdem sehr elegant LaTeX Texte in Grafiken gesetzt werden können)
  • Gimp
  • CorelDraw
  • Photoshop
  • QCad
  • AutoCAD

Zusätzlich zum graphicx-Paket muß das psfrag-Paket geladen werden:

\usepackage{psfrag,graphicx}

Das obige Beispiel mit ersetztem Text wurde nun folgendermaßen erstellt:

\begin{figure}[htbp]
  \centering
    \psfrag{a}[c][c]{$a=6\unit{m}$}
    \psfrag{b}[b][l]{$b=4\unit{m}$}
    \psfrag{c}[b][r]{$c=\sqrt{a^2 + b^2}$}
    \includegraphics[width=0.5\textwidth]{./pyt.eps}
    \caption{mit ersetztem Text}
\end{figure}

\psfrag muß vor dem Einfügen der Grafik eingebunden werden. Da das Ganze in einer abgegrenzten Umgebung geschieht (hier figure, könnte jedoch auch \begin{center}\end{center} o.ä. sein), wirkt sich das Ersetzen nicht global aus, jedoch auf alle eingefügten Grafiken innerhalb der figure-Umgebung.

Der erste Parameter {a} gibt an, welche Zeichenkette zu ersetzen ist. Prinzipiell können bei \psfrag bis zu 4 Optionen angegeben werden (bzgl. Positionierung und Rotation). Die angegebenen [c],[l],[b] und [r] geben an, wie der Ersatztext horizontal und vertikal auszurichten ist: die Hypothenuse c wird durch einen etwas längeren Text ersetzt, der eventuell die Gerade überschreiben würde - deshalb wird der Ersatztext von c rechtsbündig ausgerichtet. Da sich „a“ in der Mitte der unteren Kante befindet, wird der Ersatztext zentriert.

Der nun schon oft angesprochene Ersatztext folgt zum Schluß, z.B. {$c=\sqrt{a^2 + b^2}$}. Handelt es sich beim Ersatztext um eine mathematische Formel, muß diese natürlich durch $ … $ begrenzt werden.

Erstellen von Grafiken in LaTeX

Man muss hier wieder unterscheiden mit welcher Methode man die Dateien kompiliert (näheres finden Sie in der Expertenanleitung).

  • pstricks falls mit latex kompiliert wird, also zuerst eine DVI Datei (PostScript) erstellt wird.
  • Tikz und PGF mit einer schönen Beispielseite falls mit pdflatex kompiliert wird, also direkt eine PDF Datei erstellt wird.
latex/experten.1339509292.txt.gz · Zuletzt geändert: 12.06.2012 15:54 von Michael Hammer