我想使用 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}