Sejajarkan

Sep 30 2020

Saya harus menulis persamaan dalam format ini:

    (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*)

Angka ((1), (2), dll) harus di sebelah kiri, simbol '→' harus diratakan, dan semua simbol '=' harus diratakan. Juga, Aa, Ab dll harus dimulai di sebelah kanan '→'.

Bagaimana saya bisa melakukan ini? Saya seorang pemula di LateX.

Jawaban

4 egreg Sep 30 2020 at 00:37

Anda bisa menggunakan flalign; dengan \lefteqnlebar argumen diabaikan.

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

3 Werner Sep 30 2020 at 01:20

Anda selalu dapat menggunakan kemampuan eqparboxuntuk memberikan lebar berukuran serupa di seluruh elemen dokumen (seperti enumerateatau align):

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