Erfassungsausgabegerät in LaTeX
-
03-07-2019 - |
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
\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.
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.