Realscripts 包在 TeXLive 2017 (MacTeX) 中不起作用

Realscripts 包在 TeXLive 2017 (MacTeX) 中不起作用

使用 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}

在此处输入图片描述

问题提交于https://github.com/wspr/fontspec/issues/293

相关内容