tcolorbox 可破坏颜色,使用 xelatex 变为白色

tcolorbox 可破坏颜色,使用 xelatex 变为白色

使用 tcolorbox 与 xelatex,当框被打破时,框后的字体颜色变为白色。最小例子:

\documentclass{minimal}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\usepackage{lipsum}
\newtcolorbox{test}{breakable} 
\begin{document}
\begin{test}
    \lipsum
\end{test}
This is written in white.
\end{document}

使用 pdflatex 时会显示最后一行,而使用 xelatex 时则不会。

答案1

不幸的是,xelatex 不支持用于tcolorbox v4.32可破坏框的颜色堆栈。该实现在几个地方发生了变化,并为 xelatex 引入了这个新错误。

我尝试了一些以前用过的方法。似乎\color{.}在最后用 重置当前颜色就足够了。

以下对我有用:

\documentclass{minimal}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\usepackage{lipsum}

\makeatletter
\def\tcb@finalize@environment{%
  \color{.}% hack for xelatex
  \tcb@layer@dec%
}
\makeatother

\newtcolorbox{test}{breakable,colupper=blue}
\begin{document}
\begin{test}
\lipsum
\end{test}
This is written (not any longer) in white.
\end{document}

相关内容