Quiero mostrar 2 títulos de teoremas y solo quiero hacer referencia automáticamente a un título de ellos.
Este es mi código, automáticamente refiere elenterotí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 el resultado pueda ser como el siguiente, solo hace referencia a una parte, la cual la generé manualmente. Además, y lo más importante, deseo que si cambio "Foo" a "Baz", puedaautomáticamentecambiar el título en referencia
Respuesta1
Puede definir un comando que se comporte de manera diferente al escribir el título del teorema o al procesarlo \nameref
.
Sólo necesitamos enseñar \nameref
a usar un 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}