使用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}