使用 stix2 时下标中的 vcentered 减号位置错误

使用 stix2 时下标中的 vcentered 减号位置错误

有没有办法在不使用 raisebox 的情况下将减号放置在与加号水平线相同的高度?

\documentclass{article}

\usepackage{stix2}

\begin{document}
 \( I_{a\vcenter{\hbox{$\scriptscriptstyle+$}}}^{\alpha} \)

 \( I_{a\vcenter{\hbox{$\scriptscriptstyle-$}}}^{\alpha} \)
\end{document}

在此处输入图片描述

答案1

结果在某种程度上是可以预料到的,因为减号的边界框很紧;在标准的 Computer Modern 字体中,它与 + 号相同。

\documentclass{article}

\usepackage{stix2}

\begin{document}

{\fboxrule=0.1pt\fboxsep=-\fboxrule\fbox{$-$}}

\( I_{a\vcenter{\hbox{$\scriptscriptstyle+$}}}^{\alpha} \)

\( I_{a\vcenter{\hbox{$\scriptscriptstyle-$}}}^{\alpha} \)

\end{document}

在此处输入图片描述

如果我注释掉stix2,我会得到

在此处输入图片描述

解决方案:添加\vphantom{+}

\documentclass{article}

\usepackage{stix2}

\begin{document}

\( I_{a\vcenter{\hbox{$\scriptscriptstyle+$}}}^{\alpha} \)

\( I_{a\vcenter{\hbox{$\scriptscriptstyle{-}\vphantom{+}$}}}^{\alpha} \)

\end{document}

在此处输入图片描述

通用定义:

\documentclass{article}

\usepackage{stix2}

\makeatletter
\newcommand{\splus}{{\mathpalette\splus@minus+}}
\newcommand{\sminus}{{\mathpalette\splus@minus-}}
\newcommand{\splus@minus}[2]{%
  \vcenter{\hbox{$\m@th
    \ifx#1\displaystyle\scriptstyle\else
    \ifx#1\textstyle\scriptstyle\else
    \scriptscriptstyle\fi\fi
    \vphantom{+}{#2}$%
  }}%
}
\makeatother

\begin{document}

\( a\splus \) \( a\sminus \)

\( I_{a\splus}^{\alpha} \)

\( I_{a\sminus}^{\alpha} \)

\end{document}

在此处输入图片描述

相关内容