是否有用于“证明”的 \autoref?

是否有用于“证明”的 \autoref?

我正在使用proof环境,并希望使用\autoref超链接到命题的证明,因为证明在后面的部分。我似乎找不到证明的正确前缀;相反,在命题后使用\begin{proof}[theproof]\label{proof:theproof}withSee \autoref{proof:theproof} for proof不会产生任何结果。

以下是我的义务 MWE:

\documentclass{article}
\usepackage{amsthm,hyperref}
\begin{document}
\begin{proof}\label{proof:theproof}
Hello. This is a proof.
\end{proof}
According to \autoref{proof:theproof}\ldots
\end{document}

\newcommand{\proofautorefname}{Proof}我甚至尝试过,包括在序言中,但都无济于事,但这对我来说没有什么改变。

我发现我可能不是唯一一个遇到这个问题的人;不幸的是,这个可怜的家伙尽管得到了回应,但似乎已经完全放弃了。

答案1

由于proof是一个未编号的环境,没有关联的计数器,因此没有可供选择的字符串\autoref,并且强制编号证明似乎很奇怪。

我建议您改用提供的机制\hyperlink;类似这样的操作:\hypertargethyperref

\documentclass{article} 
\usepackage{amsthm,hyperref} 

\begin{document} 

We'll see in \hyperlink{proof:theproof}{the proof}...

\newpage% just for the example so the proof is in a different page

\begin{proof}[\hypertarget{proof:theproof}{\proofname}]
Hello. This is the proof. 
\end{proof} 

\end{document}

答案2

标准amsthm proof环境不使用计数器,因此hyperref无法提供\proofautorefname命令。

这使用thmtools提供正确\autorefhyperref设施的包。但是,需要proof通过覆盖环境amsthm才能提供计数器值(proof)。

结尾qed框是我添加的一些视觉效果。间距可以随意更改。

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}

\usepackage{blindtext}

\let\proof\relax%

\usepackage{xpatch}


\usepackage{hyperref}
\declaretheorem{proof}
\xpretocmd{\endproof}{\raggedright\qed}{}{}

\begin{document}

\begin{proof}\label{proof:theproof}
Hello. This is a proof. \blindtext
\end{proof}
According to \autoref{proof:theproof}\ldots

\end{document}

在此处输入图片描述

相关内容