
В начале я хочу определить среду теоремы.без номера, поэтому я попробовал следующий код:
\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
(стр. 3 руководства thmtools).
\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}