
이 질문은 Plain TeX에 관한 것입니다.~ 아니다유액. 다음 예를 고려하십시오.
\pdfpagewidth 8.5 in
\pdfpageheight 11 in
foobar
\bye
아래에서는 pdftex
정상적으로 작동합니다. 그러나 실행하려고 하면 다음과 같은 불쾌한 오류가 발생합니다 tex
.
! Undefined control sequence.
l.1 \pdfpagewidth
8.5 in
tex
가 아닌 아래에서 실행되는 경우 이 두 줄을 실행하지 않도록 내 문서를 작성할 수 있습니까 pdftex
?
답변1
실행 파일 은 tex
"원래 Knuth TeX"를 실행하지만 기본 요소 \pdfpagewidth
입니다 pdftex
.
보통
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfpagewidth\endcsname\relax
\else
\pdfpagewidth 8.5 truein
\pdfpageheight 11 truein
\fi
할 것입니다. 그 이후에는 \pdfpagewidth
처음 \pdfpageheight
부터 정의되지 않은 경우 정의되지 않습니다.
Plain TeX와 함께 사용할 수 있는 일부 LaTeX 패키지도 있습니다. Knuth TeX의 독특한 특징은 e-TeX 확장 기능 이 ifetex
없다는 점입니다. 그래서 당신은 할 수 있습니다
\input ifetex.sty
그리고 할
\ifetex
<code for non Knuth TeX>
\else
<code for Knuth TeX>
\fi
<code for non Knuth TeX>
다음을 사용하여 PDF 및 DVI 출력과 구별할 수 있습니다 .
\input ifpdf.sty
그리고 제공된 \ifpdf
조건부. 또한 ifxetex.sty
및 ifluatex.sty
; 이들 모두는 \input if<...>.sty
.
"올인원" 패키지도 있지만 그 구현은 , 및 iftex.sty
와 관련하여 매우 기본적입니다 . e-TeX 확장을 확인하는 방법은 제공하지 않습니다.ifpdf
ifxetex
ifluatex