Wie konfiguriere und verwende ich pdflatex mit LyX?

May 25th, 2008 by matthias

1. Einleitung

Das folgende Dokument ist eine Anleitung zur Verwendung von LyX und pdfLaTeX. Die Lizenz dieses Dokuments ist public domain. Ergänzungen und Korrekturen zu diesem Dokument bitte in den Kommentaren! Auch Tipps aus eigener Erfahrung mit pdflatex und LyX sind gern gesehen!

2. Installation notwendiger Pakete

Die folgende Anleitung gilt für SuSE Linux 7.2 oder höher.

Es werden bei SuSE Linux 7.2 die folgenden Pakete aus der Serie tex (YaST1) bzw.
benötigt:

  • lyx
  • te_ams
  • te_cont
  • te_latex
  • te_pdf
  • te_pscm
  • tetex
  • transfig
  • xfig

3. pdfLaTeX konfigurieren

  1. Dokumentation von pdfLaTeX. Die Dokumentation von pdflatex ist /usr/share/doc/packages/te_latex/texmf/pdftex/base/pdftexman.pdf und /usr/share/doc/packages/te_latex/texmf/pdftex/base/pdfTeX-FAQ.pdf.
  2. Font-Mapping. Alle in einem LaTeX-Dokument verwendeten Schriftarten sollen auch im Adobe Type1-Format vorliegen. Nur solche Schriftarten werden im Acrobat Reader auf dem Bildschirm in guter Qualität angezeigt. Ist eine LaTeX-Schriftart nicht in einer Adobe Type1-Version vorhanden, so wird aus ihr eine Adobe Type3-Version (Bitmap-Schriftart) erzeugt und diese für die PDF-Datei verwendet. Acrobat Reader zeigt solche Type3-Schriften jedoch in sehr unleserlicher Qualität an, druckt sie jedoch recht ordentlich.
    Die normalerweise benutzten LaTeX-Schriftarten sind die europäischen ComputerModern-Fonts (ecfonts 1.0, vgl. /usr/share/texmf/fonts/source/jknappen/ec/). Das Paket cm-super enthält die Adobe Type1-Versionen all dieser Schriftarten, d.h. man muss es installieren:

    • Download von cm-super: Einfach die Adresse
      ftp.uni-bielefeld.de/pub/tex/fonts/ps-type1/cm-super.tar.gz verwenden.
      Die Paketgröße beträgt etwa 55MB.
    • Wer einen anderen CTAN-Mirror verwenden will, gehe zuerst auf
      www.ctan.org, wähle den Link »Look through«. Man navigiere sich durch die Links dann zu /fonts/ps-type1/cm-super/ und wähle den Link »entire directory«. Zu gegebener Zeit kann man dann noch den gewünschten CTAN-Mirror auswählen und erhält dann das Paket.
    • Man installiert das Paket nach den beiliegenden Installationsanweisungen.
    • Zum Abschluss der Installation muss man die ls-R-Datenbank des TeX-Systems erneuern, was auch der cron-Daemon täglich tut. Dazu ruft man das Skript mktexlsr auf. So finden LaTeX-Komponenten neu installierte Dateien, von denen nur der Name ohne Verzeichnis angegeben wird, z.B. Fonts in den FontMapping-Tabellen. Vergleiche zur ls-R-Datenbank die Dokumentation in /usr/share/texmf/doc/programs/kpathsea.pdf, Abschnitt 3.4.1 ‘ls-R’. Denn etliche Dateien werden nur in der ls-R-Datenbank und nicht auf Festplatte gesucht, wie die Zeichenkette »!!« in den von pdflatex -k 255 <datei.tex> ausgegebenen Suchpfaden zeigt. Die ls-R-Datenbank ist /var/lib/texmf/db/ls-R.
    • Nach der Installation muss man noch die FontMapping-Tabelle pdftex.map anpassen oder sogar neu erzeugen; auf diese Datei wird in der Konfigurationsdatei pdftex.cfg verwiesen. Man wechselt dazu ins Verzeichnis /var/lib/texmf/dvips/config/ und kopiert alle .map-Dateien aus dem Paket cm-super hierhin. Diese Dateien fügt man dem Skript updmap im entsprechenden Abschnitt hinzu und ruft es dann in diesem Verzeichnis auf: ./updmap. Die entstandene Datei pdftex.map kopiert man nun noch nach /var/lib/texmf/pdftex/config/.
  3. Um zu testen, ob die pdftex-Installation inkl. der Einrichtung der FontMapping-Tabelle gelungen ist, wechselt man ins Verzeichnis /usr/share/doc/te_latex/texmf/pdftex/base/ und führt aus: pdftex example.tex. Es sollte eine pdf-Datei erzeugt werden, die Adobe Type1 Fonts enthält; man kann dies im Dialogfeld »File | Document Info | Fonts ...« im Acrobat Reader nachprüfen: Hier muss unter »Type« stehen »Type 1« und nicht »Type 3«.

4. hyperref mit pdfLaTeX einrichten

Mit hyperref werden alle dokumentinternen Querverweise, Quellenangaben und Internet-Links zu Hyperlinks in der PDF-Datei. Das Paket hyperref ist in TeTeX, der TeX-Distribution von SuSE, bereits enthalten und wurde bereits mit installiert. Die Dokumentation zum Paket hyperref ist /usr/share/doc/packages/te_latex/texmf/latex/hyperref/manual.pdf

Um Hyperlinks zu erhalten, muss der LaTeX-Vorspann einer TeX-Datei etwa folgendes enthalten. In LyX gibt man diesen Text im Dioalogfeld »Layout | LaTeX Vorspann« ein, er wird wie er ist beim Export in die LaTeX-Datei übernommen:

\usepackage{hyperref}
\hypersetup {
   pdftex=true,
   hyperindex=true,
   colorlinks=true,
   bookmarks=true,
   bookmarksnumbered=false,
   pdfpagemode=None,
   bookmarksopen=false,
   pdftitle=Vorlesungsmodul Praktische Mathematik,
   pdfauthor=Matthias Ansorg,
   pdfcreator=pdfTeX (Web2C 7.3.1) 3.14159-0.13d,
   pdfstartview=FitBH
}

5. LyX konfigurieren und verwenden

Ich empfehle dringend, das beim ersten Start angezeigte Tutorial von LyX und auch die einführenden Kapitel der Dokumentation zu lesen, um LyX bedienen zu lernen. Es gibt einige wichtige Unterschiede zwischen LyX und einer normalen Textverarbeitung!

Hat man ein Dokument in LyX erstellt, aus dem jetzt ein PDF-Dokument werden soll, so geht man folgendermaßen vor: In LyX ruft man den Menüpunkt »Datei | Exportieren | LaTeX« auf, wechselt in einem Terminal in das Verzeichnis der exportierten Datei und gibt den Befehl »pdflatex <dateiname>.tex« auf. Man sollte nicht direkt den Menüpunkt »Datei | Exportieren | PDF (pdflatex)« in LyX aufrufen, denn hier benötigt pdflatex mehrere hundert mal (!) so lange, um das Dokument zu berechnen. Das liegt irgendwie daran, dass dann alles in einem temporären Verzeichnis abläft. Dasselbe Verfahren wendet man an, wenn man ein dvi-Dokument aus einem LyX-Dokument erzeugen will.

Empfehlenswerte Layout-Einstellungen in LyX unter »Layout | Dokument ...«:

  • LaTeX-Dokumentenklasse
    • »article« für normale Anforderungen.
    • »article (AMS, sequential numbered)« für rein mathematische Dokumente.
  • Sprache german
  • Anführungszeichen »text« doppelt.
  • Seite A4 Hochformat, verwende Paket Geometry
  • »Extras | Plazierung von Floats | tbp«
  • »Extras | AMS Math benutzen« nur, wenn besondere, sonst nicht verfügbare mathematische Zeichen benötigt werden.

Mögliche Standards für die Benennung der Labels für Querverweise in LyX:

  • Formeln, Gleichungen: eq.<name>
  • Beispiele im AMS-Stil Example: exp.<name>
  • Definitionen im AMS-Stil Definition: def.<name>
  • Abbildungen: Abb_<dateiname-ohne-endung>

6. Grafiken verwenden zusammen mit LyX und pdfLaTeX

Alle Grafikdateien, die in Dokumenten eingebunden werden, die mit pdflatex
kompiliert werden sollen, müssen (!) im Format PDF sein. Weil pdflatex im
Gegensatz zu LaTeX alles nach dem ersten Punkt im Namen einer Datei als ihre
Endung betrachtet und PDF-Dateien an der Endung .pdf erkennt, dürfen die
einzunbindenden PDF-Dateien keine 2 Punkte im Dateinamen haben.

Posted in DTP, LyX & LaTeX, Sprache: Deutsch, alle Artikel | No Comments »

Wie kann ich hyperref zusammen mit pdflatex verwenden? Ich erhalte den Fehler »pdfTeX error (ext4): link annotations can’t be nested.« (bei jedem Backend-Treiber).

May 25th, 2008 by matthias

Die genaue Fehlermeldung ist, egal welchen Backend-Treiber ich für
hyperref verwende (hypertex oder pdftex):

pdfTeX error (ext4): link annotations can't be nested.
    <to be read again>
                 \endgroup

In LaTeX gibt es zwei verschiedene Arten von Befehlen: fragile und
robuste. Bei ihrer Verwendung ist im Normalfall zu beachten: Kommt ein fragiler
Befehl in einem »moving argument« vor, so ist er mit einem unmittelbar
vorausgehenden \protect -Befehl zu schützen. Ein
»moving argument« ist ein Text (Argument eines Befehls), der
an andere Stellen im Dokument gesetzt werden kann - hauptsächlich
die Argumente von \caption{ } (tauchen wieder in der Abbildungsliste
auf), \section{ }, \subsection{ } und
\subsubsection{ } (tauchen wieder im Inhaltsverzeichnis auf).

Für pdfLaTeX bedeutet das: Ein »moving argument« wird im
Normalfall von hyperref zu einem Hyperlink gemacht. Enthält es selbst
einen Link, so müssten Links geschachtelt werden, was nicht möglich ist.
Genau darüber beschwert sich pdfLaTeX: »link annotations can’t be
nested«. Einige Fälle, in denen dieser Fehler auftrat, waren z.B.:

  • \ref{ } innerhalb von \caption{ }
  • \ref{ } innerhalb von \subsubsection{ }
  • \cite[ ]{ } innerhalb von \subsubsection{ }

Die Zeile, in der pdfLaTeX den Fehler anmerkt, stimmt ganz und gar nicht mit der
Zeile überein, die den Fehler enthält. Man muss den Fehler also
selbst zurückerfolgen.

Dazu kopiert man das Dokument (als .tex-Datei!) mit allen benötigten
Abbildungen usw. in einen eigenen Testordner und entfernt dann
stückweise die \ref { } und \cite[ ]{ }
-Befehle aus der Datei. Das geschieht effektiv mit Hilfe des vi-Befehls
:%s/\\ref{.*}//gc, den man einfach nach dem Aufruf von
vi <dateiname&gt.tex eingibt und dann einige Ersetzungen
mit y bestätigt. Man behält sich jeweils die Dateiversion vor dem
letzten Schritt der Ersetzungen, versucht pdflatex laufen zu lassen und
vergleicht die Datei mit dem letzten Backup, wenn der Lauf gelang: diff
<dateiname>.tex <dateiname>Backup1.tex
. Die Ausgabe zeigt
dann, wo der Fehler liegt.

Achtung: Nur jeder zweite pdflatex-Lauf misslingt, denn nur in jedem zweiten
Lauf sind ungelöste Referenzen vorhanden, die zu Hyperlinks konvertiert
werden sollen.

Um diesen Fehler nicht auftreten zu lassen, verwende man keine Hyperlinks in
»moving arguments«. Es gibt auch noch die (von mir noch nicht getestete)
Möglichkeit, alternative Zeichenketten anzugeben:

\documentclass{article}
\usepackage{url}
\usepackage[pdftex]{hyperref}
\begin{document}
\tableofcontents
\section{New files at \texorpdfstring{%
   \protect\url{www.franken.de}}{%
   \tetxtt{www.franken.de}}}
\end{document}

Posted in DTP, LyX & LaTeX, Sprache: Deutsch, alle Artikel | No Comments »

Woran liegt es wenn ich LaTeX unter Debian testing nicht installieren kann?

April 29th, 2008 by matthias

Das Problem: bei der Installation von tetex-bin 3.0-13 tritt folgender Fehler auf: »E: tetex-bin: Unterprozess post-installation script gab den Fehlerwert 1 zurück«. Weil die Installation dieses Paketes also fehlschlägt können die davon abhängigen Pakete tetex-extra und lyx* nicht installiert werden.

Dieser Fehler bestand in früheren Versionen nicht. Versuche also ein Downgrade. LyX benötigt tetex-bin ab 2.0.2-11. tetex-extra 3.0-13 benötigt tetex-bin ab 2.99. Solche Versionen findet man üblicherweise unter packages.debian.org/cgi-bin/search_packages.pl?searchon=names&version=all&exact=1&keywords=tetex-bin . Wenn dieser Dienst nicht funktioniert, suche man auf einem beliebigen Mirror-Server von Debian; hier sind meist viele Versionen eines Pakets zugleich erhältlich, im Verzeichnis /pool.

Notwendige Änderungen:

  • tex-common entfernen (denn in Konflikt mit tetex-bin bi 3.0-4)
  • tetex-base 2.0.2c-9 herunterladen und mit dpkg -i installieren
  • tetex-bin 2.0.2-31 herunterladen und mit dpkg -i installieren
  • tetex-extra 2.0.2c-9 herunterladen und mit dpkg -i installieren
  • LyX-Pakete mit synaptic installieren
  • Versionen von tetex-base, tetex-bin, tetex-extra in synaptic sperren

Posted in LyX & LaTeX | No Comments »

Wie kann ich am Besten Vektorgrafiken aus OpenOffice.org Draw in LyX / LaTeX einbinden?

April 15th, 2008 by matthias

Man exportiere aus OpenOffice.org Draw als EPS und füge die EPS-Grafik in LyX ein. Dieser Weg ist wesentlich besser als der Export und Import über PDF. Denn PDF-Exporte aus OpenOffice.org Draw sind evtl. 5-6mal größer als die entsprechenden (sogar noch unkomprimierten) EPS-Exporte. Das liegt möglicherwiese daran, dass OpenOffice.org Draw beim PDF-Export Kreise in Polygone auflöst. Bei Verwendung von EPS kann also die resultierende Datei klein genug gehalten werden.

Export und Import über SVG funktioniert ebenfalls nicht gut, weil LyX SVG-Dateien als Pixelgrafiken importiert.

Posted in LyX & LaTeX | No Comments »

Wo kann ich eine Übersicht aller mathematischen Symbole von LaTeX finden?

April 10th, 2008 by matthias

In der Datei /usr/share/doc/packages/te_latex/texmf/latex/general/symbols.dvi

Posted in LyX & LaTeX | No Comments »

Welche Hilfen gibt es zum Debugging bei pdfLaTeX?

April 10th, 2008 by matthias

  • pdflatex gibt am Anfang eines Durchlaufs an, welche Konfigurationsdatei verwendet wird (ggf. die Ausgabe anschauen mit vi basename.log). Dies ist z.B. /var/lib/texmf/pdftex/config/pdftex.cfg und damit nicht (!) die Datei, die nach der Dokumentation verwendet werden würde (nämlich unter Verwendung der Pfade in TEXINPUTS, hier zuerst ~/.TeX/, also die Datei ~./TeX/pdftex.cfg). In dieser Konfigurationsdatei wird angegeben, welche FontMapping-Dateien verwendet werden!
  • In einigen Situationen sehr hilfreich ist der Aufruf von pdflatex mit der Option -k 255; dies liefert sehr viele Debug-Informationen.
  • FontMapping: pdflatex gibt alle bei einem Durchlauf benutzten Fonts am Ende seiner Ausgabe aus. Hat hier ein basename die Endung *.pfb, so war das Mapping auf einen Adobe Type1-Font erfolgreich, hat er die Endung *.*pk, so wurde noch ein Bitmap-Font verwendet.

Posted in LyX & LaTeX | No Comments »

Wie erreiche ich, dass PDF-Abbildungen bei Einbindung in ein pdflatex-Dokument nicht gedreht sind?

April 10th, 2008 by matthias

Das Seitenformat der PDF-Datei muss Hochformat (Portrait) sein. Wurde die Datei mit dem Grafikprogramm xfig erstellt und dort als PDF-Datei exportiert, so muss die Einstellung des Seitenformats (Voreinstellung Landscape) auf Portrait geändert werden. Diese Änderung während des Exportierens kann auch direkt in Xfig abgespeichert werden, wenn man die Nachfrage entsprechend beantwortet. Das sollte man auch tun, denn die Menüoperation zum Verstellen des Formats funktioniert in Xfig nicht (»View | Portrait/Landscape«). Um das aktuelle Seitenformat in xfig nachzuprüfen, zoomt man so weit hinaus (Taste »z«), bis man die Seitenbegrenzungslinien sehen kann.

Posted in LyX & LaTeX | No Comments »

Wie kann ich herausfinden, welcher Latex-Befehl einem mathematischen Symbol entspricht, das in LyX über »Einfügen :: Mathe :: Mathematische Symbole« eingefügt wurde?

April 7th, 2008 by matthias

Man verlasse den Mathematik-Modus, kopiere die gesamte Formel in die Zwischenablage und füge sie nicht durch Strg-v, sondern durch Klick mit der Mitteltaste in den Fließtext ein. Dann nämlich wird der Inhalt der Zwischenablage nicht mehr von LyX interpretiert, d.h. als Klartext und nicht als Formel im Mathematikmodus eingefügt. Hat man so den Latex-Befehl zu einem mathematischen Symbol herausgefunden, kann man es im Mathemtikmodus von LyX in Zukunft schneller einfügen, indem man den Latex-Befehl eintippt, beginnend mit »\«.

Posted in LyX & LaTeX | No Comments »

Wie kann ich in LyX mit dem Minibuffer nur eine schließende Klammer einfügen?

April 7th, 2008 by matthias

Man kann als Parameter für math-delim im Minibuffer statt den Zeichen für die Klammern auch
ihren dezimalen ASCII-Code übergeben. Soll eine Seite ohne Klammer bleiben, schreibt man dafür
einfach 46 (ASCII-Code des Leerzeichens). Soll die schließende Klammer fehlen, kann man auch das
zweite Argument ganz weglassen. Um nur eine schließende Klammer zu erzeugen, müsste man also etwa
folgendes eingeben:

  1. math-delim 46 }

Posted in LyX & LaTeX | No Comments »

Wie kann ich in LyX mehrzeilige Gleichungen in Tabellenzellen verwenden? Ich erhalte die Fehlermeldung »missing \endgroup inserted« beim LaTeX-Lauf.

April 7th, 2008 by matthias

Es ist fraglich, ob \begin{eqnarray*} mehrzeilige_Gleichung \end{eqnarray*} überhaupt in Tabellenzellen verwendet werden kann. Man behelfe sich mit normalen Gleichungen (Strg+m), in denen man eine Matrix (ALT-x math-matrix 1 3) verwendet. Wie in mehrzeiligen Gleichungen kann der Inhalt mit Strg+Tab ab dem Cursor in die nächste Zelle geschoben werden und mit Strg+Return können neue Zeilen an die Matrix angefügt werden. Man sollte auch kein DisplayMath-Environment (Strg-Shift-m) in Tabellenzellen verwenden, weil aufgrund eines Fehlers in LyX ein Umbruch nach dem einleitenden \[ erfolgt und das die LaTeX-Fehlermeldung »mission $ inserted« produziert.

Posted in LyX & LaTeX | No Comments »