在LaTeX样式/类文件中,有没有一种方法可以检测正在使用的输出设备(或者至少它具有哪些功能)?原因是,我正在编写一个类文件,如果Postscript可用,我想在其中使用一些特定于Postscript的包(例如pstricks),但如果我只是写
\RequirePackage{pstricks}当然,如果我用pdflatex编译文档,就会发生不好的事情。所以理想情况下,我想找一些我可以使用的东西,比如
\if@postscriptokay\RequirePackage{pstricks}\fi这似乎是有可能的,因为我知道像pgf这样的软件包可以改变它们的行为,根据输出设备使用适当的图形命令,但我已经在谷歌上搜索了一些,并检查了我的LaTeX书籍,但还没有找到方法。
发布于 2009-05-03 07:19:39
\usepackage{ifpdf}
\ifpdf
% nothing
\else
\RequirePackage{pstricks}
\fi发布于 2009-05-03 07:21:08
您可以像这样检测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\figraphicx.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.defpgf.sty和graphicx.sty的驱动程序名称存储在宏\Gin@driver中。您可以在加载这些包之后检查此宏。
发布于 2009-05-03 12:28:38
看一下pstool和auto-pst-pdf包。他们来这里是为了帮助使用pstricks和pdfLaTeX的朋友。
https://stackoverflow.com/questions/816482
复制相似问题