我正在尝试使用cleveref
包裹。
我定义了以下计数器(希望这是正确的方法!)
\newtheorem{thm}{Theorem}[section]
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
这按照我希望的方式工作(即定理 1.1、推论 1.2、引理 1.3 等)
我的问题\cref
总是返回定理 1.2、定理 1.3。我
这也许不对?(在我的序言中)
\crefname{thm}{theorem}{theorem's}
\crefname{lemma}{lemma}{lemma's}
答案1
您描述的行为来自标准 LaTeX命令;可以使用或包\newtheorem
解决该问题:amsthm
ntheorem
\documentclass{article}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\begin{document}
\begin{thm}\label{thm:test}
test
\end{thm}
\begin{lemma}\label{lem:test}
test
\end{lemma}
As shown in \cref{thm:test} and \cref{lem:test}
\end{document}
命令\newtheorem
必须下达后的加载cleveref
。此外,还cleverref
必须加载包后 ntheorem
或amsthm
。总的来说,这给出了以下顺序:
\usepackage{ntheorem}
\usepackage{cleveref}
\newtheorem{...}
顺便说一句,定理和引理的复数形式不使用撇号,因此你应该使用
\crefname{thm}{theorem}{theorems}
\crefname{lemma}{lemma}{lemmas}