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