我使用了很多 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 字符设置为活动状态,并查找要插入到文档中的命令,因此只需输入命令就会稍微快一些。
然而,人类阅读源代码的时间比计算机所花费的微秒宝贵得多。