![水平对齐带有溢出文本的方程式](https://linux22.com/image/300376/%E6%B0%B4%E5%B9%B3%E5%AF%B9%E9%BD%90%E5%B8%A6%E6%9C%89%E6%BA%A2%E5%87%BA%E6%96%87%E6%9C%AC%E7%9A%84%E6%96%B9%E7%A8%8B%E5%BC%8F.png)
比如说,我有以下一组方程,我想使用覆盖来阐明使用了哪些方程:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
V &\overset{def}{=} & R(\delta) \\
&\overset{ \{ 1.2.3 \} }{=} & \sum_{a} \delta(a) R(a)
\end{align*}
\end{document}
当然,在实际文档中,我会使用引用,而不是硬编码公式编号。我知道我可以使用\hphantom
空格覆盖等号,但这在这里不起作用,因为第一个等号已经用“def”覆盖了。
我是否最好为等号创建一个单独的列,或者是否有一种我不熟悉的方法可以在对齐环境中强制列宽?
答案1
\overset{def}{=}
术语和的宽度有相当大的差异\overset{ \{ 1.2.3 \} }{=}
。(旁白:第二个术语是真的吗?!)实现元素良好对齐的直接方法是使用环境array
。顺便说一句,我还建议您为上述术语创建专用宏。
\documentclass{article}
\usepackage{amsmath} % for "align" environment
\newcommand\defeq{\mathrel{\overset{\textnormal{def}}{=}}}
\newcommand\numeq{\mathrel{\overset{ \{ 1.2.3 \} }{=}}}
\setlength\textwidth{2.5in} %% just for this example
\begin{document}
Before:
\begin{align*}
V &\defeq R(\delta) \\
&\numeq \delta(a) R(a)
\end{align*}
New:
\[ \renewcommand\arraystretch{1.5} % mimic wider spacing of align environment
\begin{array}{@{} r@{}c@{}l @{}}
V & \defeq & R(\delta) \\
& {}\numeq{} & \delta(a) R(a)
\end{array}
\]
\end{document}