cleveref 用于相同类型的定理

cleveref 用于相同类型的定理

我通常成对创建定理环境 - 一个使用普通定理样式,另一个(其名称以大写字母开头)使用“break”样式,在定理文本前插入换行符。这对于具有长文本或长名称的定理非常有用。cleveref似乎很好地支持了这一点,至少对于对单个定理的引用而言。但是,\crefrange看不到这两个定理具有相同的类型(见下文)。

我知道有一种解决方法,使用aliascnt;但是,为了保持简单并避免错误,我希望尽可能少地使用处理引用的包。此外,使用aliascnt是一个略显“丑陋”的解决方案,如果您使用许多不同的定理类型,它会涉及大量代码。有人能给我提供一个不涉及aliascnt,但(最好)只使用ntheorem和 的解决方案cleveref吗?

\documentclass{article}

\usepackage{ntheorem,cleveref}

\newtheorem{thm}{Theorem}

\theoremstyle{break}
\newtheorem{Thm}[thm]{Theorem}

\crefname{thm}{theorem}{theorems}

\begin{document}

    \begin{thm}\label{thm:short}
        Theorem with short text.
    \end{thm}

    \begin{Thm}[The well-ordering theorem]\label{thm:long}
        Theorem with long text.
    \end{Thm}

    \cref{thm:short}

    \cref{thm:long}

    \crefrange{thm:short}{thm:long}
\end{document}

在此处输入图片描述

答案1

cleveref提供\crefalias

\crefalias{Thm}{thm}

梅威瑟:

\documentclass{article}

\usepackage{ntheorem,cleveref}

\newtheorem{thm}{Theorem}

\theoremstyle{break}
\newtheorem{Thm}[thm]{Theorem}

\crefname{thm}{theorem}{theorems}
\crefalias{Thm}{thm}

\begin{document}

    \begin{thm}\label{thm:short}
        Theorem with short text.
    \end{thm}

    \begin{Thm}[The well-ordering theorem]\label{thm:long}
        Theorem with long text.
    \end{Thm}

    \cref{thm:short}

    \cref{thm:long}

    \crefrange{thm:short}{thm:long}
\end{document} 

输出

在此处输入图片描述

PS 如果您想要连词结尾,请添加以下行

\newcommand{\crefrangeconjunction}{--}

在序言中。

相关内容