如何为类定理环境实现 cleveref 的 aliascnt 方法?

如何为类定理环境实现 cleveref 的 aliascnt 方法?

这个答案演示如何使用该aliascnt方法创建一个ineq与环境共享计数器的环境equation,但cleveref仍然可以识别为与不同的环境equation

答案中用于定义环境的代码是从中用于定义环境的ineq代码中复制而来。因此,答案特定于需要定义类似环境的情况。latex.ltxequationequation

aliascnt然而,当要定义的新环境类似于theorem而不是时,如何使用该方法equation,如中所述这个问题

答案1

MWE 的错误之处发布OP 提到的原因是cleveref包加载得太晚,即只有指令\newtheorem将被执行。如果\usepackage{cleveref}位于\usepackage{amsthm}和之后 \newtheorem,该\cref命令产生预期的,即正确的输出。

值得一提的是,如果加载了(或) 包,则需要在执行命令cleveref之前加载包,这一点在包的用户指南中多次提到。例如,在第 14.1 节“无错误”中,第二个要点指出 [突出显示已添加]:\newtheoremamsthmntheoremcleveref

在此处输入图片描述

最后,我认为没有必要承受这种aliascnt方法的麻烦 —— 至少对于当前的用例来说不需要。

在此处输入图片描述

\documentclass{article}
\usepackage{amsthm,cleveref}
\newtheorem{definition}{Definition}
\newtheorem{theorem}[definition]{Theorem}

\begin{document}
\begin{definition}\label{d}
This is a definition.
\end{definition}

\begin{theorem}\label{t}
This is a theorem.
\end{theorem}

Here is a cross-reference to~\cref{t}.
\end{document}

相关内容