So nummerieren Sie automatisch eine Gleichungsfamilie (und verweisen darauf)

So nummerieren Sie automatisch eine Gleichungsfamilie (und verweisen darauf)

Die Frage beantwortet sich von selbst und ist einfach. Manchmal müssen wir eine Familie von Gleichungen mit derselben Zahl, aber mit etwas anderem (einem zusätzlichen Zähler oder so etwas) erstellen. Ich habe beispielsweise die Gleichungen (1), dann (2) und möchte nun eine Familie von Gleichungen (3 (i)), (3 (ii)) öffnen, dann mit (4) fortfahren... dann (3 (iii)) definieren... usw...

Und dies muss mit dem amsmath-Paket funktionieren, um Zahlen wie (2.2 (i)) usw. zu liefern.

Ich habe nichts Ähnliches gefunden, aber wahrscheinlich verwende ich nicht die richtigen Schlüsselwörter. Wenn es sich also um ein Duplikat handelt, informieren Sie mich einfach, damit ich dort schreiben kann. Antwort erstellen...

Um klarzustellen, was ich will: Ich möchte Gleichungsfamilien haben, ohne benutzerdefinierte Tags angeben und die Anzahl der Gleichungszähler ändern zu müssen.

Das nächste Foto zeigt das gewünschte Ergebnis (mit Familien quadratischer und elliptischer Gleichungen und Gleichungen, die nicht in Familien dazwischen liegen):

Bildbeschreibung hier eingeben

PS: Diese Frage kam ausDasFrage, aber es war nur ein Missverständnis meinerseits. Er wollte etwas anderes (und ich werde den Code dieser Themenantwort bearbeiten, um auch das zu beantworten)

Antwort1

Wir können dazu einen neuen Befehl definieren. Der Befehl lautet:

Bearbeiten: Fügen Sie Ihrer Präambel das amsmath-Paket hinzu.

\makeatletter
\newcommand*\ifcounter[1]{%
  \ifcsname c@#1\endcsname%
    \expandafter\@firstoftwo%
  \else%
    \expandafter\@secondoftwo%
  \fi%
}%
\makeatother


\makeatletter
\newcommand\EqFamTag[2][roman]{%
\ifcounter{#2}{%
\expandafter\addtocounter{#2}{1}%
\xdef\temp{\csname #2 Eq\endcsname \space(\csname #1\endcsname{#2})}%
\global\expandafter\let\csname #2\arabic{#2}\endcsname\temp%
\tag{\temp}%
}{%
\global\expandafter\newcounter{#2}%
\expandafter\addtocounter{#2}{1}%
\xdef\temp{\theequation\space(\csname #1\endcsname{#2})}%
\xdef\eqonfamily{\theequation}%
\global\expandafter\let\csname #2 Eq\endcsname\eqonfamily%
\global\expandafter\let\csname #2\arabic{#2}\endcsname\temp%
\tag{\temp}%
\expandafter\addtocounter{equation}{1}
}%
}%
\makeatother

Wobei ich die Antwort von @clemens aus der Frage verwendePrüfen, ob Zähler vorhanden ist

Um den Befehl zu verwenden, schreiben wir einfach (zum Beispiel):

\begin{equation}
 x^2=3\EqFamTag{Parabolic}
\end{equation}

und wir können eine Bezeichnung angeben oder nicht. Wenn wir keine Bezeichnung angeben, können wir uns dennoch auf unser Mitglied der Parabolfamilie beziehen, indem wir Folgendes verwenden:

(\csname Parabolic1\endcsname) 

für das erste Mitglied... oder

(\csname Parabolic2\endcsname)

für 2. Mitglied usw.

Der Befehl funktioniert mit dem amsmath-Paket und wir können haben

\numberwithin{equation}{section}

oder was auch immer wir wollen.

Wir können unsere Familienmitglieder in einem neuen Abschnitt fortführen, aber bei der Nummerierung werden der Abschnitt und die Nummer des ersten Mitglieds berücksichtigt.

Schließlich können wir andere Nummerierungen als \roman verwenden (wie Großbuchstabenarithmetik oder alles, was Latex unterstützt), indem wir einen Parameter wie

\begin{equation}
 {x^4}+\frac{3\cdot x^2}{10}+7=0\EqFamTag[Alph]{Quartic}
\end{equation}

verwandte Informationen