Alterar \ref texto

Alterar \ref texto

Gostaria de saber se posso alterar o texto exibido em\ref globalmentepara \labelfazer referência a um ambiente numerado. Concretamente:

Suponhamos que eu tenha um teorema chamado “Prova Importante”.

\begin{theorem}[Important Proof]\label{IP}
Trivial.
\end{theorem}

Então \ref{IP}exibiria algo como 1.1.1. No entanto, quero alterar esse texto apenas esporadicamente, para que esta prova específica seja exibida, por exemplo, com Important Proof, mas todas as outras provas não sejam afetadas.

O que eu quis dizer comglobalmente? Eu vi algumas soluções alternativas \hyperrefsempre, mas isso não parece muito convincente; Eu gostaria de ter algum tipo de redefinição, para poder usar algo como \refst. Não preciso inserir o texto manualmente todas as vezes.

Responder1

\documentclass{article}
\usepackage{hyperref}
\newtheorem{theorem}{Theorem}
\begin{document}
\begin{theorem}[Important Proof]%
\makeatletter\def\@currentlabel{Important Proof}\makeatother
\label{IP}
Trivial.
\end{theorem}

\ref{IP}
\end{document}

insira a descrição da imagem aqui

Responder2

Eu não acho que isso seria possívelsimplesmentesem redefinir \ref, o que provavelmente é consideravelmente mais trabalhoso do que você está interessado (ou do que o problema realmente vale). No entanto, você pode definir uma macro wrapper que cuide do que você deseja. Certifique-se de usar \usepackage{ifthen}(este é um pacote LaTeX padrão) e defina uma macro \nrefassim:

\def\nref#1{%
    \ifthenelse{\equal{#1}{IP}}{%
        ``Important Proof''%
    }{%
        \ref{#1}%
    }%
}%

Então, sempre que você usar \ref, use \nref. Isso resultou nas seguintes referências, quando defini duas figuras:

Resultados

Espero que isso responda à sua dificuldade.

informação relacionada