
Sinto muito se esta pergunta foi feita em outro lugar. Procurei por todo lado, mas não consegui encontrar.
Estou escrevendo um documento com muitas listas e muitas referências. Gostaria de me referir a uma entrada de uma lista sem escrever explicitamente \label{}
cada entrada. Achei que o enumitem
pacote resolveria isso, mas talvez esteja enganado.
Aqui está um exemplo:
\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}
E mais tarde no texto eu me refiro a isso como
Theorem~\ref[(ii)]{thm:4.1}
O texto sai comoTheorem ??(ii)]thm:4.1
É possível uma coisa dessas? Ou isso é pedir demais?
Responder1
O principal problema aqui é que \ref
não suporta umopcionalargumento. Como tal, o primeiro token [
é considerado oobrigatórioargumento passado para \ref
, que não possui um argumento apropriado \label
associado a ele. Em vez disso, você pode usar uma das seguintes opções, todas suportadas por padrão viaenumitem
:
\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}
O primeiro requer uma separação manual entre o theorem
rótulo do ambiente e o item enumerado, enquanto o segundo combina-o em uma única etapa, adicionando-o \thetheorem
à ref
propriedade da lista.