Einzelne Gleichungen in mehreren Spalten mit individueller Nummerierung

Einzelne Gleichungen in mehreren Spalten mit individueller Nummerierung

Ich habe eine Reihe kurzer Gleichungen und möchte sie in zwei Spalten anzeigen. Im Wesentlichen:

A = B (1) || C = D (2)

E = F (3) || G = H (4)

Ich habe zuerst die flalignUmgebung ausprobiert (ich würde dies vorziehen align, aber es ist nicht notwendig), aber ich konnte die Gleichungen nicht wie gewünscht nummerieren. Die alignUmgebung behandelt jede Zeile als eine Gleichung.

Beispiel:

\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}

\begin{document}
\begin{flalign}
A = & B & C = & D \\
E = & F & G = & H
\end{flalign}
\end{document}

Ein anderer Ansatz war eine einfache multicolumnUmgebung mit einem erzwungenen Spaltenumbruch:

\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2}
\begin{align}
A = & B \\
E = & F
\end{align}
\columnbreak
\begin{align}
C = & D \\
G = & H
\end{align}
\end{multicols}

\end{document}

Es gibt jedoch mehrere Probleme:

  1. Die Gleichungen scheinen vertikal falsch angeordnet zu sein
  2. Die Nummerierung verläuft vertikal und nicht horizontal (das wäre für mich akzeptabel)

Ich würde mich über jede Hilfe hierzu freuen.

Antwort1

Ich bin der Meinung, dass Sie Gleichungen nur nummerieren sollten, wenn Sie beabsichtigen, später darauf zurückzukommen. Warum definieren Sie also im Einklang mit dieser Philosophie nicht ein Makro, das sowohl die Gleichungsnummer einfügt als auch die Beschriftung erstellt:

\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}

Dies erhöht zuerst den equationZähler, druckt ihn aus und dann ist ein Trick nötig, um das Etikett zu erstellen (die amsmath-Umgebungen drucken Fehlermeldungen, wenn mehrere Etiketten in einer Zeile erscheinen und wir müssen dies umgehen). Wegen der @'s muss dies in eingeschlossen werden \makeatletter...\makeatother.

Möglicherweise unklugerweise habe ich &'s in das Makro aufgenommen und daher implizit angenommen, dass \Labeles immer in so etwas wie einer align*Umgebung verwendet wird – beachten Sie das *, da Sie nicht möchten, dass die Umgebung zusätzliche Beschriftungen bereitstellt. Andererseits war ein wenig zusätzlicher Aufwand erforderlich, um align*einen Fehler zu vermeiden (da align*Gleichungsnummern unterdrückt werden), sodass dieses Makro außerhalb einer ams-Ausrichtungsumgebung nicht funktioniert.

Die Verwendung dieses Makros führt zu:

Bildbeschreibung hier eingeben

Hier ist der vollständige Code:

\documentclass{article}
\usepackage{mathtools}
\usepackage{amsmath}
\makeatletter
\newcommand\Label[1]{&\refstepcounter{equation}(\theequation)\ltx@label{#1}&}
\makeatother
\begin{document}
\begin{align*}
  A &= B \Label{one}& C &= D \Label{two}\\
  E &= F \Label{three}& G &= H \Label{four}
\end{align*}
See equations \ref{one}, \ref{two}, \ref{three} and \ref{four}.
\end{document}

Wie ich oben sagte, ist es wahrscheinlich nicht ratsam, die beiden &'s in das \LabelMakro einzufügen, da dadurch ein Teil der Struktur in der align*Umgebung verborgen wird, was möglicherweise irgendwann zu Verwirrung führen könnte.

Dies funktioniert übrigens genauso gut mit flalign*Umgebungen.

Antwort2

Ich kann der Antwort keinen Kommentar hinzufügen, daher füge ich ihn als Antwort für alle anderen hinzu, die ein ähnliches Problem mit der \LabelVerwendung nur des ersten Buchstabens haben.

Ich habe eine Dummy-Variable \tmpLabelmit Primitive hinzugefügt \def, damit sie darin richtig erweitert werden kann \ltx@label.

\makeatletter
\newcommand{\allignLabel}[1]{&\refstepcounter{equation}(\theequation)\def\tmplab{#1}\ltx@label\tmplab&}
\makeatother

Ich bin sicher, dass es hierfür eine elegantere Lösung gibt. Bitte kommentieren oder bearbeiten Sie diese Antwort mit einer geeigneten Lösung.

verwandte Informationen