如何在宏中使用 \newline?

如何在宏中使用 \newline?

我想\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

在此处输入图片描述

举个例子,这是一个简单的字幕处理程序,它制作一个两行布局(如果您的字幕可能很长,您可以更改lllp{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
&#3\end{tabular}\par}
}
\makeatother
%
\begin{document}
  \begin{figure}
    \centering
    \rule{3cm}{2cm}
    \caption{A Caption}
    %\caption{\newline A Caption}
  \end{figure}
\end{document}

相关内容