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