문제
라텍스 스타일/클래스 파일에 사용되는 출력 장치 (또는 적어도 어떤 기능이 있는지)를 감지하는 방법이 있습니까? 그 이유는 게시물 스크립트 별 패키지를 사용하고 싶은 클래스 파일을 작성하고 있기 때문입니다 (예 : pstricks
) PostScript를 사용할 수 있지만 글을 쓰는 경우
\RequirePackage{pstricks}
그런 다음 물론 문서를 컴파일하는 경우 나쁜 일이 발생합니다. pdflatex
. 그래서 이상적으로는 내가 사용할 수있는 것을 찾고 있습니다.
\if@postscriptokay\RequirePackage{pstricks}\fi
내가 같은 패키지를 알고 있기 때문에 이것이 가능 해야하는 것 같습니다. pgf
출력 장치를 기반으로 적절한 그래픽 명령을 사용하도록 동작을 변경할 수 있지만 Google 검색을 수행하고 라텍스 책을 확인했지만 방법을 찾지 못했습니다.
해결책
\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 그리고 자동 PST-PDF. 그들은 사용하기 위해 여기에 있습니다 pstricks
그리고 pdflatex와 친구.
당신이 사용하는 경우 코마 스크립트 패키지 (물론 다른 스타일을 사용하지 않으면 실제로 권장 할 수 있습니다)는 이미 매크로가 있습니다. \ifpdfoutput{pdf output}{dvi output}
해당 패키지에 정의되어 있습니다. 그렇지 않은 경우 사용하십시오 ifpdf
이미 언급 된 패키지.