
Es tut mir leid, wenn diese Frage schon woanders gestellt wurde. Ich habe überall gesucht, konnte sie aber nicht finden.
Ich schreibe ein Dokument mit vielen Listen und vielen Referenzen. Ich möchte auf einen Eintrag einer Liste verweisen, ohne \label{}
für jeden Eintrag explizit etwas ausschreiben zu müssen. Ich dachte, das enumitem
Paket würde das lösen, aber vielleicht irre ich mich.
Hier ist ein Beispiel:
\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}
Und später im Text bezeichne ich dies als
Theorem~\ref[(ii)]{thm:4.1}
Der Text kommt heraus alsTheorem ??(ii)]thm:4.1
Ist so etwas möglich? Oder ist das zu viel verlangt?
Antwort1
Das Hauptproblem hierbei ist, dass \ref
keineOptionalArgument. Daher [
wird das erste Token als dasobligatorischArgument, das an übergeben wird \ref
, dem kein entsprechendes Argument \label
zugeordnet ist. Stattdessen können Sie eine der folgenden Optionen verwenden, die alle standardmäßig unterstützt werden überenumitem
:
\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}
Bei der ersten Methode ist eine manuelle Trennung zwischen der theorem
Umgebungsbezeichnung und dem aufgezählten Element erforderlich, während die zweite Methode diese in einem einzigen Schritt durch Hinzufügen \thetheorem
zur ref
Eigenschaft der Liste kombiniert.