使用 XeLaTeX 进行编译时,realscripts 包似乎对 TeXLive 2017 (MacTeX) 没有任何影响。我昨天更新了我的 TeX 发行版,我注意到我的脚注标记不再是真正的上标。我已经使用 Linux Libertine O 进行了测试。否则,文档编译正常。任何帮助都将不胜感激。
一位 MWE 表示:
\documentclass{article}
\usepackage{fontspec,realscripts}
\setmainfont{Linux Libertine O}
\begin{document}
A\textsuperscript{1234567890}Z A\textsuperscript*{1234567890}Z
A\realsuperscript{1234567890}Z \\
Some text.\footnote{A footnote.}
\end{document}
答案1
\realsuperscript
读取的代码
\DeclareDocumentCommand \realsuperscript {m} {
\fontspec_if_fontspec_font:TF
{
\fontspec_if_opentype:TF
{ \fontspec_if_feature:nTF {+sups}
{ {\addfontfeature{VerticalPosition=Superior}#1} }
{ \fakesuperscript{#1} }
}
{ \fontspec_if_aat_feature:nnTF {10} {1}
{ {\addfontfeature{VerticalPosition=Superior}#1} }
{ \fakesuperscript{#1} }
}
}
{ \fakesuperscript{#1} }
}
然而,在 TL 2016 及更高版本中,测试
\fontspec_if_feature:nTF {+sups}
使用 XeLaTeX 时返回 false,使用 LuaLaTeX 时返回 true。
临时解决方法:
\documentclass{article}
\usepackage{fontspec,realscripts}
\setmainfont{Linux Libertine O}
\ExplSyntaxOn
\DeclareDocumentCommand \realsuperscript {m} {
\fontspec_if_fontspec_font:TF
{
\fontspec_if_opentype:TF
{ \fontspec_if_feature:nTF {sups}
{ {\addfontfeature{VerticalPosition=Superior}#1} }
{ \fakesuperscript{#1} }
}
{ \fontspec_if_aat_feature:nnTF {10} {1}
{ {\addfontfeature{VerticalPosition=Superior}#1} }
{ \fakesuperscript{#1} }
}
}
{ \fakesuperscript{#1} }
}
\ExplSyntaxOff
\begin{document}
A\textsuperscript{1234567890}Z A\textsuperscript*{1234567890}Z
A\realsuperscript{1234567890}Z \\
Some text.\footnote{A footnote.}
\end{document}