Actualizar

Actualizar

Recibo mensajes de error cuando uso \mathbben el encabezado de un teorema de tcolorbox. Aquí hay un 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} 

Aquí están los cuatro mensajes de error:

! 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 

Yo uso MiKTeX 2.9. Está recién instalado y todos los paquetes y formatos están actualizados. Sorprendentemente, ese parece ser el problema: cuando compilo el mismo documento en otra computadora con paquetes más antiguos, no hay problemas. Pero tener que depender de paquetes más antiguos no es sostenible a largo plazo, por lo que necesito descubrir cómo resolver el problema con los paquetes más nuevos. ¿Alguien puede ayudarme por favor?

Respuesta1

Actualizar

A partir de tcolorboxla versión 3.96, lanzada el 18/11/2016, el error se ha solucionado.

Respuesta original

Es un error grave en tcolorbox: la macro \tcb@gettitlelo hace \edefen lugar de \protected@edef, así quemuchosLos comandos fallarán, no solo \mathbb(piense en \emph, por ejemplo).

Puedes solucionarlo redefiniendo la macro incorrecta.

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

ingrese la descripción de la imagen aquí

Respuesta2

Puedes hacer que el comando sea 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} 

información relacionada