我正在尝试重新创建期刊中的图片和标题效果。可以在 PDF 版本的图 1 中看到此示例,网址为本文:
它基本上是一个大的灰色边框,围绕着图像和标题,底部的标题用灰色填充。
我目前正在使用
\usepackage{xcolor}
\usepackage{mdframed}
\mdfdefinestyle{mystyle1}{
backgroundcolor=white!20
}
\mdfdefinestyle{mystyle2}{
backgroundcolor=lightgray!20
}
在序言中,
\begin{figure}[htb!]
\centering
\begin{mdframed}[style=mystyle1]
\includegraphics[width=1.0\textwidth]{foo.pdf}
\begin{mdframed}[style=mystyle2]
\caption[foo]{foo}
\end{mdframed}
\end{mdframed}
\label{fig:foo}
\end{figure}
这会在整个图形和标题周围创建一个框,然后在标题周围创建一个子框,但它们没有对齐,而且我不知道如何更改边框颜色。
任何帮助,将不胜感激。
答案1
下面我提出一个使用tcolorbox
定义一个figurebox
环境。此环境有一个可选参数来指定放置选项(就像标准图形环境一样)。
我没有使用两个框,而是只使用了一个框;上面的部分用于放置图像,下面的部分用于放置标题。\tcblower
在 之前使用\caption
。
这caption
包用于轻松更改标题标签的颜色。根据需要更改设置:
\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{lipsum}
\definecolor{captioncol}{RGB}{46,86,145}
\newtcolorbox{mycaptionbox}{
freelance,
enhanced,
colframe=gray,
arc=0pt,
middle=2pt,
outer arc=0pt,
boxrule=0.7pt,
enlarge left by=-5mm,
enlarge right by=-5mm,
text width=\textwidth-1.4pt,
nobeforeafter,
segmentation hidden=true,
interior code={
\path[draw=none,fill=gray!30]
(interior.south west) rectangle (segmentation.north east);
\path[draw=none,fill=white]
(segmentation.west) rectangle (interior.north east);
\draw[draw=gray,line width=0.7pt]
(segmentation.west) -- (segmentation.east);
},
}
\newenvironment{figurebox}[1][tbp]
{\begin{figure}[#1]\begin{mycaptionbox}}
{\end{mycaptionbox}\end{figure}}
\DeclareCaptionFormat{colorlabel}{\textcolor{captioncol}{#1#2}#3}
\captionsetup{format=colorlabel}
\begin{document}
\lipsum[4]
\begin{figurebox}
\includegraphics[height=3cm,width=.6\linewidth]{example-image-a}
\tcblower
\caption{\protect\lipsum[2]}
\end{figurebox}
\end{document}
输出:
答案2
你说的排队是什么意思?要更改边框颜色,请查看此链接中的答案: 如何改变 mdframed 的边框? 以下是我电脑上的结果
\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{pgfplots}
\usepackage{xcolor}
\usepackage{mdframed}
\mdfdefinestyle{mystyle1}{
backgroundcolor=white!20,
linecolor=red
}
\mdfdefinestyle{mystyle2}{
backgroundcolor=lightgray!20,
linecolor=blue
}
\begin{document}
\begin{figure}[htb!]
\begin{mdframed}[style=mystyle1]
\centering
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-1:1] {x^2};
\end{axis}
\end{tikzpicture}
\begin{mdframed}[style=mystyle2]
\caption{Caption.}
\end{mdframed}
\end{mdframed}
\label{fig:foo}
\end{figure}
\end{document}