KOMA 脚本字幕中的换行符

KOMA 脚本字幕中的换行符

使用该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}

玩得开心 :)

相关内容