![ntheorem 中的 thref 无法与 hyperref 配合使用](https://linux22.com/image/437650/ntheorem%20%E4%B8%AD%E7%9A%84%20thref%20%E6%97%A0%E6%B3%95%E4%B8%8E%20hyperref%20%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8.png)
我想使用 ntheorem 的扩展引用功能,但它们似乎无法与 hyperref 一起使用,即使使用 ntheorem 的参数 hyperref。
\documentclass[11pt,a4paper]{article}
\usepackage[thref,hyperref]{ntheorem}
\usepackage{hyperref}
\begin{document}
\section{Section}\label{sec}[Testsection]
Cite with thref: \thref{sec}
\end{document}
这里可选参数 [Testsection] 未被识别为参数,而是被打印出来。如果我删除 hyperref,一切都会按预期运行。
答案1
我担心这个选项thref
会ntheorem
导致一系列难以应对的黑客攻击hyperref
。
您可以使用cleveref
更加强大的功能。
\documentclass[11pt,a4paper]{article}
\usepackage{amsthm}
\usepackage{hyperref}
\usepackage{cleveref}
\newtheorem{theorem}{Theorem}
\crefformat{Testsection}{#2Test section~#1#3}{}
\crefformat{Specialtheorem}{#2Special theorem~#1#3}{}
\begin{document}
\section{Section}\label[Testsection]{sec}
\begin{theorem}\label[Specialtheorem]{thm}
Theorem statement
\end{theorem}
Cite with cref: \cref{sec} and \cref{thm}
\end{document}