如何定义 tcolorbox 的内边距?

如何定义 tcolorbox 的内边距?

我制作了一张海报巴波斯特类。基本结构通过以下方式定义:海报盒对象。在这些对象中,我嵌入了图片,使用彩色盒子作为框架。

实际代码:

\begin{tcolorbox}[colframe=gray,colback=white,boxrule=2pt,arc=0.6em,boxsep=-1mm]
\includegraphics[width=5.8cm]{figure.eps}
\end{tcolorbox}

最小工作示例:

\documentclass[a0paper,portrait]{article}


\usepackage{tcolorbox}
\begin{document}
\title{Test}

\begin{tcolorbox}[colframe=gray,colback=white,boxrule=2pt,arc=0.6em,boxsep=-1mm]

\end{tcolorbox}
\end{document}

我确实意识到嵌入的图像突出了圆角。我该如何应用类似内边距的东西?我确实尝试了 boxsep 参数,但似乎没有帮助。

抱歉没有提供完整的文件。我必须删除很多内容,因为海报包含大量未发布的数据。

渲染问题还是用户错误?

编辑:抱歉没有提供图片!MWE 现在也包括在内。空的 tcolorboxes 也会发生这种情况。


这部分由 Steven Segletes 添加,以更好地展示奇怪的行为。将arc单位从em改为pt会完全改变行为。

\documentclass[a0paper,portrait]{article}
\usepackage{tcolorbox}
\begin{document}
\title{Test}
\begin{tcolorbox}[colframe=gray,colback=white,boxrule=2pt,arc=.3em,boxsep=-1mm]

\end{tcolorbox}

\begin{tcolorbox}[colframe=gray,colback=white,boxrule=2pt,arc=3.4pt,boxsep=-1mm]

\end{tcolorbox}
\end{document}

在此处输入图片描述

答案1

这里有多个问题需要回答。我会尝试一步一步地回答它们。

1.如何定义tcolorbox的内边距?

边距由leftrighttop、设定bottom。此外,boxsep将 添加到所有这些值中以获得最终边距。

例如

\begin{tcolorbox}[boxsep=1pt,left=2pt,right=2pt,top=0pt,bottom=0pt]...

3pt给出左边距和右边距总计,以及1pt顶部和底部边距总计。

2. 内容剪辑

如果使用圆角,但有边距或非常小的边距,文本内容(例如图片)可能会超出圆角。可以使用库的enhancedclip upper选项来避免这种情况skins,这些选项会剪切内部:

\documentclass[a0paper,portrait]{article}
\usepackage[skins]{tcolorbox}
\begin{document}
\title{Test}

\begin{tcolorbox}[
  enhanced,clip upper,%<------------
  colframe=gray,colback=white,boxrule=2pt,arc=10pt,
  boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt]
\includegraphics[width=\linewidth]{example-image}
\end{tcolorbox}

\end{document}

在此处输入图片描述

3. 字体相关单元

在或环境tcolorbox中绘制A。在这样的环境中,使用空字体。如果给出了字体相关单位,则实际大小取决于此设置在内部实现中的确切位置。如果在实际之前使用(并扩展),它将具有预期的大小,但如果在绘制过程的最后使用它,它可能会变为零。pgfpicturetikzpicturearc=.3emtikzpicture

使用

\begin{tcolorbox}[arc=0.3em]

\end{tcolorbox}

给出了这种效果的不幸组合。outer arc自动计算图形环境启动。它获得预期的(扩展的)大小。内弧(即arc)停留在0.3em并成为0pt图形环境内部。

因此,目前应该使用固定单位,如3pt或,3mm以避免此类影响。但是,对于下一个tcolorbox版本(3.36或更高版本),我将实现一个消毒在进入图形环境之前冻结字体相关单元的程序。

相关内容