ifetex는 항상 그렇습니다

ifetex는 항상 그렇습니다

pdlatex저는 과 를 사용 하여 문서를 컴파일할 수 있는 문서 서문을 작업 중입니다 xelatex. \ifetex문서가 e-tex를 통과하는지 확인하는 조건은 내가 사용하는 엔진에 관계없이 항상 true라는 것을 알았습니다 .

아래는 최소한의 예입니다. 해당 eTeX used ...부분은 내가 사용하는 엔진( pdflatex, x elatex및 ) 과 관계없이 모든 결과 문서에 있습니다 latex. "PDF 사용..." 부분은 을 통해 실행된 문서에만 있습니다 pdflatex.

어떤 아이디어가 있나요? 내 생각에 일반적인 실수가 있습니까?

의 문서 \ifetex에는 단순히 \eTeXversion. 누가 이것을 설정합니까?

저는 Fedora 19를 설치하고 있으며 etex가 전혀 설치되지 않은 Fedora 20에서도 시도해 보았습니다. 동일한 동작입니다. 누군가 다른 설치에서 이를 테스트할 수 있습니까? 즉, 동작이 동일한지 여부를 확인할 수 있습니까?

주요 엔진을 통해 문서를 실행할 수 있기를 원하는 경우(필요한 경우) 문서 서문에서 엔진을 선택하는 '모범 사례'가 있습니까? 그래서 나는 if(pdf)-elsif(etex)-elsif(latex)-fi 체인을 구성하려고 합니다.

\documentclass{article}

\usepackage{ifpdf}
\usepackage{ifetex}

\begin{document}

Hello World

\ifpdf
    PDF used
\fi

\ifetex
    eTeX used; version is \the\eTeXversion \the\eTeXversion
\fi

\end{document}

답변1

e-TeX 확장은 1999년에 완성되었으며 pdfTeX, LuaTeX 및 XeTeX와 같은 일반 엔진에서 사용할 수 있습니다. 최신 TeX 시스템(지난 5~8년 내에 출시된 시스템)에서는 확장 기능이 LaTeX 형식 파일에서 표준으로 활성화됩니다. 확장이 활성화되지 않는 유일한 '일반적인' 경우는 '고전적인' TeX를 사용할 때입니다:

tex <filename>

그것들은 Knuth의 원래 디자인의 일부가 아니며 tex항상 그것을 불러오기 때문입니다.

확장 없이 형식을 구축하거나 명시적으로 요청해야 하는 이전 TeX 시스템에서 실행하는 것이 가능합니다( elatex,등.) 또는 전혀 가지고 있지 않습니다(예: 일부 독점 시스템).

확장 자체는 여전히 Knuth의 TeX에 대한 패치로 유지되므로 엔진과 독립적인 버전을 갖습니다(pdfTeX,등.) 사용. e-TeX 기본 요소를 활성화하는 모든 시스템에는 e-TeX 확장에 대한 버전 문자열이 포함되어 있습니다. 따라서 이 기본 요소는 사용 가능한 확장에 대한 좋은 테스트입니다. (참고: LuaTeX를 사용하면 없이 확장 기능을 활성화할 수 있지만 \eTeXversion실제로는 거의 발생하지 않으며 실제로 걱정할 가치가 없습니다.)

답변2

좋아요, 해결책은 간단합니다.

\usepackage{ifetex} -> \usepackage{if**x**etex}

\ifetex -> \ifxetex

혼란을 드려 죄송합니다 :-)

관련 정보