使用 xits-math 的数学模式中下标设置得太低

使用 xits-math 的数学模式中下标设置得太低

我使用unicode-mathxits-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}

相关内容