2009-05-03 4 views
5

LaTeX 스타일/클래스 파일에서 어떤 출력 장치가 사용되고 있는지 (또는 적어도 어떤 기능이 있는지)를 감지 할 수있는 방법이 있습니까? 그 이유는 내가 어떤 포스트 스크립트 특정 패키지를 사용하고자하는 클래스 파일을 쓰고 있어요, (예 pstricks) 포스트 스크립트 사용할 수 있지만 난 그냥 다음LaTeX에서 출력 장치 감지

\RequirePackage{pstricks} 

를 작성하는 경우 물론 나쁜 일이 일이 일어날 경우 나는 pdflatex으로 문서를 컴파일 중입니다. 그래서 이상적으로 나는

\[email protected]\RequirePackage{pstricks}\fi 

내가 출력 장치에 따라 적절한 그래픽 명령을 사용하는 자신의 동작을 변경할 수 있습니다 pgf 같은 패키지를 알고 있기 때문에 가능해야이 보인다처럼 사용할 수있는,하지만 '뭔가를 찾고 있어요 일부 Google 검색을 수행하고 LaTeX 책을 체크인했지만 방법을 찾지 못했습니다.

+0

나는 이것이 최상의 조건으로 언급되었는지 확신하지 못한다. 소스를 처리하는 프로그램 (예 : ifpdf)을 감지 할 수 있지만 '출력 장치 감지 중'이라고 설명하지는 않습니다. YMMV. 그러나 더 명확한 공식에 대한 좋은 제안은 없습니다. – dmckee

답변

7
\usepackage{ifpdf} 

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

이것이 최선의 방법입니다. 또한 ifxetex, ifluatex를 참조하십시오. –

6

당신은 (이 ifpdf.sty가하는 일이다)이 같은 pdfTeX을 감지 할 수 있습니다.

\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.defhpdftex.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.stygraphicx.sty에 대한 드라이버의 이름은 매크로 \[email protected]에 저장됩니다. 이러한 패키지를로드 한 후이 매크로를 검사 할 수 있습니다.

+0

+1 설명이 좋지만 실제로 ifpdf를 사용하는 것이 더 쉽습니다 (그 이유는 다른 답변을 받아 들였기 때문입니다). –

1

KOMA-Script 패키지를 사용하는 경우 (다른 스타일의 코스를 사용해야하는 경우가 아니면 권장할만한) 이미 매크로가 있습니다. \ifpdfoutput{pdf output}{dvi output}이 해당 패키지에 정의되어 있습니다. 그렇지 않은 경우 이미 설명한 것처럼 ifpdf 패키지를 사용하십시오.

3

pstoolauto-pst-pdf 패키지를 살펴보십시오. 그들은 pstricks과 pdfLaTeX와 친구들을 돕기 위해 왔습니다.

+0

사실 나는 pstool을 pstricks와 함께 사용 해본 적이 한번도 없었습니다. 아마 사용자 친화적 인 만들기 위해 조금 더 접착제가 필요합니다. 그렇지 않으면 알려주세요! –

관련 문제