unicode 输入会减慢编译速度吗?

unicode 输入会减慢编译速度吗?

我使用了很多 unicode 符号,这些符号都是通过 TeXStudio 宏自动插入的(例如“ \alpha”-->“ α”)。这使我更容易阅读.tex file。这些(~100)个字符在序言中调用的 .sty 文件中声明,例如

\DeclareUnicodeCharacter{03B1}{\alpha}

这会减慢文档的编译速度吗?

答案1

我做了一个实验:代码

\documentclass{article}

\begin{document}

\ExplSyntaxOn
\prg_replicate:nn {100000} { $\alpha$$\alpha$$\alpha$$\alpha$$\alpha$$\alpha$$\alpha$$\alpha$$\alpha$$\alpha$\par }
\ExplSyntaxOff

\end{document}

运行time pdflatex -draftmode(不会生成 PDF 文件)显示

real  0m1.491s
user  0m1.377s
sys   0m0.073s

如果我改为

\documentclass{article}
\DeclareUnicodeCharacter{03B1}{\alpha}

\begin{document}

\ExplSyntaxOn
\prg_replicate:nn {100000} { $α$$α$$α$$α$$α$$α$$α$$α$$α$$α$\par }
\ExplSyntaxOff

\end{document}

终端显示

real  0m3.213s
user  0m3.070s
sys   0m0.090s

运行时间大约是原来的两倍。在之前的实验中,alpha 只出现 100000 次,运行时间却延长了 20%。

我认为对于普通文件来说没有什么可担心的。

如果我使用 LuaLaTeX 重复相同的实验unicode-math,执行时间是相当的(但当然要长得多)。

答案2

如果您使用的是带 Unicode 编码的 LuaLaTeX 或 XeLaTeX,则不需要。它们原生使用 Unicode,将 α 的代码点传递给字体渲染器实际上比查找宏\alpha、检测当前字体并将其转换为相同代码点更快。

在 8 位 TeX 引擎中,情况正好相反:inputenc将 Unicode 字符设置为活动状态,并查找要插入到文档中的命令,因此只需输入命令就会稍微快一些。

然而,人类阅读源代码的时间比计算机所花费的微秒宝贵得多。

相关内容