質問

LaTeXスタイル/クラスファイルで、どの出力デバイスが使用されているか(または少なくともどのデバイスが持っているか)を検出する方法はありますか?その理由は、Postscriptが利用可能な場合にPostscript固有のパッケージ(たとえば pstricks )を使用するクラスファイルを記述しているが、私が記述しただけの場合

\RequirePackage{pstricks}

もちろん、 pdflatex でドキュメントをコンパイルしている場合、悪いことが起こります。理想的には、私が使用できるものを探しています

\if@postscriptokay\RequirePackage{pstricks}\fi

pgf のようなパッケージは、出力デバイスに基づいて適切なグラフィックスコマンドを使用するように動作を変更できることを知っているため、これが可能にならなければならないようですが、Google検索をいくつか行って、 LaTeXの本で、方法が見つかりませんでした。

役に立ちましたか?

解決

\usepackage{ifpdf}

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

他のヒント

このようにpdfTeXを検出できます(これは ifpdf.sty が行うことです):

\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、およびpgf.styには、独自の自動検出メカニズムが組み込まれています。異なるドライバーファイル( pdftex.def hpdftex.def )自動検出とパッケージオプションに基づきます。これらのいずれかを.texファイルにロードする場合、ロードしたドライバーの情報を取得してください。関連するドライバーファイルは次のとおりです。

/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

pgf.sty および graphicx.sty のドライバーの名前は、マクロ \ Gin @ driver に保存されます。これらのパッケージのいずれかをロードした後、このマクロを検査できます。

パッケージ pstool をご覧ください。 auto-pst-pdf 。彼らはpdfLaTeXで pstricks や友人を使うのを助けるためにここにいます。

scroll top