我想顯示 2 個定理標題,但只想自動引用其中一個標題
這是我的程式碼,它會自動引用所有的標題
\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}