tcolorbox中设置breakable后,断页之后字体颜色与断页之前不一致

2021-01-14 22:18发布

我的tcolorbox中,开始文本是黑色,之后在某一位置之后是红色,当断页出现在红色文本之后,后面的颜色变为黑色,我希望他能保持原有颜色。 ``` \documentclass[a4paper,11p...

我的tcolorbox中,开始文本是黑色,之后在某一位置之后是红色,当断页出现在红色文本之后,后面的颜色变为黑色,我希望他能保持原有颜色。 ``` \documentclass[a4paper,11pt]{book} \usepackage{lipsum} \usepackage[most]{tcolorbox} \newcommand{\exemple}[1]{% \begin{tcolorbox}[breakable,enhanced,colback=gray!10]%,extras={colupper={green}} \color{red}#1% \end{tcolorbox} } \begin{document} \exemple{% \lipsum } \end{document} ``` 我希望他能保持和原来一样的颜色,目前只查到extras,但颜色该如何设置我不知道。 下面是我使用中的实际情况截图 ![](https://wenda.latexstudio.net/data/attach/210114/26D3XT82.png)
1条回答
yuxtech.github.
2021-01-15 09:53 .采纳回答
根据`tcolorbox`文档的描述,颜色命令在盒子断开的时候会失效,这个时候使用`use color stack`选项可以使得颜色命令在盒子断开时继续生效,但是只对`pdflatex`编译,对`xelatex`编译是无效的,而且经过测试,`use color stack`选项必须加载在`breakable`选项前面。至于这里说的传闻中用`fontspec`包的`\addfontfeatures`命令,亲测无效。 但是如果非要在`xelatex`编译下实现这个要求的话,可以利用`colupper`和`collower`参数 ```tex \documentclass[a4paper,11pt]{book} \usepackage{lipsum} \usepackage[most]{tcolorbox} \begin{document} \begin{tcolorbox}[ breakable, enhanced, colback = gray!10, colupper = black, %% 设置\tcblower前的文字颜色 collower = red %% 设置\tcblower后的文字颜色 ] Black , \tcblower \lipsum \end{tcolorbox} \begin{tcolorbox}[ breakable, enhanced, colback = gray!10, colupper = black, %% 设置\tcblower前的文字颜色 collower = red, %% 设置\tcblower后的文字颜色 segmentation hidden %% 如果不希望输出那条分界的虚线,增加这个选项 ] Black , \tcblower \lipsum \end{tcolorbox} \end{document} ```

一周热门 更多>