如何设置图形环境的背景颜色?

如何设置图形环境的背景颜色?

目前我遇到的情况是这样的:

\newenvironment{inline}[2]{
  \begin{figure}[h!]
    \caption{#1}\label{#2}
    \vspace{10pt}%
}{
  \end{figure}
}

如何为图中的全部内容设置背景颜色?

答案1

您可以使用mdframed包裹为此。在下面的 MWE 中,我向环境添加了一个选项第一个参数inline,它指定backgroundcolor(默认值为black!25= 25% 黑色):

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{mdframed}% http://ctan.org/pkg/mdframed
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\newenvironment{inline}[3][black!25]{
  \begin{figure}[h!]
    \begin{mdframed}[backgroundcolor=#1]
    \centering\caption{#2}\label{#3}
    \vspace{10pt}%
}{%
    \end{mdframed}
  \end{figure}
}
\begin{document}
\lipsum[1]
\begin{inline}{An image}{image}
  \rule{150pt}{100pt}
\end{inline}
\lipsum[2]
\end{document}

我只添加了backgroundcolor选项mdframed,其他设置保持不变(例如,包括边框)。阅读mdframed文档关于如何修改任何默认设置。

如果图上方有标题,您可能有兴趣调整长度\abovecaptionskip\belowcaptionskip以满足您的需要 - 它们是根据 caption-below-float 设置的。在标准文档类中,默认值分别为10pt和。0pt

在上面的 MWE 中,xcolor提供颜色规范,同时lipsum提供了一些虚拟文本,乱数风格。

答案2

shaded一个解决方案可能是使用如下包:

\usepackage{shaded}
\usepackage{color}

\definecolor{shadecolor}{gray}{.9}

\newenvironment{inline}[2]{
    \begin{figure}[h!]
        \begin{shaded}
            \caption{#1}\label{#2}
                \vspace{10pt}%
}{
        \end{shaded}
    \end{figure}
}

这将产生宽度为 的灰色背景\textwidth。也可以使用:

\definecolor{shadecolor}{rgb}{1,0.5,0}

代替:

\definecolor{shadecolor}{gray}{.9}

如果目的是产生可怕的橙色背景。您可以shadecolor根据color包装自由定义颜色。

答案3

除了mdframedWerner 提到的包之外bgcolor, 的键adjustbox还可用于为框内容的背景颜色着色。此处minipage=\linewidth还必须使用 键来允许多行(标题和图像)。

为了便于比较(也为我省去不少功夫 ;-) ),我重用了 Werner 的示例代码。主要区别在于mdframed允许分页,但在本例中这并不重要,因为figures分页永远不会跨页。

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{adjustbox}% http://ctan.org/pkg/adjustbox
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\newenvironment{inline}[3][black!25]{%
  \begin{figure}[h!]
    \begin{adjustbox}{minipage=\linewidth,bgcolor={#1}}% maybe also: margin=x y
    \centering
    \caption{#2}\label{#3}%
    \vspace{10pt}%
}{%
    \end{adjustbox}%
  \end{figure}%
}
\begin{document}
\lipsum[1]
\begin{inline}{An image}{image}
  \rule{150pt}{100pt}
\end{inline}
\lipsum[2]
\end{document}

相关内容