\declatheorem 使用标签而不是数字,与 cleveref 配合使用

\declatheorem 使用标签而不是数字,与 cleveref 配合使用

我使用由以下定义的定理环境

\declaretheorem[style=definition,name=Property]{property}

介绍一些属性。

\begin{property}[local continuity]\label{lc}
blah blah
\end{property}

\begin{property}[liftable]\label{lift}
blah blah
\end{property}

然后我想使用 cleveref 引用这些属性,因此我添加

\crefname{property}{Property}{Properties}

并通过

By some theorem, $\mu$ has \cref{lc} and $\tau$ has \cref{lc,lift}.

然后会产生如下输出

根据某定理,$\mu$ 具有属性 1,而 $\tau$ 具有属性 1 和 2。

但我希望能够将字符串与这些属性关联起来,例如“LC”和“L”,并让 TeX 输出

根据某些定理,$\mu$ 具有属性 (LC),而 $\tau$ 具有属性 (LC) 和 (L)。

其中 LC 是指向定义它的属性块的超链接。我可以通过创建宏(例如 \LC 和 \L)来伪造它,但这样我就无法获得 cleveref 提供的一次列出多个属性的便捷功能。我更喜欢这些字符串而不是数字,因为这些属性实际上在 50 页的文档中随处可见。

有什么建议吗?我也很高兴听到更多惯用的方法来完成我正在做的事情。

答案1

我假设您希望标签为“Property LC”而不是“Property 1”。

技巧有两个:一个是定义一个内部环境和\declaretheorem一个带有强制参数的外部环境(以及其后的标准可选参数)。这将设置要在标签和交叉引用中使用的字符串。

第二个技巧是使用\crefformat and\crefmultiformat` 在交叉引用处添加括号。

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{cleveref}

\declaretheorem[style=definition,name=Property]{propertyINNER}

\newenvironment{property}[1]
 {\renewcommand{\thepropertyINNER}{#1}\propertyINNER}
 {\endpropertyINNER}
\crefformat{propertyINNER}{Property~#2(#1)#3}
\crefmultiformat{propertyINNER}
  {Properties~(#2#1#3)}
  { and~(#2#1#3)}
  {, (#2#1#3)}
  { and~(#2#1#3)}

\begin{document}

\begin{property}{LC}[local continuity]\label{lc}
blah blah
\end{property}

\begin{property}{L}[liftable]\label{lift}
blah blah
\end{property}

By some theorem, $\mu$ has \cref{lc} and $\tau$ has \cref{lc,lift}.

\end{document}

在此处输入图片描述

如果你想要的是“财产(LC)”,那就更简单了:

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{cleveref}

\declaretheorem[style=definition,name=Property]{propertyINNER}

\newenvironment{property}[1]
 {\renewcommand{\thepropertyINNER}{(#1)}\propertyINNER}
 {\endpropertyINNER}
\crefname{propertyINNER}{Property}{Properties}

\begin{document}

\begin{property}{LC}[local continuity]\label{lc}
blah blah
\end{property}

\begin{property}{L}[liftable]\label{lift}
blah blah
\end{property}

By some theorem, $\mu$ has \cref{lc} and $\tau$ has \cref{lc,lift}.

\end{document}

在此处输入图片描述

相关内容