首先,我想定义一个定理环境无编号,因此我尝试了以下代码:
\LoadClass[a4paper]{article}
\RequirePackage{amsmath,amssymb,amsthm}
\RequirePackage{thmtools}
\declaretheoremstyle[]{testbox}
\declaretheorem[style=testbox,name=Theorem]{theo}
\renewcommand{\thetheo}{} %Cancelling the number
\begin{document}
\begin{theo}
Content.
\end{theo}
\end{document}
效果很好。然后我尝试将其扩展到
\LoadClass[a4paper]{article}
\RequirePackage{amsmath,amssymb,amsthm}
\RequirePackage{thmtools}
\declaretheoremstyle[]{testbox}
\newcommand{\newtestbox}[2]{
\declaretheorem[style=testbox,name=#1]{#2}
\renewcommand{\the#2}{} %Error
}
\newtestbox{Theorem}{theo}
\begin{document}
\begin{theo}
Content.
\end{theo}
\end{document}
但现在看来,这似乎\the#2
被认为是某种不规范的反击。我该如何正确使用它?如果故事太长,我很抱歉。
答案1
使用numbered=no
(thmtools手册第3页)。
\documentclass{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{thmtools}
\declaretheoremstyle[]{testbox}
\declaretheorem[
style=testbox,
numbered=no,
name=Theorem,
]{theo}
\begin{document}
\begin{theo}
Content.
\end{theo}
\end{document}
numbered=no
与没有但有 时得到的(错误)输出进行比较\renewcommand{\thetheo}{}
,即
答案2
你可以说:
\LoadClass[a4paper]{article}
\RequirePackage{amsmath,amssymb,amsthm}
\RequirePackage{thmtools}
\declaretheoremstyle[]{testbox}
\newcommand{\newtestbox}[2]{
\declaretheorem[style=testbox,name=#1]{#2}
\expandafter\renewcommand\csname the#2\endcsname{} %Error
}
\newtestbox{Theorem}{theo}
\begin{document}
\begin{theo}
Content.
\end{theo}
\end{document}