我正在使用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
;类似这样的操作:\hypertarget
hyperref
\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
提供正确\autoref
和hyperref
设施的包。但是,需要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}