如何在 TeX 文件中检测哪个引擎 ( pdftex
/ xetex
/ luatex
) 用于编译文件?是否有提供此功能的 LaTeX 包?
答案1
答案2
软件包 ifxetex、ifluatex、ifpdf。您还可以查看 hyperref 等,以检查它如何检测应使用哪个驱动程序。
答案3
我正在使用以下代码:
%% ==================================================================
%%
%% Macros specific for latex / pdflatex / xetex compilers
%%
\usepackage{ifpdf,ifxetex,ifluatex}
\ifpdf
\typeout{^^J *** PDF mode *** }
\else
\typeout{^^J *** DVI mode ***}
\fi
\ifluatex
\typeout{ *** LuaLaTeX *** ^^J}
% patch \typein
% see http://tex.stackexchange.com/questions/12435/incompatibilities-between-lualatex-and-typein
\makeatletter
\def\@xtypein[#1]#2{%
\typeout{#2}%
\@tempcnta\endlinechar
\endlinechar\m@ne
\read\@inputcheck to#1%
\endlinechar\@tempcnta
\@typein}
\makeatother
% LuaLaTeX specific code
\else\ifxetex
\typeout{ *** XeLaTeX *** ^^J}
% XeLaTeX specific code
\else
\typeout{ *** LaTeX *** ^^J}
\fi\fi
\typein{} % pause to watch result
%% =====================================================================
LuaLaTeX 可以在 DVI 和 PDF 模式下运行。