KOMA-Script 脚本:章节编号和标题体现在文本的第一行

KOMA-Script 脚本:章节编号和标题体现在文本的第一行

使用 KOMA-Script 包,scrreprt我需要将章节编号和标题包含在章节本身的第一段中,并从每章开始重新开始章节编号,即:而不是

第1章

罗马

1.1 罗马的魔力

我强烈地感受到神圣的力量.............

1.2 现代罗马

Andavo for case for la sacra .......

第2章

米兰

2.1 米兰有魔力吗?

我强烈地感受到神圣的力量.............

2.2 现代米兰

Andavo for case for la sacra .......

============:=========== 我想拥有:

第1章

罗马

1.罗马的魔力。我强烈地感受到神圣的力量.............

2.现代罗马。Andavo for case for la sacra .......

第2章

米兰

1.米兰有魔力吗?我强烈地感受到神圣的力量.............

2.现代米兰。Andavo for case for la sacra .......

我怎样才能获得这个结果?

答案1

要获得这个结果,有三件事很重要:

  1. 从节编号中删除章节编号组件:

    \renewcommand*\thesection{\arabic{section}}
    
  2. 更新\section命令以允许文本与标题(所谓的 run-in header)保持一致。这取决于第五个参数(或跳过后) 到\@startsection。此值必须为负数。 的默认定义为\section

    \newcommand\section{\@startsection{section}{1}{\z@}%
      {-3.5ex \@plus -1ex \@minus -.2ex}%
      {2.3ex \@plus.2ex}%
      {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
        \setlength{\parfillskip}{\z@ plus 1fil}\fi
        \raggedsection\normalfont\sectfont\nobreak\size@section}%
    }
    

    在哪里跳过后给出为2.3ex \@plus.2ex(正)。我们将其更新为

    \renewcommand\section{\@startsection{section}{1}{\z@}%
      {-3.5ex \@plus -1ex \@minus -.2ex}%
      {-2.3ex \@plus-.2ex}%{2.3ex \@plus.2ex}%
      {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
        \setlength{\parfillskip}{\z@ plus 1fil}\fi
        \raggedsection\normalfont\sectfont\nobreak\size@section}%
    }
    

    在哪里跳过后現在是-2.3ex \@plus-.2ex(负的)。

    如需参考,请参阅在哪里可以找到类似\@startsectionLaTeX 的命令的帮助文件或文档?

  3. .使用以下方式强制在分段级别后添加句点

    \renewcommand*{\othersectionlevelsformat}[3]{#3.\enskip}
    

    上面还添加了一个\enskip,如果需要,您可以将其删除。

以下是包含上述修改的完整 MWE:

在此处输入图片描述

\documentclass[chapterprefix=true]{scrreprt}
\renewcommand*\thesection{\arabic{section}}
\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
  {-3.5ex \@plus -1ex \@minus -.2ex}%
  {-2.3ex \@plus-.2ex}%{2.3ex \@plus.2ex}%
  {\ifnum \scr@compatibility>\@nameuse{scr@[email protected]}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section}%
}
\makeatother
\renewcommand*{\othersectionlevelsformat}[3]{#3.\enskip}
\begin{document}
\chapter{Rome}
\section{Magic of Rome}
Ibam forte via sacra \ldots
\section{Modern Rome}
Andavo per caso per la via sacra \ldots
\chapter{Milan}
\section{Is Milan magic?}
Ibam forte via sacra \ldots
\section{Modern Milan}
Andavo per caso per la via sacra \ldots
\end{document}

答案2

您必须重新定义计数器\thesection

\documentclass[chapterprefix=true]{scrreprt}
\renewcommand*\thesection{\arabic{section}}
\begin{document}
\chapter{Rome}
\section{Magic of Rome}
Ibam forte via sacra \ldots
\section{Modern Rome}
Andavo per caso per la via sacra \ldots
\chapter{Milan}
\section{Is Milan magic?}
Ibam forte via sacra \ldots
\section{Modern Milan}
Andavo per caso per la via sacra \ldots
\end{document}

结果如下:

在此处输入图片描述

相关内容