使用该captions
包,可以轻松地将换行符合并到图形标题中:
\documentclass[12pt]{book}
\usepackage{graphicx}
\usepackage{caption}
\begin{document}
\begin{figure}[htbp]
\begin{center}
\includegraphics{sampleImage.png}
\caption{First line of caption\\second line of caption\\third line of caption\\fourth line of caption}
\end{center}
\end{figure}
\end{document}
生成,并正确观察到换行符。
尝试与 KOMA 脚本类似的东西:
\documentclass[12pt]{scrbook}
\usepackage{graphicx}
\KOMAoption{captions}{belowfigure}
\begin{document}
\begin{figure}[htbp]
\begin{center}
\includegraphics{"sampleImage.png"}
\caption{First line of caption\\second line of caption\\third line of caption\\fourth line of caption}
\end{center}
\end{figure}
\end{document}
产生错误:Argument of \@caption has an extra }.
还有其他方法可以使用 KOMA 脚本来获取图形标题中的换行符吗?
答案1
原因是,默认情况下,KOMA-Script 字幕被放入水平框中,以测量它们是否长于一行。这就是为什么换行符\\
或\newline
不起作用的原因。您可以禁用此默认行为,例如,通过使用字幕的 KOMA-Script 选项nooneline
,这样“单行”字幕就会被视为多行字幕。
在您的示例中添加:
\KOMAoption{captions}{belowfigure,nooneline}
\\
然后,您可以通过在之前插入以下内容来获得换行符\protect
:
\caption{First line of caption\protect\\second line of caption}
但是,如果您指定了可选参数,则没有必要。对于这种较长的标题,这可能是值得推荐的,因为对于图形列表来说,这可能不是最佳选择。因此,这也有效:
\caption[short caption]{First line of caption\\second line of caption}
答案2
感谢迄今为止我“利用”的所有技巧、提示和窍门,让我回报你们。我花了很多时间才找出这些巧妙的陷阱并规避它们:
我实际上想要得到 OP 所要求的内容,但此外标题文本应该像这样对齐:
不幸的是,nooneline 参数破坏了它。
最后我在序言中使用了这一点:
%\KOMAoption{captions}{belowfigure,nooneline,tableheading}
% nooneline was necessary for linebreaks:
% cf.http://tex.stackexchange.com/questions/66111/linebreaks-in-koma-script-captions
\KOMAoption{captions}{tableheading,belowfigure}
\newcommand{\capsize}{\fontsize{8}{9.5}\selectfont}
\setkomafont{caption}{\capsize}
\setcapwidth[c]{.8\textwidth}
% --- following two change a lot, try
%\setcapindent{0pt}
%\addtokomafont{caption}{\centering}
\addtokomafont{captionlabel}{\bfseries}
% cf. here: http://tex.stackexchange.com/questions/66116/puzzled-as-to-centering-of-koma-script-captions
% cf. for multiline solution --> avoiding nooneline (because it uncenters the caption)
% last answer here:
% http://tex.stackexchange.com/questions/101595/how-to-add-line-break-to-caption-without-using-caption-package
然后在文档中:
\begin{figure}[htbp]
\begin{center}
\rule{2cm}{2cm}
\caption[Some caption short]{\tabular[t]{@{}l@{}}Some caption foobarbuz \\ source: Here and There\endtabular}
\end{center}
\end{figure}
玩得开心 :)