我想\newline
在图形标签后引入 而不是:
。我知道caption
包通过 来实现这一点\captionsetup
。但是,我想在没有它的情况下做到这一点。
我从memoir
课程手册(第 214 页)中了解到了为 声明一个额外参数\fnum@figure
但不使用它的技巧,这会吞噬 中不需要的冒号\@makecaption
。现在,对于memoir
类,我可以引入\newline
而不是:
作为标签分隔符。它有效。
原文标题:
在回忆录类中修改:
此技巧也适用于scrreprt
。但是,对于scrreprt
,:
消失但\newline
没有引入。我也尝试过\\
、\\*
和\vspace{\baselineskip}
。它们都不起作用。
修改后的标题不带“:”,但没有 \newline
\newline
在开始时介绍\caption
也不起作用。
我认为我在这里犯了一些新手错误。我读到过大多数宏不区分空格和\newlines
。这是为什么它不起作用的原因吗?
请让我知道一个解决方法。
%\documentclass{memoir}
\documentclass{scrreprt}
%Memoir manual page no - 214
%Note the extra unused argument.
\makeatletter
\renewcommand{\fnum@figure}[1]{\textsc{\figurename~\thefigure} \newline \sffamily}
\makeatother
%
\begin{document}
\begin{figure}
\centering
\rule{3cm}{2cm}
\caption{A Caption}
%\caption{\newline A Caption}
\end{figure}
\end{document}
答案1
举个例子,这是一个简单的字幕处理程序,它制作一个两行布局(如果您的字幕可能很长,您可以更改ll
为lp{5cm}
多行版本,或者您需要任何多行版本)它不尊重类可能具有的控制字幕定位的所有选项。
\documentclass{scrreprt}
%Memoir manual page no - 214
%Note the extra unused argument.
\makeatletter
\renewcommand{\fnum@figure}[1]{\textsc{\figurename~\thefigure}}
\def\@@makecaption#1#2#3{%
{\centering\begin{tabular}{@{}ll@{}}
\csname fnum@\@captype\endcsname&{}\tabularnewline
\end{tabular}\par}
}
\makeatother
%
\begin{document}
\begin{figure}
\centering
\rule{3cm}{2cm}
\caption{A Caption}
%\caption{\newline A Caption}
\end{figure}
\end{document}