在下面的最小示例中,luatex 没有正确放置重音符号(太靠左边了):
\documentclass{minimal}
\usepackage{fontspec}
\setromanfont{Linux Libertine O}
\begin{document}
\(\bar E\)
\end{document}
但是如果我用 xelatex 或者用 lualatex 编译它并\setromanfont{Linux Libertine O}
注释掉,一切都正常。
我相信 fonspec 只适用于文本,不适用于数学。那么为什么会出现这种奇怪的行为呢?
答案1
这是我\showlists
根据公式调用时得到的结果:
LuaTeX
### horizontal mode entered at line 6
\whatsit
.\localinterlinepenalty=0
.\localbrokenpenalty=0
.\localleftbox=null
.\localrightbox=null
\hbox(0.0+0.0)x20.0, direction TLT
\mathon
\vbox(8.20554+0.0)x7.95831, direction TLT
.\hbox(5.67776+0.0)x0.0, direction TLT
..\OT1/cmr/m/n/10 ^^V
.\kern-4.30554
.\hbox(6.83331+0.0)x7.95831, direction TLT
..\OML/cmm/m/it/10 E
\mathoff
特克斯
### horizontal mode entered at line 6
\hbox(0.0+0.0)x20.0
\mathon
\vbox(8.20554+0.0)x7.95831
.\hbox(5.67776+0.0)x0.0, shifted 2.31252
..\OT1/cmr/m/n/10 ^^V
.\kern-4.30554
.\hbox(6.83331+0.0)x7.95831
..\OML/cmm/m/it/10 E
\mathoff
LuaTeX 显然存在问题;可能是因为fontspec
当不加载它或加载与 Linux Libertine O 不同的字体(我测试了 Old Standard 和 TeX Gyre Termes)时,我得到以下信息:
LuaTeX(不含 Linux Libertine O)
### horizontal mode entered at line 6
\whatsit
.\localinterlinepenalty=0
.\localbrokenpenalty=0
.\localleftbox=null
.\localrightbox=null
\hbox(0.0+0.0)x20.0, direction TLT
\mathon
\vbox(8.20554+0.0)x7.95831, direction TLT
.\hbox(5.67776+0.0)x0.0, shifted 2.31252, direction TLT
..\OT1/cmr/m/n/10 ^^V
.\kern-4.30554
.\hbox(6.83331+0.0)x7.95831, direction TLT
..\OML/cmm/m/it/10 E
\mathoff