使用左右注释对齐方程式

使用左右注释对齐方程式

我想将多个方程式对齐,使得中心运算符始终居中,但在右侧有一列用于注释,在左侧有一列用于 \iff-arrows 和 \Rightarrow-arrows。这是我所能做到的:

\begin{align*}
&& A &\aprecdot \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C))
    && \text{by \eqref{eq:C}} \\
\iff && \mathfrak{G}(A) &\cprecdot \mathfrak{G}(\mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C))) 
    && \text{by \eqref{eq:D}} \\
\iff && \mathfrak{G}(A) &\cprecdot \mathfrak{G}(C) 
    && \text {by axiom 1.} \\
\iff && \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(A)) &\aprecdot \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C)) \\
\iff && A &\aprecdot B
\end{align*}

它工作得很好,但问题是,如果我有多个这样的列表,它们彼此之间用文本分隔,这看起来会很难看,因为列宽差别很大。因此,我想将 \iff-arrows 放在左边框上,而注释则左对齐,与右边框保持固定距离。我该怎么做?

提前致谢。

答案1

我同意 A. Ellet 的观点。 flalign如果你想发表任何评论,这可能是最好的选择。这是一个更基本的例子,它只解决一个特定的变量:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\begin{flalign*}
&& d &= v_{o}t + \frac{1}{2}at^{2} && \text{A kinematic equation} \\
\Rightarrow && d - v_{o}t &= \frac{1}{2}at^{2} && \text{Another comment} \\
\Rightarrow && \frac{2(d - v_{o}t)}{a} &= t^{2} && \text{One here too} \\
\Rightarrow && \sqrt{\frac{2(d - v_{o}t)}{a}} &= t && \text{Solved for $t$}
\end{flalign*}

\end{document}

这产生了输出截图

不过,我不太清楚如何使评论和箭头更接近整体方程。

答案2

amsmath你可以使用 内部技巧将条目置于比对的列中amsmath。首先扫描比对以获取列宽,这些列宽存储在\maxcolumn@width格式下

\or<widht1>\or<width2>\or...

因此,我们可以利用这一点,定义一个宏\Cen,在进行测量时只传递其第二个参数,然后使用计算出的列宽将其参数居中。该宏有两个参数:第一个是列号,第二个是材料。

我还把 的定义改为关系符号,而不是二元运算。我还引入了和 removed 的\cprecdot简写,这只会产生非常糟糕的结果(但文档是你的,所以随你喜欢)。\mathfrak{G}\signminus

\documentclass{article}
\usepackage{amsmath,amssymb,graphicx}

\newcommand{\cprecdot}{\prec\joinrel\mathrel{\cdot}}
\newcommand{\aprecdot}{\mathbin{\dot{\ast}}}
\newcommand{\fG}{\mathfrak{G}}

\makeatletter
\newcommand{\Cen}[2]{%
  \ifmeasuring@
    #2%
  \else
    \makebox[\ifcase\expandafter #1\maxcolumn@widths\fi]{$\displaystyle#2$}%
  \fi
}
\makeatother

\begin{document}
\begin{align*}
&& \Cen{3}{A \aprecdot \fG^{-1}_1(\fG(C))}
    && \text{by \eqref{eq:C}} \\
&\iff & \Cen{3}{\fG(A) \cprecdot \fG(\fG^{-1}_1(\fG(C)))}
    && \text{by \eqref{eq:D}} \\
&\iff & \Cen{3}{\fG(A) \cprecdot \fG(C)}
    && \text {by axiom 1.} \\
&\iff & \Cen{3}{\fG^{-1}_1(\fG(A)) \aprecdot \fG^{-1}_1(\fG(C))} \\
&\iff & \Cen{3}{A \aprecdot B}
\end{align*}

\end{document}

在此处输入图片描述

答案3

我不完全清楚你想要什么效果,但这里有一个使用环境的例子flalign

% arara: pdflatex
% arara: pdflatex
% arara: open
\documentclass{article}
\usepackage{amsmath,amssymb}
\let\aprecdot\cdot
\let\signminus\pm
\let\cprecdot\cdot
\pagestyle{empty}
\usepackage{lipsum}
\begin{document}

\lipsum[1]
\begin{flalign*}
 &      &  & A                                              & \aprecdot \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C))               &  &  &  & \text{by \eqref{eq:C}}                                                                                                \\
 & \iff &  & \mathfrak{G}(A)                                & \cprecdot \mathfrak{G}(\mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C))) &  &  &  & \text{by \eqref{eq:D}}                                                                                                
\intertext{Here's something in the middle of the text} 
& \iff &  & \mathfrak{G}(A)                                & \cprecdot \mathfrak{G}(C)                                              &  &  &  & \text {by axiom 1.}                                                                                                   \\
 & \iff &  & \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(A)) & \aprecdot \mathfrak{G}^{\signminus 1}_1(\mathfrak{G}(C))             \\            
 & \iff &  & A                                              & \aprecdot B                                                            
\end{flalign*}
\lipsum[2]
\end{document}

此外,由于您仅提供了部分示例,我不确定在哪里\aprecdot,\signimuns,或被\cprecdot定义......

在此处输入图片描述

相关内容