我tcbitemize
在 中通过环境构建了一个栅格tcolorbox
。我发现该选项raster column 1/.style
对嵌套有影响,tcbitemize
如下例所示。您可以看到嵌套栅格的第一列被涂成红色,这不是我想要的。如何通过栅格的较高层上的较低层来取消这种影响tcolorbox
?
\documentclass[12pt,a4paper]{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable,raster}
\begin{document}
\begin{tcbitemize}[raster equal height=rows,raster columns=4,raster column 1/.style={colback=red}]
\tcbitem 1\tcbitem 1\tcbitem 1\tcbitem 1
\tcbitem 1
\tcbitem \begin{tcbitemize}[raster columns=2]
\tcbitem 2\tcbitem 2
\end{tcbitemize}
\tcbitem 1\tcbitem 1
\end{tcbitemize}
\end{document}
答案1
等样式raster columns 1
具有粘性,并且对于嵌套框也有效,除非在较低层中再次明确定义。不幸的是,无论是reset
还是raster reset
选项都不会删除这些样式。
\colorlet{standardbackground}{yellow}
\tcbset{layerone/.style={raster every box/.style={colback={standardbackground}},raster equal height=rows,raster columns=4,raster column 1/.style={colback=red}}}
\tcbset{layertwo/.style={raster columns=2,raster column 1/.style={colback=standardbackground}}}
定义标准背景颜色(yellow
这里仅用于演示)并首先清除所有为此背景的框,然后设置第一层和第一列的具体设置colback=red
并重新定义设置以raster column 1
切换回标准背景颜色。
\documentclass[12pt,a4paper]{article}
\usepackage[most]{tcolorbox}
\colorlet{standardbackground}{yellow}
\tcbset{layerone/.style={raster every box/.style={colback={standardbackground}},raster equal height=rows,raster columns=4,raster column 1/.style={colback=red}}}
\tcbset{layertwo/.style={raster columns=2,raster column 1/.style={colback=standardbackground}}}
\begin{document}
\begin{tcbitemize}[layerone]
\tcbitem 1\tcbitem 1\tcbitem 1\tcbitem 1
\tcbitem 1
\tcbitem
\begin{tcbitemize}[layertwo]
\tcbitem 2\tcbitem 2
\end{tcbitemize}
\tcbitem 1\tcbitem 1
\end{tcbitemize}
\end{document}