Aktualisieren

Aktualisieren

Ich erhalte Fehlermeldungen, wenn ich \mathbbin der Überschrift eines Tcolorbox-Theorems verwende. Hier ist ein 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} 

Hier sind die vier Fehlermeldungen:

! 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 

Ich verwende MiKTeX 2.9. Es ist neu installiert und alle Pakete und Formate sind aktualisiert. Überraschenderweise scheint das das Problem zu sein: Wenn ich dasselbe Dokument auf einem anderen Computer mit älteren Paketen kompiliere, gibt es keine Probleme. Aber auf lange Sicht auf ältere Pakete angewiesen zu sein, ist nicht tragbar, also muss ich herausfinden, wie ich das Problem mit den neuesten Paketen lösen kann. Kann mir bitte jemand helfen?

Antwort1

Aktualisieren

Ab tcolorboxVersion 3.96, veröffentlicht am 18.11.2016, ist der Fehler behoben.

Ursprüngliche Antwort

Es handelt sich um einen schlimmen Fehler in tcolorbox: das Makro \tcb@gettitleführt \edefstatt aus \protected@edef, alsovieleBefehle werden fehlschlagen, nicht nur \mathbb(denken Sie \emphbeispielsweise an ).

Sie können das Problem beheben, indem Sie das fehlerhafte Makro neu definieren.

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

Bildbeschreibung hier eingeben

Antwort2

Sie können den Befehl robust machen:

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

verwandte Informationen