我想在标题中添加换行符,但又不想添加caption
包。可以吗?
\documentclass{article}
\usepackage[format=plain,
justification=raggedright,singlelinecheck=false]{caption}
\begin{document}
\begin{figure}
\caption{This is the caption\\ This is the second line}
\end{figure}
\end{document}
答案1
\documentclass{article}
\begin{document}
\begin{figure}
\caption[caption]{This is the caption\\\hspace{\textwidth}This is the second line}
\end{figure}
\end{document}
\\
最初不起作用的原因是标题太小,无法容纳在一行中。默认的标题设置首先将标题设置在 mbox 中,如果 mbox 小于行宽,则该框居中。否则,该框将被丢弃,标题将在 parbox 中重新设置。第一个设置\\
不执行任何操作,因为在这样的框中它始终是无操作,第二个设置(如果使用)则\\
开始新的一行。因此,您所要做的就是确保不使用第一个设置,因为行首的空格会被丢弃,空格有多大并不重要,只要整个标题的总自然宽度大于即可\textwidth
。
答案2
\\
使用in \caption{..}
(单个强制参数)的问题在于,它默认为\caption[..]{..}
(可选 + 强制),并且\\
在可选参数中存在问题。如果您指定替代的非\\
可选参数,那么它是可以的,但\\
它会变得“无用”或没有任何效果。您可以使用 atabular
来设置参数:
\documentclass{article}
\begin{document}
\begin{figure}
\caption[This is the caption; This is the second line]
{\tabular[t]{@{}l@{}}This is the caption \\ This is the second line\endtabular}
\end{figure}
\end{document}
当然,如果您不需要可选参数(因为您可能不使用\listoftables
),只需使用一个空的可选参数。如果没有更多需求背景,我不确定它有多大用处。
答案3
不确定为什么,但是\protect\linebreak
在包中有效boxhandler
,但在\caption
命令中无效。
\documentclass{article}
\usepackage{boxhandler}
\begin{document}
\bxfigure{Caption goes \protect\linebreak here}
{\fbox{Goodbye, very, very, very cruel world}}
\begin{figure}
\begin{center}
\fbox{Goodbye, very, very, very cruel world}
\caption{Caption goes \protect\linebreak here}
\end{center}
\end{figure}
\end{document}
答案4
或者,您也可以使用\protect\linebreak
,无需任何caption
包。
对于短标题文本,其作用与 相同\\\hspace{\textwidth}
。但是,这可能是一个更好的解决方案,如果你的标题文字较长如果不换行,则会占用多行,并且您希望它被拉伸以填满线。
例子:
\documentclass{article}
\begin{document}
\begin{figure}
\caption[caption]{This is the first line of a caption text that \\\hspace{\textwidth} without the
linebreak would occupy more than one line and it goes and it goes}
\end{figure}
\begin{figure}
\caption{This is the first line of a caption text that \protect\linebreak without the
linebreak would occupy more than one line and it goes and it goes}
\end{figure}
\end{document}