Cleveref 用于定理编号后的破折号:例如定理 1'

Cleveref 用于定理编号后的破折号:例如定理 1'

我想给出一个定理的两个版本,并将它们编号为定理 1 和定理 1',就像问题一样定理编号后加破折号:例如定理 1'定理编号如定理 $1'$

我稍后想使用 cleveref 引用定理 1',并认识到它是一个定理,因此能够说例如“定理 1' 和 3”。我无法使它工作,无论是使用引用的答案还是其他方式。我尝试的代码和输出的屏幕截图如下。任何关于我做错什么的建议(或只是解决问题的另一种方法)都将不胜感激。我注意到的一件事是,例如更改为根本不会\Crefname{manualtheorem}{Test}{Tests}改变第三行输出,所以那里发生了一些有趣的事情。

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

\newtheorem{theorem}{Theorem}

\newtheorem{manualtheoreminner}{Theorem}
\newenvironment{manualtheorem}[1]{%
  \renewcommand\themanualtheoreminner{#1}%
  \manualtheoreminner
}{\endmanualtheoreminner}
\Crefname{manualtheorem}{Theorem}{Theorems}
\crefname{manualtheorem}{theorem}{theorems}
\begin{document}

\begin{theorem}\label{foo}
This is a theorem.
\end{theorem}
\begin{theorem}\label{foo2}
    This is another theorem
    \end{theorem}

\begin{manualtheorem}{\ref{foo}'}\label{baz}
This is a theorem'.
\end{manualtheorem}
\begin{manualtheorem}{\ref{foo2}'}\label{baz2}
    This is another theorem'.
\end{manualtheorem}

\Cref{foo,foo2}, as desired, gives  ``Theorems 1 and 2.''

\Cref{baz,baz2}, does not give the desired ``Theorems 1' and 2'.''

\Cref{foo,baz} does not give the desired ``Theorems 1 and 1'.''
\end{document}

乳胶代码的输出

答案1

Cleveref 调整了标签命令以包含一个可选的额外参数,该参数描述了要为对象赋予哪个名称。因此,只需将 替换 \label{baz}\label[theorem]{baz}\label{baz2}即可\label[theorem]{baz2}

相关内容