使用 thmtools 通过定理名称传递可选参数的问题

使用 thmtools 通过定理名称传递可选参数的问题

我用它thmtools来创建定理,有时我希望定理名称包含数学符号。在这个特定的项目中,我曾经xargs创建一个使用可选参数的命令,但是,每当我尝试将可选参数传递给定理名称时,都会出现编译错误。

我在下面附上了一个 MWE:

\documentclass{article}

\usepackage{amsfonts}
\usepackage{thmtools}
\usepackage{xargs}

\declaretheorem{thm}

\newcommandx{\R}[1][1]{\mathbb{R}^{#1}}


\begin{document}

\begin{thm}[$\R$]
    This theorem works.
\end{thm}

\begin{thm}[$\R[n]$]
    This theorem does not work.
\end{thm}

\end{document}

关于导致此问题的原因以及我如何通过定理名称传递参数,您有什么想法吗?

在日志文件中,我收到以下报告:

! Argument of \\R has an extra }.
<inserted text> 
                \par 
l.21 \begin{thm}[$\R[n]
                       $]
? 

答案1

考虑通过将传递给的参数thm包装在{...中来保护它}

在此处输入图片描述

\documentclass{article}

\usepackage{thmtools}
\usepackage{xargs}

\declaretheorem{thm}

\newcommandx{\R}[1][1]{R^{#1}}

\begin{document}

\begin{thm}[$\R$]
    This theorem works.
\end{thm}

\begin{thm}[{$\R[n]$}]
    This theorem does not work.
\end{thm}

\end{document}

相关内容