Я хочу отобразить 2 названия теоремы, но хочу автоматически ссылаться только на одно из них.
Это мой код, он автоматически ссылается навесьзаголовок
\documentclass{minimal}
\usepackage{amsthm,hyperref}
\newtheorem{theorem}{Theorem}[]
\begin{document}
\begin{theorem}[Foo, or Bar]
\label{an example}
Mike is a human
\end{theorem}
By \nameref{example}, ...
\end{document}
Я надеюсь, что результат может быть таким, как показано ниже, он ссылается только на часть, которую я сгенерировал вручную. Кроме того, и самое главное, я хочу, чтобы если я изменю "Foo" на "Baz", он могавтоматическиизменить название в ссылке
решение1
Вы можете определить команду, которая будет вести себя по-разному при наборе заголовка теоремы или при обработке \nameref
.
Нам просто нужно научить \nameref
использовать другое значение для \alt
.
\documentclass{article}
\usepackage{etoolbox}
\usepackage{amsthm,hyperref}
\usepackage{xparse}
\newtheorem{theorem}{Theorem}
\NewDocumentCommand{\alt}{m}{#1}
\makeatletter
\patchcmd{\T@nameref}{\@gobble}{\@gobble\let\alt\@gobble}{}{}
\makeatother
\begin{document}
\begin{theorem}[Foo\alt{, or Bar}]
\label{example}
Mike is a human
\end{theorem}
By \nameref{example}, ...
\end{document}