
Lo siento si esta pregunta se hizo en otro lugar. Busqué por todas partes pero no pude encontrarlo.
Estoy escribiendo un documento con muchas listas y muchas referencias. Me gustaría hacer referencia a una entrada de una lista sin escribir explícitamente \label{}
cada entrada. Pensé que el enumitem
paquete solucionaría esto pero tal vez me equivoque.
He aquí un ejemplo:
\begin{theorem} There are four equivalent things
\begin{enumerate}[label=(\roman{*}), ref=(\roman{*})]
\item Thing 1
\item Thing 2
\item Thing 3
\item Thing 4
\end{enumerate}
Y luego más adelante en el texto me refiero a esto como
Theorem~\ref[(ii)]{thm:4.1}
El texto sale comoTheorem ??(ii)]thm:4.1
¿Es posible tal cosa? ¿O es pedir demasiado?
Respuesta1
El principal problema aquí es que \ref
no admite unaopcionalargumento. Como tal, [
se considera que el primer token es elobligatorioargumento pasado a \ref
, que no tiene un atributo apropiado \label
asociado. En su lugar, puede utilizar una de las siguientes opciones, todas ellas compatibles de forma predeterminada a través deenumitem
:
\documentclass{article}
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}\label{thm:labelA} There are four equivalent things
\begin{enumerate}[label=(\roman*), ref=(\roman*)]
\item \label{thm:labelA:thing1} Thing 1
\item \label{thm:labelA:thing2} Thing 2
\item \label{thm:labelA:thing3} Thing 3
\item \label{thm:labelA:thing4} Thing 4
\end{enumerate}
\end{theorem}
Theorem~\ref{thm:labelA}\ref{thm:labelA:thing2}.
\begin{theorem}\label{thm:labelB} There are four equivalent things
\begin{enumerate}[label=(\roman*), ref=\thetheorem(\roman*)]
\item \label{thm:labelB:thing1} Thing 1
\item \label{thm:labelB:thing2} Thing 2
\item \label{thm:labelB:thing3} Thing 3
\item \label{thm:labelB:thing4} Thing 4
\end{enumerate}
\end{theorem}
Theorem~\ref{thm:labelB:thing2}.
\end{document}
El primero requiere una separación manual entre la theorem
etiqueta del entorno y el elemento enumerado, mientras que el segundo lo combina en un solo paso agregándolo \thetheorem
a la ref
propiedad de la lista.