7

I'd like to align multiple equations below each other such that the central operator is always centered, but have a column for commenting on the right and a column for \iff-arrows and \Rightarrow-arrows on the left. This is as far as I got:

\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*}

It works quite well, but the problem is that if I have several of these below each other, separated by text, this looks ugly because the column widths are quite different. Therefore I want to put the \iff-arrows to the left border and the comments, while left-aligned, at a fixed distance from the right border. How can I do this?

Thanks in advance.

4
  • 3
    Welcome to TeX.SX! Please complete the code to a compilable example. In particular the commands \aprecdot, \cprecdot and \signminus should be defined.
    – egreg
    Commented Oct 29, 2014 at 18:03
  • depending on how long (how many lines) your "list" becomes, you might consider using \intertext or \shortintertext (requires mathtools) within a single align* structure. Commented Oct 29, 2014 at 18:37
  • The flalign environment might be what you need.
    – A.Ellett
    Commented Oct 29, 2014 at 20:10
  • @egreg Sorry, should have removed these. Anyway, here are the definitions: \newcommand{\cprecdot}{\mathbin{\prec\!\!\! \cdot}}, \newcommand{\aprecdot}{\mathbin{\dot{\ast}}} and \newcommand{\signminus}{\scalebox{0.5}[1.0]{$-$}}. That shouldn't matter though
    – 黄雨伞
    Commented Oct 30, 2014 at 10:50

3 Answers 3

5

I agree with A. Ellet. flalign is probably the best option if you are trying to have any kind of commentary. Here is a more basic example which just solves for a specific variable:

\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}

This produces Screenshot Of Output

I'm not really sure how to get the comments and arrows closer to the overall equation though.

1
  • Thanks! This is exactly what I was looking for, I didn't want the comments any nearer anyway. Works perfectly!
    – 黄雨伞
    Commented Oct 30, 2014 at 11:15
6

You can center the entries in a column of an amsmath alignment with a trick involving the internals of amsmath. The alignment is first scanned to get the column widths, which are stored in \maxcolumn@width under the format

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

so we can exploit this by defining a macro \Cen that just passes its second argument when the measuring is made and then uses the computed column width to center its argument. The macro has two arguments: the first is the column number, the second is the material.

I have also changed the definition of \cprecdot to be a relation symbol rather than a binary operation. I also introduced a shorthand for \mathfrak{G} and removed \signminus which just gives a very bad result (but the document is yours, so do as you prefer).

\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}

enter image description here

2

I'm not entirely clear on what effect you want, but here's an example of using the flalign environment.

% 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}

Also, since you only provided a partial example, I wasn't sure where \aprecdot,\signimuns, or \cprecdot were defined....

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .