左/右下标的垂直对齐

左/右下标的垂直对齐

使用mathtools\prescript, 中的下标$\prescript{}{n}X_m$未垂直对齐。使用 时似乎不会出现此问题${}_n X_m$,但由于其他原因,这是不可取的。

它似乎\prescript没有像 TeX 的机制那样考虑空的下标/上标?

我当然可以$\prescript{}{n}X^{\mbox{}}_m$,但我宁愿选择向上n而不是m向下......

答案1

这有点复杂,无法\prescript处理。如果有一个上标,则应在另一侧添加“幻影”上标。

\documentclass{article}
\usepackage{xparse}

\NewDocumentCommand{\xprescript}{e{_^}me{_^}}{%
  \makexprescript{#1}{#2}{#3}{#4}{#5}%
}

\ExplSyntaxOn
\NewDocumentCommand{\makexprescript}{mmmmm}
 {
  \bool_lazy_and:nnTF { \tl_if_novalue_p:n { #2 } } { \tl_if_novalue_p:n { #5 } }
   {% there is neither a presuperscript nor a postsuperscript
    \vphantom{#3} % the nucleus for the prescripts
    \tl_if_novalue:nF { #1 } { \sb{#1} } % the presubscript
    #3 % the nucleus
    \tl_if_novalue:nF { #4 } { \sb{#4} } % the postsubscript
   }
   {% there is either a presuperscript or a postsuperscript
    \vphantom{#3} % the nucleus for the prescripts
    \sp{\tl_if_novalue:nF { #2 } { #2 } }
    \tl_if_novalue:nF { #1 } { \sb{#1} } % the presubscript
    #3 % the nucleus
    \sp{\tl_if_novalue:nF { #5 } { #5 } }
    \tl_if_novalue:nF { #4 } { \sb{#4} } % the postsubscript
   }
 }
\ExplSyntaxOff

\begin{document}

$\xprescript_n{X}_m + \xprescript_n^2{X}_m + \xprescript_n{X}_m^2$

\end{document}

在此处输入图片描述

相关内容