Как включить параметр при вызове макроса?

Как включить параметр при вызове макроса?

В начале я хочу определить среду теоремы.без номера, поэтому я попробовал следующий код:

\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}

Связанный контент