
Estou com o seguinte problema: tenho um contador (no meu caso enumi
) que quero usar para referenciar com um nome diferente de quando aparece primeiro. Existe uma ferramenta em Tex/Latex para fazer isso?
Para ser mais preciso: quero escrever isto no corpo do meu documento:
\section{Lorem}
\subsection{Ipsum}
\begin{enumerate}
\item \label{my_item} dolor sit amet
\item consectetur
\end{enumerate}
e faça com que a lista apareça como:
i) dolor sit amet
ii) consectetur
mas ao usar \ref{my_item}
o 1.1.i (assumindo que "Ipsum" seja a subseção 1.1). Então, usando:
\renewcommand{\theenumi} {\bf \arabic{section}.\arabic{subsection}.\roman{enumi}~}
não é o que eu quero.
Responder1
Seu objetivo de formatação pode ser alcançado sem carregar nenhum pacote LaTeX extra (embora não haja, é claro, nada de errado em carregar pacotes adequados). Basta adicionar o seguinte código ao preâmbulo:
\renewcommand\labelenumi{\roman{enumi})} % determine look of label
\renewcommand\theenumi\labelenumi
\makeatletter
\renewcommand\p@enumi{\thesubsection.} % "prefix" for cross-references
\makeatother
Um MWE completo:
\documentclass{article}
\renewcommand\labelenumi{\roman{enumi})}
\renewcommand\theenumi\labelenumi
\makeatletter
\renewcommand\p@enumi{\thesubsection.}
\makeatother
\begin{document}
\section{Lorem}
\subsection{Ipsum}
\begin{enumerate}
\item \label{my_item} dolor sit amet
\item consectetur
\end{enumerate}
\section{Dolor}
A cross-reference to item \ref{my_item}.
\end{document}
Termo aditivo: A mesma saída pode ser obtida carregando o enumitem
pacote da seguinte forma:
\usepackage{enumitem}
\setlist[enumerate,1]{label*=\roman*),
ref=\thesubsection.\roman*)}