Ich möchte 2 Titel von Theoremen anzeigen und nur einen davon automatisch referenzieren
Das ist mein Code, er verweist automatisch auf dieganzTitel
\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}
Ich hoffe, dass das Ergebnis wie folgt aussehen kann, es bezieht sich nur auf einen Teil davon, den ich manuell generiert habe. Außerdem und vor allem wünsche ich mir, dass, wenn ich "Foo" in "Baz" ändere, esautomatischÄndern Sie den Titel in Referenz
Antwort1
Sie können einen Befehl definieren, der sich beim Setzen des Theoremtitels oder bei der Verarbeitung unterschiedlich verhält \nameref
.
Wir müssen nur lehren, \nameref
eine andere Bedeutung für zu verwenden \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}