我设法在嵌套\import
和上标之间产生奇怪的干扰,从而可以通过 进行LuaTeX
访问realscripts.sty
。
我的文档组织依赖于 (或类似的东西)的舒适、与路径无关的行为\import
。以前,当我开始嵌套\import
s 时,我想知道这是否会在某一天失效。它在大多数情况下都运行良好——除了我现在偶然发现的一个极端情况:
包裹realscripts
使装备精良的 OpenType 字体的上标字母可用作默认\textsuperscript
和脚注标记,作为与 一起使用的插件fontspec
。这通常效果很好,并且对于单一尺寸的 OTF 字体来说,拥有某种光学尺寸看起来非常好,就像我使用的字体 (Junicode) 一样。
现在,这在主文档本身中没有问题,当我通过 包含另一个带有脚注的文档时,它也可以正常工作\import
。但是,当此文档\import
本身包含另一个文档(第二层嵌套)时,脚注标记会在主文本和脚注文本中预先添加大量文件路径/字体名称,这读起来就像fontspec
在第二个嵌套的目录中搜索字体一样。
MWE(TeX Live 2015,LuaTeX, Version beta-0.80.0 (Web2C 2015) (rev 5238)
适用于 Linux 和 FreeBSD):
主文本
\documentclass{article}
\usepackage{import}
\usepackage{fontspec}
\setmainfont{Junicode}
\usepackage{realscripts}
\begin{document}
\subimport{}{importdirect.ltx} % This works
\subimport{}{importindirect.ltx} % This looks very strange
\end{document}
间接导入.ltx
\subimport{}{importdirect.ltx}
导入直接文件
Minimal broken example\footnote{footnote}
and \textsuperscript{textsuperscript}
然后运行lualatex main
(你可以想象当我的真实路径和文件名中包含下划线和此类令人讨厌的东西时,事情会如何发展)。请注意,上标本身的排版是正确的!
这是字体相关的。这种情况发生在 {Junicode} 和 {Linux Libertine O} 上,也可能发生在其他字体上。TeX Gyre 字体似乎不受此影响。这似乎与lualatex 在独立设置中使用时无法与 import/subimport 一起使用(至少,第一个嵌套级别没有问题,并且更改\pdftexversion
也没有用)。
XeLaTeX 可以毫无问题地处理这种情况。
我的问题,变体 1:这似乎是fontspec
LuaTeX 内部的一个错误,也可能是 LuaTeX 本身的一个错误。该怎么办?(如果是 的realscripts
错误,XeTeX 也会崩溃,不是吗?)
我的问题,变体2:有没有办法重新定义上标文本(或脚注标记),以便它们不会影响fontspec
处理字体选择的细节?
我的问题,变体3:嵌套\import
s 会造成问题。这有什么问题import.sty
(出于技术好奇心或修复),和/或(作为一种解决方法)是否有用于外部文档的替代导入逻辑?
我的问题,变体4:事情发生了变化realscripts
。有没有(更)规范的方式来加载 OpenType 上标样式,例如用fontspec
它自己加载?为什么 LuaTeX 受到影响而 XeTeX 不受影响?
[编辑]使用全新安装的 TeX Live 2015 生成的结果: