如何在 align* 环境中将文本放在行末(最右外)?我在 align* 中有一组方程式,我想在每一行的末尾写一点文本来解释这一行。我希望它位于每一行的右侧。
答案1
有两种不同类型的对象可以修饰等式:
- 一个数字或标签或
- 一个解释”。
数字或标签不属于等式:它只是为了交叉引用的方便,比“第 234 页的第三个等式”更方便。
一个解释是等式的一部分(或推导中的步骤),并且不应右对齐。代码:
\begin{alignat*}{2}
a+(b+s(c))
&=a+s(b+c) &\qquad& \text{(definition)} \\
&=s(a+(b+c)) && \text{(definition)} \\
&=s((a+b)+c)) && \text{(induction)} \\
&=(a+b)+s(c) && \text{(definition)}
\end{alignat*}
相同(ab)使用\tag
:
\begin{align*}
a+(b+s(c))
&=a+s(b+c) \tag{definition} \\
&=s(a+(b+c)) \tag{definition} \\
&=s((a+b)+c)) \tag{induction} \\
&=(a+b)+s(c) \tag{definition}
\end{align*}
但这有一个明显的问题:如果文档类指定leqno
,你会得到
没有任何警告。
一个可能的解决方法是使用flalign*
\documentclass[leqno]{article}
\usepackage{amsmath}
\usepackage{showframe}
\begin{document}
After observing that $a+(b+0)=a+b=(a+b)+0$ we can proceed to prove
the associativity of addition by induction, namely
\begin{flalign*}
&&a+(b+s(c))
&=a+s(b+c) &&\text{(definition)} \\
&&&=s(a+(b+c)) &&\text{(definition)} \\
&&&=s((a+b)+c)) &&\text{(induction)} \\
&&&=(a+b)+s(c) &&\text{(definition)}
\end{flalign*}
\end{document}
但我会坚持使用第一个显示,原因已经在开头概述。