使用 LuaLaTeX 编译以下(不是那么简单)的示例会出现错误Missing number, treated as zero
。
%!TEX program = lualatex
\documentclass{article}
\usepackage[sansmath,scale=0.88]{MyriadPro}
\usepackage[no-math]{fontspec}
\setmainfont{Minion Pro}
\setsansfont{Myriad Pro}
\usepackage{microtype}
\usepackage{siunitx}
\usepackage{marginnote}
\renewcommand*{\marginfont}{\footnotesize}
\begin{document}
\[ c = \sqrt{a^2 + b^2} \marginnote{foo $x$ bar} \]
\end{document}
不幸的是,如果我删除任何包、字体命令,甚至选项(除了no-math
,这是 所必需的MyriadPro
)。最重要的是,如果我从 中删除内联方程式\marginnote
,或者将 设置\marginfont
为\tiny
、\scriptsize
或 以上的任何值\large
,文件也会编译良好。草稿模式也可以使其工作...
我担心该问题会因为字体包而严重重现,但我不知道从哪里开始寻找该问题。
编辑:日志文件中的完整错误消息:
! Missing number, treated as zero.
<to be read again>
l
l.257 \@tempcnta=l
eft_boundary\relax\MT@dofont@function
<argument> ...@ex@factor@ relax }MT@lua {microtype.do_font()}
use_i:nn #1#2->#1
MT@set@ex@codes ...T@ex@factor }MT@reset@ef@codes
MT@expandfont MT@nonselect...
MT@maybe@do ...#1}csname MT@set@#1@codesendcsname
else MT@vinfo {... No @nam...
MT@setupfont ...@line }MT@protrusion MT@expansion
MT@noligatures MT@register...
pickup@font ...ster@subst@font fi fi MT@setupfont
endgroup
getanddefine@fonts ...size endcsname }pickup@font
let textfont@name font@nam...
mv@normal ...define@fonts {8}T1/MyriadPro-OsF/m/n
install@mathalphabet maths...
glb@settings ... csname mv@math@version endcsname
globaldefs @ne math@fonts ...
check@mathfonts ...rsize f@size else glb@settings
init@restore@glb@settings ...
<everymath> check@mathfonts
the everymath
<to be read again>
x
<argument> ...arginnote strut hspace {z@ }ignorespaces foo $x
$ barendgraf vss }vss }
rlap #1->hb@xt@ z@ {#1
hss }
<argument> ...z@ }ignorespaces foo $x$ barendgraf vss }vss }}
else llap {vbox toz@ {kern...
mn@zbox #1->bgroup setbox @tempboxa vbox {#1
}ht @tempboxa ht strutbox dp @te...
@mn@@@marginnote ...fi fi kern marginparsep }fi }}
endgroup
@mn@@marginnote ...n@@@marginnote [{#1}]{#2}[{#3}]
fi
<to be read again>
]
l.16 ...\sqrt{a^2 + b^2} \marginnote{foo $x$ bar} \]
?