我正在使用 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{}
,它不排版任何内容,但添加了正确的参考测试,以便您能够使用\listoffigures
and/or \listoftables
。请注意,命令名称是通用的,因此您可以在figure
或table
环境中使用它们。
最后,为了正确引用,您需要将\label
后 \floatnumber
(或\caption
一般而言)。请参阅在图形环境中将 \label 放在哪里?
graphicx
使用该demo
选项可以排版图像而image
实际上图像并不存在 - 用 150pt x 100pt 矩形替换它。demo
否则不要使用该选项。