拆分图片标题

拆分图片标题

我正在使用 stockfigure环境和\caption{}命令来排版文档中的图形。有什么合理的方法可以将“图 N”部分写在图形正下方,并将实际标题文本写在图形上方吗?

带有空标题的明显破解方法显然是有效的,但对我来说这似乎有点尴尬。

\begin{figure}
\center{Descriptive title string goes here}
\center\includegraphics[width=0.7\textwidth]{img/mw.png}
\label{monitor-main-window}
\caption{}
\end{figure}

我猜测需要重新定义某些环境或命令才能改变浮动布局,但我不清楚从哪里开始。

答案1

由于默认行为是将标题文本和编号排版在一起,而不是将它们分开,因此您的 hack 是有效的。由于您使用时\caption没有实际给出标题,因此它可能看起来很尴尬。

为此,您可以定义执行相同操作的“更方便”的命令:

在此处输入图片描述

\documentclass{article}
\usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{caption}% http://ctan.org/pkg/caption
\captionsetup{labelsep=none,textfont=it}% Format caption settings
\newcommand{\floattitle}[1]{%
  \def\floattitletext{#1}% Store float title text
  \captiontextfont\strut #1\par\vskip\abovecaptionskip}
\newcommand{\floatnumber}{\caption[\floattitletext]{}}
\begin{document}
\begin{figure}
  \centering
  \floattitle{Descriptive title string goes here}
  \includegraphics[width=0.7\linewidth]{image}
  \floatnumber \label{monitor-main-window}
\end{figure}
\end{document}

上面的例子使用了caption包裹通过键值对格式化浮动标题。因此,您可以使用这些键值来格式化标题的各个组件。我已经定义了\floattitle{<title>}使用哪些排版来排版浮动标题\captiontextfont(它还存储<title>以供以后使用)。它还在标题下方添加了一个间隙,相当于图像下方“实际标题”上方的间隙。也是\floatnumber的副本\caption{},它不排版任何内容,但添加了正确的参考测试,以便您能够使用\listoffiguresand/or \listoftables。请注意,命令名称是通用的,因此您可以在figuretable环境中使用它们。

最后,为了正确引用,您需要将\label \floatnumber(或\caption一般而言)。请参阅在图形环境中将 \label 放在哪里?

graphicx使用该demo选项可以排版图像而image实际上图像并不存在 - 用 150pt x 100pt 矩形替换它。demo否则不要使用该选项。

相关内容