parbox 周围的 colorbox 太大

parbox 周围的 colorbox 太大

我想排版一些带有彩色背景的文字轮廓,覆盖整个\textwidth。我尝试用 来获得这个。它在某种程度上有效,但总是比 大一点,导致彩色填充与轮廓略有重叠: colorboxparboxcolorboxparbox彩色填充与轮廓重叠

有什么办法可以解决这个问题吗?我没有找到。相应的代码:

\newcommand{\information}[1]{\colorbox{DarkOliveGreen2}{\fboxsep4mm\framebox[\textwidth][l]{\parbox{\linewidth}{\textbf{foo: } #1}}}}

任何想法都非常感谢。谢谢!

编辑:正如评论中所说:我已经尝试删除或更改 -value \fboxsep,但它并没有改变行为。只是文本和框边框之间的空间变窄了,我想要那个空间...

答案1

框边缘和实际内容之间的空间由\fboxsep通常的\fbox命令来控制。

由于\fboxsep4mm在宏定义中明确出现,因此之前\information没有机会改变\fboxsep值。4mm似乎太多了,但这当然是一个品味问题。

在我看来,没有必要使用额外的\framebox命令,因为\fcolorbox也是可用的。

\documentclass{article}

\usepackage[x11names]{xcolor}
\begin{document}


\newcommand{\information}[2][0pt]{%
  \fboxsep=#1%
  \par\noindent%
  \fcolorbox{black}{DarkOliveGreen2}{%
    \parbox{\dimexpr\linewidth-2\fboxsep-2\fboxrule}{\textbf{foo: }#2}%
  }% Reduce the box size by 2 \fboxsep and 2\fboxrule widths. 
}


\information[2pt]{Foo}

\end{document}

在此处输入图片描述

答案2

您需要分别控制\framebox和的填充:\colorbox

\documentclass{article}

\usepackage[x11names]{xcolor}
\begin{document}


\newcommand{\information}[1]{{%
\setlength{\fboxsep}{0pt}%
\par\noindent
\colorbox{DarkOliveGreen2}{%
\setlength{\fboxsep}{4mm}%
\framebox[\textwidth][l]{\parbox{\linewidth}{\textbf{foo: } #1}}}}}


\information{Foo}

\end{document}

相关内容