目前我遇到的情况是这样的:
\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
答案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
除了mdframed
Werner 提到的包之外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}