为什么 LuaLaTeX 会将功能(如 rot13)添加到缓存中的任何 OpenType 字体中

为什么 LuaLaTeX 会将功能(如 rot13)添加到缓存中的任何 OpenType 字体中

以下程序

\documentclass{article}
\usepackage{fontspec}
\begin{document}
\fontspec{Erewhon-regular.otf}

Hello {\addfontfeature{RawFeature={rot13,!!??}} World !?}
 {\addfontfeature{RawFeature={rot13,!!??}}Hello} World !?

\end{document}

输出结果如下:

Hello Jbeyq ‽ Uryyb World !?

rot13 循环交换字母(这是凯撒加密方法)并且 !!?? 用叠加的符号替换 ? 和 ! 两个符号。

这些功能不在正版 Erewhon-regular.otf 文件中,我假设它们是在 /Users/.../Library/texlive/2022/texmf-var/luatex-cache/ 中创建字体的 lua 版本时由 LuaLaTeX 添加的。对吗?

为什么要添加这些功能?

还有其他的吗?

请注意,任何 OTF 字体都会发生这种情况(即使 TeXLive 中没有的字体也是如此)。

非常感谢您的解释。

相关内容