我尝试维护可破坏框中的当前文本颜色tcolorbox
,但手册明确指出(请参阅当前版本的手册,第 15.2 节,第 292 页,版本 3.34)
• 如果您的文本内容包含一些文本颜色改变命令,您的颜色将无法在下一个框中保留。
所以,这必须失败(现在)。但是,颜色变化在显式 TeX 框中保留,使用 进行拆分\vsplit
。
有没有办法(即 hack/patch)强制tcolorbox
保持破损盒子的一部分到另一部分之间的当前文本颜色?
{ \color{....}...}
使用或\begingroup \color{...}...\endgroup
或进行分组\textcolor{...}{...}
均不起作用。
\documentclass{article}
\usepackage{blindtext}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\begin{document}
\begin{tcolorbox}[breakable]
\blindtext[3]
\color{blue} % To 'force' color change
\blindtext[3]
\color{red}
\blindtext
\color{brown}
\blindtext
\end{tcolorbox}
\end{document}
如果可行的话,第二个框的上半部分的颜色应该是蓝色;-)
答案1
使用 xelatex 或 lualatex,你可以为字体着色,而不必使用颜色命令。这不会影响到方框中断:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
\usepackage{blindtext}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\begin{document}
\begin{tcolorbox}[breakable]
\blindtext[3]
\addfontfeatures{Color=blue}
\blindtext[3]
\addfontfeatures{Color=red}
\blindtext
\addfontfeatures{Color=brown}
\blindtext
\end{tcolorbox}
\end{document}