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} \fiEtwas 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.