Änderung der Nummerierung der Teilgleichungen

Änderung der Nummerierung der Teilgleichungen

Ich definiere derzeit die Nummerierung in mathematischen Umgebungen neu, stoße jedoch auf ein Problem mit subbequations.

Ich wünschte, ich hätte ein Nummerierungssystem wie dieses:

Gl. 1. (für normale Gleichungen)

Gl. 1.A (für Untergleichungen)

Wenn ich

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[leqno]{amsmath}
\usepackage{unicode-math}
\usepackage{etoolbox}
\usepackage{unicode-math}

\makeatletter
    \renewcommand\theequation{%
        \@arabic\c@equation.%
    }

    \renewcommand\tagform@[1]{%
        \maketag@@@{%
        \textbf{\textsc{Eq}.~\ignorespaces#1\unskip}
    }%
}
\makeatother

\patchcmd\subequations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation\protect\Alph{equation}}}
    {}
    {\FAIL}

\begin{document}
\begin{equation}
(a+b)^2 = a^2 + 2 a b + b^2
\label{eq1}
\end{equation}

Some text... \ref{eq1}

\begin{subequations}
    \begin{equation}
    f(x) = a x + b
    \end{equation}
    \begin{equation}
    g(x) = q x + s
    \end{equation}
    \begin{equation}
    h(x) = t x + b
    \end{equation}
\end{subequations}
\end{document}

Ich habe Eq. 1.A. Aber wenn ich \ref{eq1}beispielsweise verwende, habe ich 1.statt 1.

Wenn ich

\renewcommand\theequation{%
    \@arabic\c@equation%
}
\renewcommand\tagform@[1]{%
    \maketag@@@{%
        \textbf{\textsc{Eq}.~\ignorespaces#1.\unskip}
    }%
}
\patchcmd\subequations % nouvelle numérotation pour les sous-équations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation.\protect\Alph{equation}}}
    {}
    {\FAIL}

Ich habe kein Problem mit, \ref{eq1}aber ich habe Eq. 1.A..

Weitere Informationen:

@egreg Es ist ein Befehl, den ich definiert habe, um die Gleichungen zu nummerieren, aber ich habe ihn hier Alph{}zur Vereinfachung durch ersetzt und vergessen, ihn zu entfernen. Danke, dass Sie mich darauf hingewiesen haben.

Danke @muzimuzhi! Aber das ist nicht genau das, was ich möchte. Bei normalen Gleichungen hätte ich gerne einen Punkt nach der Gleichungsnummer.

Die korrekte Nummerierung wäre also:

Gleichung 1.

Gleichung 2.A

Gleichung 2.B

Gleichung 2.C

Es würde also einen Punkt geben "." nach den arabischen Zahlen, aber nichts nach den Großbuchstaben.

Antwort1

Im folgenden Beispiel stelle ich eine Strange-Definition bereit \p@equation, die innerhalb verwendet wird \stepcounter{<counter>}. Möglicherweise gibt es eine elegantere Lösung.

\documentclass[12pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[leqno]{amsmath}
\usepackage{etoolbox}
\usepackage{unicode-math}

\makeatletter
\renewcommand\theequation{%
  \@arabic\c@equation.%
}

\renewcommand\tagform@[1]{%
  \maketag@@@{%
    \textbf{\textsc{Eq}.~\ignorespaces#1\unskip}
  }%
}


\patchcmd\subequations
    {\def\theequation{\theparentequation\alph{equation}}}
    {\def\theequation{\theparentequation\Alph{equation}}}
    {}
    {\FAIL}

\def\p@equation#1{\expandafter\delete@trailing@dot\expanded{#1}.\@nil}
\def\delete@trailing@dot#1.#2.#3\@nil{\ifx\relax#2\relax#1\else#1.#2\fi}
\makeatother

\begin{document}

\begin{equation}
  (a+b)^2 = a^2 + 2 a b + b^2 \label{eq1}
\end{equation}

Some text... \ref{eq1} and \ref{eq2a}

\begin{subequations}
  \begin{align}
    f(x) = a x + b \label{eq2a}\\
    g(x) = q x + s \\
    h(x) = t x + b
  \end{align}
\end{subequations}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen