我希望章节标题带有 runin,这样章节标题后就没有换行符了。这可以通过以下方式实现
\documentclass{article}
\usepackage{titlesec}
\title{\section}[runin]{\large}{\thesection}{1em}{}[]
\begin{document}
\section{First section}
This text follows on the same line as "First section"
\end{document}
但是,我正在使用 KOMA-Scriptscrartcl
类并使用titlesec
类,不鼓励KOMA-Script 与 titlesec 之间的不兼容性)。
我搜索了 KOMA-Script 文档,但找不到runin
中的选项titlesec
。如何在使用 KOMA-Script 类时实现此功能?
答案1
1. KOMA-Script 的旧版本
你必须重新定义\section
,subsection
ETC。您可以使用负值来设置 runin 标题,类似于标准 article-class。我scrartcl
过去曾复制过标题的定义。请注意,如果scrartcl
更改,此解决方案可能会失效。
如果您查看 KOMA-Script 英文手册第 351 页,您会看到有几个命令用于更改上下空格chapter
。part
希望我们能看到类似的命令\section
。
在这里,我已将节和小节都重新定义为 runin-header。
\documentclass{scrartcl}
\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-1.5ex}%
{-1em}%{2.3ex \@plus.2ex}% < - negative value here negative value here,
% the values behind % are the original.
% no use for rubber values, use a fix value to set the
% distance to between heading and the text
{\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
\setlength{\parfillskip}{\z@ plus 1fil}\fi
\raggedsection\sectfont\nobreak\size@section}%
}
\renewcommand\subsection{\@startsection{subsection}{1}{\z@}%
{-1.5ex \@plus -1ex \@minus -.2ex}%
{-1em}%{2.3ex \@plus.2ex}% <- negative value here, the values behind % are the original
{\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
\setlength{\parfillskip}{\z@ plus 1fil}\fi
\raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\makeatother
\begin{document}
\section{First section}
This text follows on the same line as "First section"
\end{document}
你用普通的\addtokomafont
等来更改字体、颜色ETC。当然,你必须摆弄这些数字来获得你喜欢的上方空间。
2. KOMA-Script 的较新版本
我参考了下面 Johannes_B 的回答。
为了完整起见,我将提请您注意 2015-10-03 英文版 KOMA-Script 手册第 363 页及后续内容。作者(从版本 3.16?开始)\section{}
通过四个命令添加了与其姐妹交互的可能性:
\DeclareSectionCommand[attributes]{name}
\DeclareNewSectionCommand[attributes]{name}
\RedeclareSectionCommand[attributes]{name}
\ProvideSectionCommand[attributes]{name}
您可以使用这些命令来定义全新的分段命令,也可以重新定义现有的命令,包括轻松将\section{}
命令定义为运行标题。
\RedeclareSectionCommand[%
afterskip=-10pt plus -1sp minus 1sp% using rubber is optional
]{section}
只需使用负值作为第一个afterskip
值(我这里使用了 -10pt)。
答案2
KOMA-Script 的作者添加了一个易于使用的界面来重新声明分段命令(章节和部分也是如此)。在我看来,它比使用titlesec
;-)要简单得多
当然,您需要一个相当新的 KOMA-Script-bundle。
\documentclass{scrartcl}
\RedeclareSectionCommand[afterskip=-1em,%negative value -> runin
font=\large\normalfont%match the font of your example
]{section}
\begin{document}
\section{First section}
This text follows on the same line as "First section"
\end{document}
答案3
从 开始v3.26
,也可以使用开关runin
。
\RedeclareSectionCommand[runin=on]{section}