Изменить \ref текст

Изменить \ref текст

Интересно, можно ли изменить отображаемый текст в\ref глобальнодля \labelссылки на пронумерованную среду. Конкретно:

Предположим, у меня есть теорема под названием «Важное доказательство».

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

Затем \ref{IP}отобразится что-то вроде 1.1.1. Однако я хочу изменять этот текст только спорадически, чтобы отображалось конкретное доказательство, например, с Important Proof, но все остальные доказательства остаются неизменными.

Что я имел в виду, говоряглобально? Я видел некоторые обходные пути, использующие \hyperrefкаждый раз, но это не кажется действительно убедительным; я хотел бы иметь какое-то переопределение, чтобы я мог просто использовать что-то вроде \refst, и мне не приходилось бы вставлять текст каждый раз вручную.

решение1

\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}

введите описание изображения здесь

решение2

Я не думаю, что это возможно.простобез переопределения \ref, что, вероятно, значительно больше работы, чем вам интересно (или чем проблема действительно стоит). Однако вы можете определить макрос-оболочку, которая позаботится о том, что вам нужно. Убедитесь, что вы используете \usepackage{ifthen}(это стандартный пакет LaTeX), и определите макрос \nrefследующим образом:

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

Затем, всякий раз, когда вы будете использовать \ref, используйте \nrefвместо этого. Это привело к следующим ссылкам, когда я определил две цифры:

Полученные результаты

Надеюсь, я ответил на ваш вопрос.

Связанный контент