如何抑制编号定理的数量?

如何抑制编号定理的数量?

有没有一种方法,使用amsthmthmtools(也可能使用其他软件包)让 LaTeX 跟踪特定类型定理的数字,但又不让这些数字真正出现在打印的文本中?

例如:

\documentclass{article}

\usepackage{amsthm}
\usepackage{thmtools}

\declaretheoremstyle[numbered=yes]{probs}
\declaretheorem[name=PROBLEMS,style=probs,numberwithin=section]{problems} 

\begin{document}

\section{First section}

\begin{problems}
Blah-blah
\end{problems}

\end{document}

我想要的输出应该是:

在此处输入图片描述

请注意答案是不是简单地使用numbered=no(或者,不thmtools声明\newtheorem*)——因为我仍然想引用定理的数字(而不是名称),例如与 一起使用\hyperref

[这个问题与我的问题有关如何使用 cleveref 获取类似定理的名称和列表项编号?

答案1

我不推荐这种风格,但可以通过欺骗preheadhook让其\theproblems不执行任何操作,然后稍后再使用 启用它postheadhook,这样label选项(或\label命令)无论如何都会使用非空\theproblems

enumitem但是,可以使用专门用于以下用途的简单列表来更改枚举引用problems

\documentclass{article}

\usepackage{amsthm}
\usepackage{thmtools}
\usepackage{enumitem}
\usepackage{hyperref}

\declaretheoremstyle[numbered=yes]{probs}
\declaretheorem[name=PROBLEMS,style=probs,numberwithin=section,preheadhook={\let\theproblems\relax},postheadhook={\newcommand{\theproblems}{\thesection.\arabic{problems}}\leavevmode}]{problems} 

\newlist{probenum}{enumerate}{1}

\setlist[probenum,1]{label={\arabic*)},ref={Problem \thesection(\arabic*)}}


\begin{document}


\section{First section}

\begin{problems}
\begin{probenum}
  \item foo \label{foo}
  \item bar \label{bar}
\end{probenum}
\end{problems}


\section{other}

\begin{problems}
\begin{probenum}
  \item foo \label{fooother}
  \item bar \label{barother}
\end{probenum}
\end{problems}

In \ref{fooother}, \ref{bar} or in \ref{foo} it is shown that

\end{document}

在此处输入图片描述

相关内容