可能重复:
带撇号的变量的下标
如果我有一个变量,它总是带有下标,但有时带有上标,则下标的垂直位置会发生变化。例如,$s^*_i$
和$s^{}_i$
不同于$s_i$
。我是否可以定义下标,使其无论是否存在上标,都始终位于同一位置?
答案1
\usepackage{subdepth}
例子
\documentclass{article}
\usepackage{subdepth}
\begin{document}
$a_i a_i^2$
\end{document}
答案2
我将定义一个宏来以一致的方式处理这个问题。以下最小示例定义了\var[<var>]{<sub>}[<sup>]
集合<var>_{<sub>}^{<sup>}
(<var>
和<sup>
是可选的)。添加一个空值<sup>
可确保上标的高度一致。如果您的可选项<sup>
不是“普通上标”(我们称之为“奇怪的”),则\vphantom{<bizarre sup>}
在之前添加#3
应该可以解决垂直对齐问题:
\documentclass{article}
\usepackage{xparse}% http://ctan.org/pkg/xparse
\NewDocumentCommand{\var}{O{s} m O{}}{%
\ensuremath{#1_{#2}^{#3}}% add \vphantom{<bizarre sup>}
}
\begin{document}
$s_i\ s_i^*$\ \var{i}\ \var{i}[*]\ \var[a]{k}\ \var[a]{k}[*]
\end{document}
<var>
默认值为s
。如果<sup>
包含其他(更复杂)元素,则可以使用\mathstrut
。也就是说,只要了解一些输入,就可以优化输出。
还可以修改宏以允许您^{..}
根据需要使用上标符号,而不是可选参数<sup>
,但这会强制使用数学模式,而不是使用\ensuremath
。
xparse
提供宏定义接口。