
У меня следующая проблема: у меня есть счетчик (в моем случае enumi
), который я хочу использовать для ссылки с другим именем, чем когда он появляется первым. Есть ли инструмент в Tex/Latex, чтобы сделать это?
Если быть точнее, я хочу написать это в теле документа:
\section{Lorem}
\subsection{Ipsum}
\begin{enumerate}
\item \label{my_item} dolor sit amet
\item consectetur
\end{enumerate}
и список будет выглядеть так:
i) долор сит амет
ii) консектетур
но при использовании \ref{my_item}
getting 1.1.i (предполагая, что "Ipsum" - это подраздел 1.1). Таким образом, используя:
\renewcommand{\theenumi} {\bf \arabic{section}.\arabic{subsection}.\roman{enumi}~}
это не то, чего я хочу.
решение1
Ваша цель форматирования может быть достигнута без загрузки дополнительных пакетов LaTeX (хотя, конечно, нет ничего плохого в загрузке подходящих пакетов). Просто добавьте следующий код в преамбулу:
\renewcommand\labelenumi{\roman{enumi})} % determine look of label
\renewcommand\theenumi\labelenumi
\makeatletter
\renewcommand\p@enumi{\thesubsection.} % "prefix" for cross-references
\makeatother
Полная версия MWE:
\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}
Приложение: Того же результата можно добиться, загрузив enumitem
пакет следующим образом:
\usepackage{enumitem}
\setlist[enumerate,1]{label*=\roman*),
ref=\thesubsection.\roman*)}