(La)TeX: Erkennen in welchem Umfeld übersetzt wird.


Sie sind hier: StartTipps und HinweiseAusgabeformat


TeX, LaTeX oder LaTeX2e?
DVI oder PDF?
→→ Paket-orientierte Lösung
Zum selbst austesten


Manchmal ist es notwendig, das ein Text erkennt in welchem Umfeld gerade eine Übersetzung erfolgt.

TeX, LaTeX oder LaTeX2e?

Wenn es nur darum geht, sicherzustellen, dass ein LaTeX-Dokument nicht versehentlich mit Plain-TeX bearbeitet wird oder umgekehrt, sollte so etwas reichen:
\ifx\NeedsTeXFormat\undefined%
  \ifx\documentstyle\undefined%
    % Es wird weder LaTeX2e noch LaTeX2.09 verwendet
    \message{You're not using LaTeX2e or LaTeX2.09}
  \else
    % Es wird LaTex2.09 verwendet
    \message{You're not using LaTeX2.09}
  \fi
\else
  \message{You're using LaTeX2e}
\fi

DVI oder PDF?

Kleine Falle: mit pdfLaTeX kann auch dvi erzeugt werden. Inzwischen wird in den vielen Distributionen auch zur DVI-Erzeugen pdfelatex genutzt. Das man in diese Falle läuft ist relativ wahrscheinlich.

Der folgende Code schaut ob pdfLaTeX oder LaTeX genutzt wird und setzt denn Schalter \ifpdf. Wird pdfLaTeX genutzt, wird auch pdf erzeugt.
\newif\ifpdf
\ifx\pdfoutput\undefined
  \pdffalse % we are not running PDFLaTeX
  \message{LaTeX is used.}
\else
  \pdfoutput=1 % we are running PDFLaTeX
  \pdftrue
  \message{pdfLaTeX is used}
\fi
Etwas komplexer wird es, wenn man pdfLaTeX auch die Erzeugung von DVI erlauben will.
\newif\ifpdf
\ifx\pdfoutput\undefined
  \pdffalse % we are not running PDFLaTeX
  \message{LaTeX is used.}
  %\LaTeX\ mit dvi
\else % we are running PDFLaTeX
  pdf\LaTeX\ mit
  \message{pdfLaTeX is used}
  \ifnum \pdfoutput=0
    \pdffalse
    %DVI-output
  \else
    \ifnum\pdfoutput=1 % we are running PDFLaTeX
    \pdftrue
    %PDF-Output
    \fi
  \fi
\fi

Von der Verwendung des obigen Codes kann eigentlich nur abgeraten werden. Zum einen stellt sich die Frage wozu man es wirklich braucht.

Paket-orientierte Lösung

Bei Verwendung von Koma-Klassen gibt es das Makro \ifpdfoutput.

\ifpdfoutput{
                  % PDF wird genutzt
                  }{
                  % Kein PDF
                  }
Ansonsten gibt es auch das Paket ifpdf.sty.

Zum selbst austesten

Testdokument.tex