代码之家  ›  专栏  ›  技术社区  ›  David Z

乳胶中检测输出装置

  •  5
  • David Z  · 技术社区  · 15 年前

    在LaTex样式/类文件中,是否有方法检测正在使用的输出设备(或至少具有哪些功能)?原因是,我正在编写一个类文件,在其中我想使用一些特定于PostScript的包(例如 pstricks )如果有PostScript,但如果我只是写

    \RequirePackage{pstricks}
    

    当然,如果我用 pdflatex . 所以理想情况下,我正在寻找我可以使用的东西

    \if@postscriptokay\RequirePackage{pstricks}\fi
    

    这似乎是可能的,因为我知道 pgf 可以改变他们的行为,使用基于输出设备的适当图形命令,但我已经做了一些谷歌搜索,并签入了我的乳胶书,还没有找到一种方法。

    4 回复  |  直到 15 年前
        1
  •  7
  •   Sophie Alpert    15 年前
    \usepackage{ifpdf}
    
    \ifpdf
      % nothing
    \else
      \RequirePackage{pstricks}
    \fi
    
        2
  •  6
  •   pts    15 年前

    您可以像这样检测pdfex(这是 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 . 您可以在加载任何这些包之后检查这个宏。

        3
  •  3
  •   Damien Pollet    15 年前

    看看包裹 pstool auto-pst-pdf . 它们是用来帮助使用的 pstricks 和pdflatex的朋友。

        4
  •  1
  •   bluebrother    15 年前

    如果您正在使用 KOMA-Script 包(我真的可以推荐,除非您需要使用不同的样式),您已经有了一个宏: \ifpdfoutput{pdf output}{dvi output} 在该包中定义。如果没有,使用 ifpdf 已经提到的包装。