带框的图片和带框的标题

带框的图片和带框的标题

我需要在 Latex 书籍文件中插入图片,但图片必须有边框,标题也必须在图片后面。边框不一样,图片和标题之间需要水平线。但图片需要居中,标题需要沿图片宽度左对齐。有人能帮我吗?

答案1

一种可能的解决方案(也许不是最简单的......)是使用该caption包在标题上方添加一条水平线,并使用该mdframed包在图形和标题的组合周围放置一个框架。

\DeclareCaptionFormat可以将水平线放在三个参数(图形编号、分隔符、标题文本)前面,然后跟一个换行符,从而插入水平线。

为了使线跨越整个框架,必须调整边距,这可以通过 来\mdfdefinestyle实现mdframed

justification可以将选项与singlelinecheck=false中的 from结合使用,从而实现标题的左对齐\captionsetup。但是,这将根据 中的图像宽度而不是 中的图像宽度进行对齐\includegraphics。这有点棘手,但解决此问题的一个可能方法是引入一个新的长度(在下面的 MWE 中\figwidth),将此长度的值设置为图像的首选宽度,然后使用 和 中的长度\includegraphics以及标题格式中的小计算来确定缩进。

梅威瑟:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{mdframed}
\mdfdefinestyle{boxcaption}{innerleftmargin=0cm,innerrightmargin=0cm}
\newlength{\figwidth}

\DeclareCaptionFormat{myformat}{\hrulefill\newline\hspace*{\dimexpr(\textwidth-\figwidth)/2}#1#2#3}
\captionsetup[figure]{format=myformat,justification=justified,singlelinecheck=false}

\begin{document}
\begin{figure}[tb]
\begin{mdframed}[style=boxcaption]
  \centering
  \setlength{\figwidth}{0.7\textwidth}
     \includegraphics[width=\figwidth]{./fig/test}
  \caption{Left aligned}
  \label{fig:test}
\end{mdframed}
\end{figure}
You can see an example of a black box in Figure \ref{fig:test}.
\end{document}

demo选项graphicx只是为了显示黑匣子,实际应用中不需要它。

结果:

方框标题示例

此解决方案改编自图片标题下方的水平线

答案2

这是一个使用\fbox而不是 的解决方案mdframed。所有边距都设置为\fboxsep。(其中一些是从 Marijn 的解决方案中窃取的。)

我应该提到,\fboxsep并且\fboxrule是可调节的。

\documentclass{article}
\usepackage{graphicx}
\usepackage{caption}
%\usepackage{mwe}
\usepackage{showframe}% check centering

\captionsetup[figure]{justification=justified,singlelinecheck=false}%

\newcommand{\pictureframe}[2]% #1=image, #2=caption
{\sbox0{#1}%
\centering
\fbox{\begin{minipage}{\wd0}
  \baselineskip=0pt
  \abovecaptionskip=\fboxsep
  \belowcaptionskip=0pt
  \usebox0\par
  \vspace{\fboxsep}%
  \hspace{-\fboxsep}% extend to frame
  \rule{\dimexpr \textwidth+2\fboxsep}{\fboxrule}%
  \hspace{-\fboxsep}
  \caption{#2}
\end{minipage}}}

\begin{document}
\begin{figure}
\pictureframe{\includegraphics[height=2in]{example-image}}{Left aligned}
\end{figure}
\end{document}

相框

相关内容