アップデート

アップデート

\mathbbtcolorbox 定理の見出しでを使用するとエラー メッセージが表示されます。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} 

次の 4 つのエラー メッセージがあります。

! 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

アップデート

2016/11/18 リリースのバージョン 3.96では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} 

関連情報