hyperref 包与我的自定义编号的交互

hyperref 包与我的自定义编号的交互

我在用这个答案创建具有自定义编号的命题。这样我就可以手动输入命题名称/编号。实际上,我这样做的目的是创建具有标准编号的命题的“版本 b”:

\usepackage{amsthm}
\usepackage{hyperref}
...
\newtheorem{innercustomthm}{Proposition}
\newenvironment{customthm}[1]
  {\renewcommand\theinnercustomthm{#1}\innercustomthm}
  {\endinnercustomthm}

\begin{document}

\begin{proposition}\label{prop:onlyifdirection}
First version of the proposition.
\end{proposition}

\begin{customthm}{\ref{prop:onlyifdirection}b}\label{prop:onlyifconstructive}
Second version of the proposition.\qed
\end{customthm}

\end{document}

看起来很棒。原始提案是 4.2,第二个版本是 4.2b。我的问题是关于它如何与包交互hyperref。现在,当我用

\ref{prop:onlyifconstructive}

如果我点击“b”,它会链接到第二个版本,但如果我点击“4.2”,它会跳过并链接到第一个版本。我希望实现相同的视觉/打印结果,但每次我调用

\ref{prop:onlyifconstructive}

hyperref链接仅指向该提案的第二个版本。

现在,我当然可以通过硬编码“4.2”而不是输入\ref{prop:onlyifdirection}第二个版本的标签来实现这一点。但理想情况下,应该有一种方法可以做到这一点,即使编号发生变化也不必手动更改。

这是怎么做到的?

答案1

具体到您的应用程序,您可以\ref*在重新定义计数器显示时使用不包括参考超链接的功能:

在此处输入图片描述

\documentclass{article}

\usepackage{amsthm}
\usepackage{hyperref}

\newtheorem{proposition}{Proposition}
\newtheorem{innercustomthm}{Proposition}
\newenvironment{customthm}[1]
  {\renewcommand\theinnercustomthm{#1}\innercustomthm}
  {\endinnercustomthm}

\begin{document}

\begin{proposition}\label{prop:onlyifdirection}
First version of the proposition.
\end{proposition}

\begin{customthm}{\ref*{prop:onlyifdirection}b}\label{prop:onlyifconstructive}
Second version of the proposition.
\end{customthm}

See Propositions~\ref{prop:onlyifdirection} and~\ref{prop:onlyifconstructive}.

\end{document}

相关内容