如何检测 .tex 文件中的 LuaLaTex 并有条件地排除部分内容

如何检测 .tex 文件中的 LuaLaTex 并有条件地排除部分内容

首先让我陈述一下我的“问题”。使用 PdfLateX 时,我的.tex文件编译得相当快,一切都很好。我使用 TeXStudio 并使用 PDF 预览功能。由于我的 LaTeX fu 不是最强大的,所以我经常编译(看看我最近是否破坏了某些东西;是的,我使用了版本控制系统以及)。

现在使用 PdfLaTeX,我们需要 3 到 3.5 秒才能完成编译。

最近我添加了\usepackage{fontawesome}一个,显然需要 XeLaTex 或 LuaLaTex。尝试了这两个选项后,只剩下 LuaLaTeX,因为另一个出错了。

我使用该fontawesome包来获取用于外部链接的符号,\href为每个外部链接定义我自己的命令(见下文)。

现在,我注意到,一旦切换到 LuaLaTeX,编译文档需要更长的时间:10 秒

所以我的思维过程如下:如果我能检测到 LuaLaTeX 的存在,我就可以有条件地包含对 PdfLaTeX 有“冒犯”的部分。

是否可以做到这一点,即区分 PdfLaTeX 和 LuaLaTeX?

没有 fontawesome

\documentclass[12pt,a4paper,oneside]{book}
% ... a bunch of packages, including hyperref
% define \linkclr
\newcommand{\extlink}[2]{\href{#1}{\linkclr{#2}}}
% ... actual document

使用 fontawesome

\documentclass[12pt,a4paper,oneside]{book}
% ... a bunch of packages
\usepackage{fontawesome}
% ... more packages, including hyperref
% define \linkclr
\newcommand{\extlink}[2]{\href{#1}{\linkclr{#2}\,{\small\faExternalLink}}}
% ... actual document

是的,我知道这种关于速度的“抱怨”与几年前的速度相比是可笑的。但如果不是因为速度,请考虑回答这个问题以满足我的好奇心。

答案1

使用ifluatex 包

\documentclass{article}
\usepackage{ifluatex}
\begin{document}
\ifluatex
hello
\else
goodbye
\fi
\end{document}

答案2

如果你想区分 PDF、Xe 和 Lua(La)TeX,你可能需要考虑国际纺织展览会提供命令的包\ifPDFTeX\ifXeTeX\ifLuaTeX

相关内容