多个定理标题

多个定理标题

我想显示定理的 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}

在此处输入图片描述

相关内容