我想用一个带有背景颜色的框架包裹每个表格,并将其标题包含在框架内。对于框架,我已经调整了Martin Scharrer 的回答到 ”在图片和标题周围添加边框”,它使用adjustbox
带有varwidth
键的环境。框架本身是完美的,特别是框的宽度缩小(从最大值\textwidth
)以适合表格和标题。
但是,当我添加一个bgcolor
键来设置背景颜色时,背景的宽度似乎是整个\textwidth
,但我希望颜色保持在框架的范围内。 即,我希望背景遵守varwidth
确定的较窄宽度。 (MWE 和输出如下。)
我该怎么做呢?
\documentclass{article}
\usepackage{adjustbox,xcolor}
\begin{document}
\begin{table}
\begin{adjustbox}{varwidth=\textwidth,padding=1em,frame=1pt,center,bgcolor=pink }
\centering
\begin{tabular}{|cc|}
\hline
x & y \\
a & b \\
\hline
\end{tabular}
\caption{Caption}
\label{tab:my_label}
\end{adjustbox}
\end{table}
\end{document}
更新
在评论中跟进@jon 的观察:事实证明,背景颜色覆盖的范围取决于键=值对列表中的位置bgcolor
。
在下面的新图表中,我展示了三种结果:
bgcolor
处于位置 #1 或 #2(bgcolor=pink,varwidth=\textwidth,padding=1em,frame=0.4pt,center)
,或者{varwidth=\textwidth,bgcolor=pink,padding=1em,frame=0.4pt,center}
bgcolor
处于位置 #3 或 #4{varwidth=\textwidth,padding=1em,bgcolor=pink,frame=0.4pt,center}
,或者{varwidth=\textwidth,padding=1em,frame=0.4pt,bgcolor=pink,center}
bgcolor
处于最后位置{varwidth=\textwidth,padding=1em,frame=0.4pt,center,bgcolor=pink}
我在文档中找不到任何adaptbox
解释顺序bgcolor
重要性的内容。但可以讲的故事可以合理化上述模式:
- 当
bgcolor
位于 之前时padding
,它适用于最内层(预填充)内容; - 当
bgcolor
位于 之后时padding
,适用于“填充”内容; - 当
bgcolor
位于 之后时center
,它适用于最宽的区域,即,在该行已填充到左右边缘之后。
(如果马丁·沙雷尔 (Martin Scharrer) 可以就此事究竟发生了什么发表看法,那就太好了。
答案1
该解决方案使用varwidth
和\fcolorbox
。
\documentclass{article}
\usepackage{varwidth,xcolor}
\begin{document}
\begin{table}
\centering
\fcolorbox{black}{pink}{\begin{varwidth}{\textwidth}
\centering
\begin{tabular}{|cc|}
\hline
x & y \\
a & b \\
\hline
\end{tabular}
\caption{Caption}
\label{tab:my_label}
\end{varwidth}}
\end{table}
\end{document}
答案2
我回答自己的问题只是为了结束这个问题。正如评论者 @jon 敏锐地观察到的那样:键值的顺序很重要;具体来说,就是bgcolor
在列表中的位置。
在我的例子中,我需要的覆盖范围bgcolor
(a) 包括应用之后的区域padding
,但 (b)center
包括应用之前的区域。因此,以下两种 key=value 顺序中的任一种都可以:
bgcolor
处于位置 #3 或 #4{varwidth=\textwidth,padding=1em,bgcolor=pink,frame=0.4pt,center}
,或者{varwidth=\textwidth,padding=1em,frame=0.4pt,bgcolor=pink,center}
bgcolor
虽然我没有在文档中发现顺序的重要性adjustbox
,但作者adjustbox
Martin Scharrer 已经另行向我确认这是一个功能(而不是错误):
嗨,这是个功能。您可以在背景颜色后添加其他键,例如添加另一个框架或边距或旋转,然后根据需要添加另一个背景。这样,您就有了最大的自由。