Autonum mit Untergleichungen

Autonum mit Untergleichungen

Gibt es eine Möglichkeit, das PaketAutonommit Untergleichungen arbeiten? Im folgenden Beispiel lautet die Referenz zwar korrekt Gl. 1, aber den Gleichungen werden keine Zahlen angehängt (ich würde gerne 1a, 1b sehen).

\documentclass[11pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{autonum}
\begin{document}

\begin{subequations}
    \label{eq:subequations}
    \begin{align}
        1 + 1 = 2, \\
        2 + 2 = 4
    \end{align}
\end{subequations}

Let us examine \cref{eq:subequations}.

\end{document}

Antwort1

apptoDas war interessant. Ich glaube, ich habe eine funktionierende Lösung, die den Befehl aus dem Paket verwendet etoolbox. Beachten Sie, dass empfohlen wird, das hyperrefPaket hypertexnames=falsebei Verwendung mit zu laden autonum(ich habe mich auch für die Verwendung dieser hidelinksOption entschieden).

Das autonumPaket generiert nur dann eine Gleichungsnummer, wenn tatsächlich auf diese Gleichung verwiesen wird. Daher benötigen wir eine Möglichkeit, alle Gleichungen in einer Untergleichungsumgebung zu referenzieren, wenn diese Umgebung stillschweigend referenziert wird. Wir können dies tun, indem wir unseren eigenen Referenzbefehl definieren, der ein Label annimmt und nichts tut, dem Autonum-Paket dann aber mit dem \autonum@generatePatchedReferencevom Paket bereitgestellten Makro mitteilt, dass es sich um einen Referenzbefehl handelt.

\documentclass[11pt,a4paper]{article}
\usepackage{amsmath}
\usepackage[hypertexnames=false, hidelinks]{hyperref} % hypertexnames=false for autonum compatibility (autonum.pdf 3.2 Hyperref)
\usepackage{cleveref}
\usepackage{autonum}
\usepackage{etoolbox} % \appto (etoolbox.pdf 3.3 Hook management)
\newcommand\toplabel[2]{% Args: macro and label for subequations environment
\appto{#1}{(\ref{#2})}%
}
\newcommand\sublabel[2]{% Args: macro and label for a subequation
\appto{#1}{\hoaxref{#2}}% Pretend to reference this equation when #1 is called, to fool autonum
}
\newcommand\hoaxref[1]{%
% Do nothing!
}
\makeatletter
\autonum@generatePatchedReference{hoaxref} % Tell autonum about our reference command (autonum.pdf 3.3 Reference commands)
\makeatother
\begin{document}
\begin{subequations}
    \label{eq:1}
    \begin{align}
        1 + 1 &= 2 \label{eq:1a}\\
        2 + 2 &= 4\label{eq:1b}
    \end{align}
\end{subequations}
\toplabel{\referone}{eq:1}%
\sublabel{\referone}{eq:1a}%
\sublabel{\referone}{eq:1b}%

Let us examine system \referone. 
\begin{subequations}
    \label{eq:2}
    \begin{align}
        3 + 3 &= 8 \label{eq:2a}\\
        4 + 4 &= 8\label{eq:2b}
    \end{align}
\end{subequations}

For comparison, an ordinary reference to system \ref{eq:2}.
\end{document}

Ausgabe:

Ausgabe

Hinweis zur Verwendung: Beschriften Sie die Umgebungsgleichungen der Untergleichungen auf die übliche Weise. Richten Sie dann unterhalb dieser Umgebung ein Makro ein, um die Umgebung zu referenzieren, \toplabel{\myMacroName}{subeq:label}und zwar \sublabel{\myMacroName}{a:sub:equation}für jede Untergleichung, die Sie nummerieren möchten (das müssen nicht alle sein!). Hier \myMacroNameist, was Sie verwenden werden, um die Umgebung der Untergleichung zu referenzieren, wie im Beispiel gezeigt.

verwandte Informationen