更新

更新

\mathbb当我在 tcolorbox 定理的标题中使用时,我收到错误消息。以下是 MWE:

\documentclass{article}
\usepackage{amsfonts}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newtcbtheorem{boxtheorem}{Theorem}{}{thm}
\begin{document}
\begin{boxtheorem}{This is the problem: $\mathbb{N}$}{}
This is fine: $\mathbb{N}$
\end{boxtheorem}
\end{document} 

以下是四条错误消息:

! Undefined control sequence.
\GenericError  ...                                
                                                #4  \errhelp \@err@     ...

! Undefined control sequence.
\GenericError  ...                                
                                              \let \@err@               ...

! Undefined control sequence.
\GenericError  ...                                
                                              \@empty \def \MessageBreak...

! Undefined control sequence.
\GenericError  ...                                
                                                 \endgroup 

我使用 MiKTeX 2.9。它是新安装的,所有软件包和格式都已更新。令人惊讶的是,这似乎是问题所在:当我在另一台使用旧软件包的计算机上编译同一文档时,没有任何问题。但从长远来看,依赖旧软件包是不可持续的,所以我需要弄清楚如何使用最新软件包解决这个问题。有人能帮帮我吗?

答案1

更新

作为tcolorbox,该错误已得到修复。

原始答案

这是一个严重的错误tcolorbox:宏不\tcb@gettitle会这样做\edef\protected@edef,因此许多命令将失败,不仅仅是\mathbb(想想\emph)。

您可以通过重新定义错误的宏来修复它。

\documentclass{article}
\usepackage{amsfonts}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newtcbtheorem{boxtheorem}{Theorem}{}{thm}

\makeatletter
\def\tcb@gettitle#1{\protected@edef\@currentlabelname{#1}}
\makeatother


\begin{document}

\begin{boxtheorem}{This is the \emph{problem}: $\mathbb{N}$}{}
This is fine: $\mathbb{N}$
\end{boxtheorem}

\end{document}

在此处输入图片描述

答案2

您可以使命令更加强大:

\documentclass{article}
\usepackage{amsfonts}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newtcbtheorem{boxtheorem}{Theorem}{}{thm}
\usepackage{etoolbox}
\robustify\mathbb
\begin{document}
\begin{boxtheorem}{This is the problem: $\mathbb{N}$}{}
This is fine: $\mathbb{N}$
\end{boxtheorem}
\end{document} 

相关内容