我有theorem
一些环境,它们具有相同的定理样式,我通过 定义它们amsthm
。我希望它们都共享相同的计数器。这样,遵循定理 1.2.6 的引理将具有编号 1.2.7。我想使用cleveref
来引用这些环境。我使用 documentclass memoir
。
[theorem]
但是,输出没有正确引用环境名称。这与我在定义中使用可选值有关吗\newtheorem{lemma}
?
平均能量损失
\documentclass{memoir}
\usepackage{amsthm}
% Defining a theorem style that has bold head and italic body
\newtheoremstyle{italic}{5pt}{5pt}{\itshape}{}{}{}{.5em}
{\bfseries{\thmname{#1}~\thmnumber{#2}.}\thmnote{~\textnormal{(#3)}}}
\theoremstyle{italic}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\usepackage[capitalise]{cleveref}
\begin{document}
\begin{theorem}\label{thm1}
This is a theorem.
\end{theorem}
\begin{lemma}\label{lem1}
This is a lemma.
\end{lemma}
\cref{thm1} \cref{lem1}
\end{document}
输出
期望输出
答案1
你只需要将类似定理的环境的定义移动到后包裹的装载cleveref
:
\documentclass{memoir}
\usepackage{amsthm}
\usepackage[capitalise]{cleveref}
% Defining a theorem style that has bold head and italic body
\newtheoremstyle{italic}{5pt}{5pt}{\itshape}{}{}{}{.5em}
{\bfseries{\thmname{#1}~\thmnumber{#2}.}\thmnote{~\textnormal{(#3)}}}
\theoremstyle{italic}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\begin{document}
\begin{theorem}\label{thm1}
This is a theorem.
\end{theorem}
\begin{lemma}\label{lem1}
This is a lemma.
\end{lemma}
\cref{thm1} \cref{lem1}
\end{document}
请参阅第 14.1 节“非 bug”cleveref
手动的。
像往常一样,请记住应该cleveref
将 加载为前言中的最后一个包,请参阅手册中的第 13 节与其他包的交互。特别是,在此示例中,它必须晚于 的加载amsthm
。