Referenzieren mit einem dynamischen Tag

Referenzieren mit einem dynamischen Tag

Ich habe eine Liste mit mehreren Bedingungen mit einem Parameter und möchte den Parameter explizit in das Tag der Bedingung aufnehmen. Allerdings möchte ich später im Text auch auf die Definition jeder Bedingung (mit dem festgelegten Parameter) verweisen. (Das ist etwas schwierig zu beschreiben, aber wenn Sie sich den Code unten ansehen, sollte hoffentlich klar sein, was ich meine.)

Kann dies mit enumitem (oder einem anderen, hoffentlich kompatiblen Paket) erreicht werden?

Mwe:

\documentclass{article}
\usepackage{amsthm}
\usepackage{hyperref}
\usepackage{enumitem}
\newtheorem*{theorem}{Theorem}
\begin{document}
    Consider the following conditions:
    \begin{enumerate}[label=(\roman{*})$_n$]
        \item
        \label{item:first_condition}
        Some condition
        \item
        \label{item:second_condition}
        Some other conditon.
    \end{enumerate}
    
    How I would imagine I could type it:
    \begin{theorem}
        \ref{item:first_condition}[7] holds.
    \end{theorem}
    \begin{theorem}
        If \ref{item:second_condition}[n] holds, then \ref{item:first_condition}[n+2] holds.
    \end{theorem}
    
    How I would like it to look like:
    \begin{theorem}
        (i)$_7$ holds.
    \end{theorem}

    \begin{theorem}
        If (ii)$_n$ holds, then (i)$_{n+2}$ holds.
    \end{theorem}
\end{document}

Antwort1

Sie können das Label und die refAusgabe separat in enumitem festlegen, indem Sie sowohl den labelals auch den refSchlüssel für verwenden \begin{enumerate}. Dies kann verwendet werden, um dieNin der Beschriftung, aber nicht in der Referenz. Dadurch können Sie die Gleichung anhand der Hauptnummer referenzieren und Ihren eigenen Index hinzufügen.

Jetzt können Sie mit dem Befehl einen separaten Referenzierungsbefehl mit zwei Argumenten, der Gleichung und dem Index, definieren \hyperref[target label]{link text}.

Um eine doppelte Linkbox zu vermeiden, können Sie den Link für \refdie Verwendung der Sternform ( \ref*) deaktivieren und \hyperrefdie Linkbox (oder den Farblink mit \usepackage[colorlinks]{hyperref}) für die kombinierte Beschriftung erstellen lassen.

MWE:

\documentclass{article}
\usepackage{amsthm}
\usepackage{hyperref}
\usepackage{enumitem}
\newcommand{\nref}[2]{\hyperref[#1]{\ref*{#1}$_{#2}$}}
\newtheorem*{theorem}{Theorem}
\begin{document}
    Consider the following conditions:
    \begin{enumerate}[label=(\roman{*})$_n$,ref=(\roman*)]
        \item
        \label{item:first_condition}
        Some condition
        \item
        \label{item:second_condition}
        Some other conditon.
    \end{enumerate}
    
    How I would imagine I could type it:
    \begin{theorem}
        \nref{item:first_condition}{7} holds.
    \end{theorem}
    \begin{theorem}
        If \nref{item:second_condition}{n} holds, then \nref{item:first_condition}{n+2} holds.
    \end{theorem}
    
    How I would like it to look like:
    \begin{theorem}
        (i)$_7$ holds.
    \end{theorem}

    \begin{theorem}
        If (ii)$_n$ holds, then (i)$_{n+2}$ holds.
    \end{theorem}
\end{document}

Ergebnis:

Bildbeschreibung hier eingeben

verwandte Informationen