定理のタイトルを2つ表示したいのですが、そのうちの1つのタイトルのみを自動的に参照したいのです
これは私のコードです。自動的に参照されます全体タイトル
\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}