由于我的 s 中的图像\subfloat
比其标题小,因此标题会换行到下一行。我该如何避免这种情况?
更新
我错误地认为subfig
这是一个流行的软件包,因此这里有更多有关我的问题的信息。
\usepackage{subfig}
% ...more latex here
\begin{figure}
\centering
\subfloat[A sufficiently long caption]{\includegraphics{bakan}} \qquad
\subfloat[Here goes another long caption]{\includegraphics{bakan}} \qquad
\subfloat[The captions are broken]{\includegraphics{bakan}}
\caption{Line breaks in subcaptions demo.}
\end{figure}
上面的代码产生:
当图像很小时,子字幕看起来很丑。
答案1
您可以将图像放入 \parbox 中,宽度由您自己决定。由于 subfig 包会使标题与内容一样宽,因此这会有所帮助。示例(用作\rule{1cm}{1cm}
小图像的占位符):
\documentclass{article}
\usepackage{subfig}
\begin{document}
\begin{figure}
\subfloat[Blah blah blah blah blah blah\ldots]
{\rule{1cm}{1cm}}
\subfloat[Blah blah blah blah blah blah\ldots]
{\parbox{4cm}{\centering\rule{1cm}{1cm}}}
\end{figure}
\end{document}
另外,你也可以使用我的 subcaption 包提供的 \subcaptionbox 的可选宽度参数:
\documentclass{article}
\usepackage{caption,subcaption}
\begin{document}
\begin{figure}
\subcaptionbox{Blah blah blah blah blah blah\ldots}
{\rule{1cm}{1cm}}
\subcaptionbox{Blah blah blah blah blah blah\ldots}
[4cm]{\rule{1cm}{1cm}}
\end{figure}
\end{document}
答案2
该subfig
包有一个选项width
可以传递给\captionsetup
设置标题的宽度,但它似乎并没有真正将整个\subfloat
框设置为该宽度。我认为最简单的方法是使用\makebox
内部\subfig
设置宽度为您想要的宽度。
\documentclass{article}
\usepackage{subfig}
\usepackage{showframe} % This is just to show rules around the text area
\begin{document}
\begin{figure}
\noindent
\subfloat[Here is my caption that is longer than my
figure.]{\makebox[.45\textwidth]{\rule{1in}{1in}}}%
\hfill
\subfloat[Here is my caption that is longer than my
figure.]{\makebox[.45\textwidth]{\rule{1in}{1in}}}%
\caption{Here is my main caption.}
\end{figure}
\end{document}
答案3
一个简单的解决方案(但可能不是适合所有情况的最佳解决方案):
% in preamble
\usepackage{subfig}
\DeclareCaptionLabelSeparator{nobreakspace}{\nobreakspace}
\captionsetup[subfigure]{labelsep=nobreakspace}
% in text
\subfloat[\mbox{...}]{image}
还有一个:
\DeclareCaptionFormat{oneline}{\mbox{#1#2#3}}
\captionsetup[subfigure]{format=oneline}
% in text
\subfloat[any thing]{image}