Несколько названий теорем

Несколько названий теорем

Я хочу отобразить 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}

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

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