答案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}