我刚刚更新到 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
带有MatchLowercase
或MatchUppercase
的命令会导致错误。
字体似乎并不重要,设置无字体或主字体也不重要。
答案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}