cleveref:\lcnamecref 无法处理未预定义的定理名称

cleveref:\lcnamecref 无法处理未预定义的定理名称

我正在使用cleverefcapitalise选项,我想使用该\lcnamecref命令在文本中给出我的一个定理的名称。但如果这不是预定义的定理类型之一cleveref(引理、定理等),那么我会收到一条错误消息。这是一个 MWE:

\documentclass{article}
\usepackage{amsthm}
\usepackage[capitalise]{cleveref}

\crefname{mythm}{Mytheorem}{Mytheorems}
\newtheorem{mythm}{Mytheorem}

\begin{document}
\begin{mythm}\label{m}
foo
\end{mythm}
That was a \lcnamecref{m}.
\end{document}

当我编译时,我收到错误消息

! Argument of \MakeUppercase has an extra }.

我究竟做错了什么?

答案1

\lcnamecref将强制将定义的名称变为小写\Crefname(大写变体),因此您必须在序言中使用此宏。

\documentclass{article}
\usepackage{amsthm}
\usepackage[capitalise]{cleveref}

% \crefname{mythm}{Mytheorem}{Mytheorems}
\Crefname{mythm}{Mytheorem}{Mytheorems}
\newtheorem{mythm}{Mytheorem}

\begin{document}
\begin{mythm}\label{m}
foo
\end{mythm}
That was a \lcnamecref{m}.
\end{document}

在此处输入图片描述

相关内容