我一直在使用对齐环境来排列证明/解释/等等中的方程式,并且我喜欢在每个步骤中添加括号注释,类似于下面的代码:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
f(ax + by) & = f(ax) + f(by) & (By Property 1) \\
& = af(x) + bf(y) & (By Property 2) \\
\end{align*}
\end{document}
我遇到的问题是,注释完全扭曲了方程区域的整体对齐;为包含注释的列分配了太多空间。
我希望,只要可能,方程式本身能够对齐在页面的中心,而注释则简单地出现在右侧,而不会影响方程式的整体对齐。实现此目的的最佳方法是什么?
答案1
在不知道此评论的用例的全部范围的情况下,以下操作没有问题:
\documentclass{article}
\usepackage{showframe}% http://ctan.org/pkg/showframe
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand{\comment}[1]{%
\text{\phantom{(#1)}} \tag{#1}
}
\begin{document}
\begin{align*}
\comment{By Property 1} f(ax + by) & = f(ax) + f(by) \\
\comment{By Property 2} & = af(x) + bf(y)
\end{align*}
\end{document}
上面的最小示例用于\tag
排版注释(必须用括号括起来)。此功能由amsmath
默认情况下。但是,您将无法添加编号方程,因为\tag
用作方程编号的替代。如果需要,允许在标签内引用。
\comment{<stuff>}
必须在等式的开头使用,以平衡 上的等式\textwidth
,因为它会排版\phantom
\tag
。
showframe
本例中仅仅说明了文本框架,一般来说不需要。
答案2
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align}
f(ax + by) & = f(ax) + f(by) \tag{By Property 1}\\
& = af(x) + bf(y) \tag*{By Property 2}
\end{align}
\end{document}
答案3
根据具体的应用,另一个需要考虑的选项是使用\intertext
,或\shortintertext
从mathtools
包中:
或者对于更长的评论使用\parbox
:
\documentclass[border=2pt]{standalone}
\usepackage{mathtools}% includes amsmath
\begin{document}
\begin{align*}
\shortintertext{By Property 1} f(ax + by) & = f(ax) + f(by) \\
\shortintertext{By Property 2} & = af(x) + bf(y)
\end{align*}
\begin{align*}
f(ax + by) & = f(ax) + f(by) & \parbox[c]{0.4\linewidth}{Some long comment about first equation}\\
& = af(x) + bf(y) & \parbox[c]{0.4\linewidth}{Some other even longer comment about second equation}
\end{align*}
\end{document}
答案4
我永远不会将评论放在最右边(标签的位置),因为评论是对齐的一部分,而标签不是。
有以下几种可用的策略:
\begin{alignat*}{2}
f(ax + by) & = f(ax) + f(by)\qquad && \text{(By Property 1)} \\
& = af(x) + bf(y)\qquad && \text{(By Property 2)}
\end{alignat*}
\begin{alignat*}{2}
f(ax + by) & = f(ax) + f(by) && \rlap{\qquad (By Property 1)} \\
& = af(x) + bf(y) && \rlap{\qquad (By Property 2)}
\end{alignat*}
我更喜欢前者,而只有当评论非常短并且在方程式居中后适合放在边距时,后者才是可行的。
双重&&
意味着评论将彼此左对齐。
\\
注意:避免在对齐环境中使用 final 。