我设定left=5pt, right=5pt, top=5pt, bottom=5pt
为内隔tcolorbox 栅格。
他尝试将箱子的高度设置在最高的箱子上 - 这是可以的,也是我们想要的。
他还尝试将光栅设置为覆盖整个文本宽度 - 这也行 - 但他用内部分离在内容为“X”的框/列中。
我如何强制在该框中设置left=5pt, right=5pt
?
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage[showframe=true, margin=2cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcbitemize}[%
raster equal height=rows,
raster columns=3,
halign=left, valign=top,
% This is the point =========================
left=5pt, right=5pt, top=5pt, bottom=5pt,
% ===================================
]
\tcbitem \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center] \Huge X
\tcbitem \lipsum[63]
\end{tcbitemize}
\end{document}
答案1
默认情况下,atcbraster
会将其总宽度(linewidth
默认情况下)均匀地划分在其列之间。这就是中央框比预期更宽的原因。
您可以强制特定框的宽度,raster force size=false
并在特定框上设置一些add to width
。但在这种情况下,您必须手动计算所有宽度以分配可用空间。
\documentclass{article}
\usepackage[showframe=true, margin=2cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcbitemize}[%
raster equal height=rows,
raster columns=3,
halign=left, valign=top,
% This is the point =========================
left=5pt, right=5pt, top=5pt, bottom=5pt,
% ===================================
raster force size=false
]
\tcbitem \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center] \Huge X
\tcbitem \lipsum[65]
\tcbitem \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center, add to width = -3cm] \Huge X
\tcbitem \lipsum[65]
\tcbitem[add to width=1.5cm] \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center, add to width = -3cm] \Huge X
\tcbitem[add to width=1.5cm] \lipsum[65]
\end{tcbitemize}
\end{document}
另一种解决方案是使用不同宽度raster multicolumn
的列。在这种情况下,您定义默认的大量列(以下示例中为 9 个),但将其分组为三个可见框,其中第一个和第三个的宽度相当于四个初始框。
\documentclass{article}
\usepackage[showframe=true, margin=2cm]{geometry}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcbitemize}[%
raster equal height=rows,
raster columns=9,
halign=left, valign=top,
% This is the point =========================
left=5pt, right=5pt, top=5pt, bottom=5pt,
% ===================================
%raster force size=false
]
\tcbitem[raster multicolumn=4] \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center] \Huge X
\tcbitem[raster multicolumn=4] \lipsum[65]
\tcbitem[raster multicolumn=4] \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center] \Huge X
\tcbitem[raster multicolumn=4] \lipsum[65]
\tcbitem[raster multicolumn=4] \lipsum[66]
\tcbitem[colframe=red, halign=center, valign=center] \Huge X
\tcbitem[raster multicolumn=4] \lipsum[65]
\end{tcbitemize}
\end{document}
在任何情况下,tcbraster
您都不能期望盒子的宽度能够适应其内容(并尊重内边距),因为它们的大小是由光栅宽度和列数定义,而不是由其内容定义。