提问于:
浏览数:
2587
我的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 回答
0
根据`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}
```
-
我懂你的意思了,这么做也是个办法,非常感谢! – 为啥不长草 2021-01-15 21:47 回复
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。