多個定理標題

多個定理標題

我想顯示 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}

在此輸入影像描述

相關內容