答案1
这样也许可以。我为每个上标分配相同的左对齐宽度。
原始答案:
如果不需要脚本样式的话就好了。
\documentclass{article}
\usepackage{mathtools,xspace,eulervm}
\newcommand{\Bsh}{\ensuremath{B^{\mathmakebox[.6em][l]{H}}_{s}}\xspace}
\newcommand{\Bsl}{\ensuremath{B^{\mathmakebox[.6em][l]{L}}_{s}}\xspace}
\begin{document}
\begin{align*}
\vert\Bsh\rangle &= 0\\
\vert\Bsl\rangle &= 1
\end{align*}
\end{document}
修改后的答案:
经过编辑,可以更好地处理较小数学样式中的可扩展空间。
\documentclass{article}
\usepackage{mathtools,xspace,eulervm,scalerel}
\newcommand{\Bsh}{\ensuremath{B^{\ThisStyle{%
\mathmakebox[2.05\LMex][l]{H}}}_{s}}\xspace}
\newcommand{\Bsl}{\ensuremath{B^{\ThisStyle{%
\mathmakebox[2.05\LMex][l]{L}}}_{s}}\xspace}
\begin{document}
\begin{align*}
\scriptscriptstyle
\vert\Bsh\rangle~
\scriptstyle
\vert\Bsh\rangle~
\textstyle
\vert\Bsh\rangle &= 0\\
\scriptscriptstyle
\vert\Bsl\rangle~
\scriptstyle
\vert\Bsl\rangle~
\textstyle
\vert\Bsl\rangle &= 1
\end{align*}
\end{document}
答案2
让 TeX 帮你进行盒子测量\eqmakebox[<tag>][<align>]{<stuff>}
(来自eqparbox
)。不同元素/<stuff>
具有相同元素的<tag>
元素被设置在具有最大宽度的(文本)框中。您可以<align>
根据每个框的情况手动调整设置,默认设置已c
输入。
\documentclass{article}
\usepackage{eqparbox,amsmath}
\newcommand{\Bsh}{\ensuremath{B^{H}_{s}}}
\newcommand{\Bsl}{\ensuremath{B^{L}_{s}}}
\begin{document}
\begin{align*}
\lvert \Bsh \rangle &= x \\
\lvert \Bsl \rangle &= y \\
\lvert \eqmakebox[B]{\Bsh} \rangle &= x \\
\lvert \eqmakebox[B]{\Bsl} \rangle &= y
\end{align*}
\end{document}
这需要对与任何特定相关的最大宽度进行两次更改进行编译<tag>
。