TransWikia.com

Align within align

TeX - LaTeX Asked by Kaind on June 6, 2021

I have to write equations in this format:

    (1) A  → (*some terms*)
                   A.a = (*some terms*)
                   A.b = (*some terms*)
                   ...
                   A.z = (*some terms*)

    (2) B  → (*some terms*)
                   B.a = (*some terms*)
                   B.b = (*some terms*)
                   ...
                   B.z = (*some terms*)

    ...

    (5) E  → (*some terms*)
                   E.a = (*some terms*)
                   E.b = (*some terms*)
                   ...
                   E.z = (*some terms*)

The numbers ( (1), (2), etc ) have to be on the left, the ‘→’ symbol needs to be aligned, and all the ‘=’ symbols need to be aligned. Also, the A.a, A.b etc must start to the right of ‘→’.

How can I do this? I am a beginner in LateX.

2 Answers

You can use flalign; with lefteqn the width of the argument is ignored.

documentclass{article}
usepackage{amsmath}

begin{document}

Some text before the display just to see where the margins of the type block
are, some more to be sure
begin{flalign*}
(1)quad A &to lefteqn{(*some terms*)} &&& 
& & A.a &= (*some terms*) 
& & A.b &= (*some terms*) 
& & A.c &= (*some terms*) 
(2)quad B &to lefteqn{(*some terms*)} 
& & B.a &= (*some terms*) 
& & B.b &= (*some terms*) 
& & B.c &= (*some terms*) 
(3)quad C &to lefteqn{(*some terms*)} 
& & C.a &= (*some terms*) 
& & C.b &= (*some terms*) 
& & C.c &= (*some terms*)
end{flalign*}
Some text before the display just to see where the margins of the type block
are, some more to be sure

end{document}

enter image description here

Correct answer by egreg on June 6, 2021

You can always use the capabilities of eqparbox to provide similarly-sized widths across document elements (like enumerate or align):

enter image description here

documentclass{article}

usepackage{amsmath,eqparbox,enumitem}

begin{document}

Some text before the display just to see where the margins of the type block
are, some more to be sure:
begin{enumerate}[label={(arabic*)}]
  item
  $eqmakebox[LHSitem][r]{$A$} to text{(*some terms*)}$
  begin{align*}
    eqmakebox[LHS][r]{$A.a$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$A.b$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$A.c$} &= text{(*some terms*)}
  end{align*}
  
  item
  $eqmakebox[LHSitem][r]{$AB$} to text{(*some terms*)}$
  begin{align*}
    eqmakebox[LHS][r]{$AB.a$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$AB.b$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$AB.c$} &= text{(*some terms*)}
  end{align*}
  
  item
  $eqmakebox[LHSitem][r]{$ABC$} to text{(*some terms*)}$
  begin{align*}
    eqmakebox[LHS][r]{$ABC.a$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$ABC.b$} &= text{(*some terms*)} 
    eqmakebox[LHS][r]{$ABC.c$} &= text{(*some terms*)}
  end{align*}
end{enumerate}
Some text before the display just to see where the margins of the type block
are, some more to be sure.

end{document}

Answered by Werner on June 6, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP