
¿Hay alguna manera de hacer el paquete?autónomo¿Trabajar con subecuaciones? En el siguiente ejemplo, la referencia leerá correctamente la ecuación. 1, pero no se añade ningún número a las ecuaciones (me gustaría ver 1a, 1b).
\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}
Respuesta1
Esto fue interesante. Creo que tengo una solución que funciona utilizando el appto
comando del etoolbox
paquete. Tenga en cuenta que se recomienda cargar el hyperref
paquete hypertexnames=false
cuando lo use autonum
(también elegí usar la hidelinks
opción).
El autonum
paquete solo generará un número de ecuación cuando realmente se haga referencia a esa ecuación, por lo que necesitamos una forma de hacer referencia a todas las ecuaciones en un entorno de subecuaciones cuando se haga referencia a ese entorno de manera silenciosa. Podemos hacer esto definiendo nuestro propio comando de referencia que toma una etiqueta y no hace nada, pero luego le decimos al paquete autonum que es un comando de referencia con la \autonum@generatePatchedReference
macro proporcionada por el paquete.
\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}
Producción:
Nota de uso: Etiquete las ecuaciones ambientales de las subecuaciones de la forma habitual. Luego, debajo de este entorno, configure una macro para hacer referencia al entorno \toplabel{\myMacroName}{subeq:label}
y luego \sublabel{\myMacroName}{a:sub:equation}
para cada subecuación que desee numerar (¡no es necesario que sean todas!). Esto \myMacroName
es lo que utilizará para hacer referencia al entorno de subecuación, como se muestra en el ejemplo.