Frage

Gibt es eine Möglichkeit, in einer LaTeX-Stil / Klassendatei, zu erkennen, welches Ausgabegerät verwendet wird (oder zumindest, welche Fähigkeiten er hat)? Der Grund dafür ist, ich bin eine Klassendatei schreiben, in dem ich einige Postscript-spezifische Pakete verwenden möchten (z pstricks), wenn Postscript verfügbar ist, aber wenn ich schreibe nur

\RequirePackage{pstricks}

dann natürlich schlechte Dinge passieren, wenn ich das Dokument mit pdflatex bin kompilieren. Also ideal für etwas, das ich suche ich wie

verwenden können,
\if@postscriptokay\RequirePackage{pstricks}\fi

Es scheint, wie dies möglich sein muss, weil ich Pakete wie pgf wissen kann, ihr Verhalten ändern entsprechende Grafikbefehle auf dem Ausgabegerät auf Basis zu verwenden, aber ich habe einige Google-Suchen durchgeführt und in meinem LaTeX Buch geprüft und habe nicht gefunden ein Weg.

War es hilfreich?

Lösung

\usepackage{ifpdf}

\ifpdf
  % nothing
\else
  \RequirePackage{pstricks}
\fi

Andere Tipps

Sie können pdfTeX wie dies erkennen (das ist, was ifpdf.sty der Fall ist):

\makeatletter
\ifx\pdfoutput\@undefined
  no pdfTeX
\else\ifnum\pdfoutput<1
  pdfTeX is outputting a .dvi file
\else
  pdfTeX is outputting a .pdf file
\fi\fi

graphicx.sty, hyperref.sty und pgf.sty haben ihre eigenen automatische Erkennung Mechanismen eingebaut. Sie eine andere Treiber-Datei laden (wie pdftex.def und hpdftex.def) basierend auf der automatische Erkennung und die Paketoption. Wenn Sie eine dieser in Ihrer .tex Datei laden, versuchen, die Informationen zu erhalten, die Fahrer sie geladen. Die entsprechenden Treiberdateien sind:

/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-*.def
/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
/usr/share/texmf-texlive/tex/latex/graphics/*.def
  /usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def

Der Name des Treibers für pgf.sty und graphicx.sty wird im Makro \Gin@driver gespeichert. Sie können dieses Makro inspizieren nach einem dieser Pakete geladen werden.

Hier finden Sie aktuelle Pakete pstool und auto-pst-pdf . Sie sind hier Verwendung pstricks und Freunde mit pdfLaTeX zu helfen.

Wenn Sie mit dem KOMA-Script Paket (was ich wirklich empfehlen kann, es sei denn, Sie einen anderen Stil natürlich verwenden müssen) Sie haben bereits ein Makro dafür: \ifpdfoutput{pdf output}{dvi output} ist in diesem Paket definiert. Wenn nicht, verwenden Sie das ifpdf Paket wie bereits erwähnt wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top