参照のみのカウンターの印刷を変更する

参照のみのカウンターの印刷を変更する

次のような問題があります。最初に表示されるときとは異なる名前で参照するために使用したいカウンター (私の場合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}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*)}

関連情報