我使用unicode-math
和xits-math
作为数学字体,并asana-math
使用 和 表示数学双击符号。我使用 进行编译lualatex
,我的软件包来自 TeXlive 2011。
现在,当asana-math
与混合使用时xits
,我遇到以下问题:
在数学模式下,如果我输入$\deg_s ϕ$
我的输出是
我想要的是:
这是一个最小的工作示例
\documentclass{minimal}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\setmathfont[range={\mathbb}]{Asana-Math.otf}
\begin{document}
$\deg_s \phi$
\end{document}
当我仅使用数学字体时也会出现此问题asana-math
,所以这可能是问题的根源。我需要 asana-math,因为它有双击数学字符,我更喜欢 xits-math。
这是错误还是应该设置得这么低?我能以某种方式修复它吗?混合字体是否不干净?
编辑:我现在根据我的发现更新了这个问题。抱歉之前没有提供足够的信息,我低估了这个问题。:-)(谢谢,Caramdir)
答案1
由于某种原因,加载 Asana Math 会将下标移位下降参数从 0.5pt 更改为 2.22pt(可能后面的值源自 Asana Math)。
您可以通过设置来重置值\luatexUmathsubshiftdrop\textstyle=0.5pt
,但它必须在公式内部调用,因此您必须将其附加到令牌\everymath
:
\everymath=\expandafter{\the\everymath\luatexUmathsubshiftdrop\textstyle=0.5pt}
您可能希望对显示数学进行相同的操作:
\everydisplay=\expandafter{\the\everydisplay\luatexUmathsubshiftdrop\displaystyle=0.5pt}
为了保持与 XeTeX 兼容,请使用\ifluatex
。
\documentclass{minimal}
\usepackage{ifluatex}
\usepackage{unicode-math}
\setmathfont{xits-math.otf}
\setmathfont[range={\mathbb}]{Asana-Math.otf}
\ifluatex
\everymath=\expandafter{%
\the\everymath%
\luatexUmathsubshiftdrop\textstyle=0.5pt}
\everydisplay=\expandafter{%
\the\everydisplay%
\luatexUmathsubshiftdrop\displaystyle=0.5pt}
\fi
\begin{document}
$\deg_s \phi_s$
\end{document}