Fontspec 2.4 和 Scale=MatchLowercase 导致错误

Fontspec 2.4 和 Scale=MatchLowercase 导致错误

我刚刚更新到 TeXLive 2014,当使用 XeLaTeX 或 LuaLaTeX 编译以下代码时出现错误:

\documentclass{article}
\usepackage{fontspec}
\setsansfont{Latin Modern Sans}[Scale=MatchLowercase]
\begin{document}
\textsf{Example text}
\end{document}

错误:

! Undefined control sequence.
\__fontspec_calc_scale:n ..._tmpb_dim }\fp_div:Nn 
                                                  \l__fontspec_tmpa_fp {\l__...
l.3 ...font{Latin Modern Sans}[Scale=MatchLowercase]

如果我删除该[Scale=MatchLowercase]位,它就会编译。如果我使用其他字体功能(例如,数字 = 大写),它就会工作。只是Scale带有MatchLowercaseMatchUppercase的命令会导致错误。

字体似乎并不重要,设置无字体或主字体也不重要。

答案1

fontspec\fp_div:Nn使用已从基础代码中删除的弃用函数。删除的函数仅出现一次。在修复错误之前,您可以定义缺失的函数:

\documentclass{article}
\usepackage{fontspec}[2014/06/01] % the fix is just for this version

\ExplSyntaxOn
\cs_new_protected:Npn \fp_div:Nn #1 #2
  {
   \fp_set:Nn #1 { #1/#2 }
  }
\ExplSyntaxOff

\setsansfont{Latin Modern Sans}[Scale=MatchLowercase]
\begin{document}
\textsf{Example text}
\end{document}

相关内容