更新

更新

\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

更新

截至tcolorbox2016年11月18日發布的3.96版本,該錯誤已修復。

原答案

這是一個嚴重的錯誤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} 

相關內容