Atualizar

Atualizar

Recebo mensagens de erro quando uso \mathbbo título de um teorema tcolorbox. Aqui está um 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} 

Aqui estão as quatro mensagens de erro:

! 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 

Eu uso o MiKTeX 2.9. Ele foi instalado recentemente e todos os pacotes e formatos foram atualizados. Surpreendentemente, esse parece ser o problema: quando compilo o mesmo documento em outro computador com pacotes mais antigos, não há problemas. Mas ter que depender de pacotes mais antigos não é sustentável no longo prazo, então preciso descobrir como resolver o problema com os pacotes mais novos. Alguém pode me ajudar por favor?

Responder1

Atualizar

A partir da tcolorboxversão 3.96, lançada em 18/11/2016, o bug foi corrigido.

Resposta original

É um bug grave tcolorbox: a macro \tcb@gettitlefaz \edefem vez de \protected@edef, entãomuitosos comandos falharão, não apenas \mathbb(pense em \emph, por exemplo).

Você pode consertar isso redefinindo a macro incorreta.

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

insira a descrição da imagem aqui

Responder2

Você pode tornar o comando robusto:

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

informação relacionada