Vários títulos de teoremas

Vários títulos de teoremas

Quero exibir 2 títulos de teorema e só quero referir automaticamente um título deles

Este é o meu código, ele refere automaticamente otodotítulo

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

insira a descrição da imagem aqui

Espero que o resultado seja assim, refere-se apenas a uma parte dele, que eu gerei manualmente. Além disso, e o mais importante, desejo que se eu mudar o "Foo" para "Baz", ele possaautomaticamentealterar o título em referência

insira a descrição da imagem aqui

Responder1

Você pode definir um comando que se comporte de maneira diferente ao compor o título do teorema ou ao processar \nameref.

Só precisamos ensinar \namerefa usar um significado diferente para \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}

insira a descrição da imagem aqui

informação relacionada