正确设计 KOMA-Script 标题样式的方法

正确设计 KOMA-Script 标题样式的方法

我是调整章节标题的 LaTeX 代码的新手。我尝试在论坛上搜索有关 KOMA-Script 章节标题的一些信息,找到了一些。但是,我没有成功得到我想要的东西。

有人可以稍微解释一下我的 MWE 以及调整 KOMA-Script 标题的一般/最小输入吗?

关于我想要的文件,如何

  • 将章节号与左边距的右侧对齐

  • 将章节名称与正文左侧对齐

  • 控制正文顶部与章节编号和名称之间的垂直空间

提前谢谢了

\documentclass{scrreprt}

\usepackage[
includemp,
                  showframe,
                  reversemp,
            paperwidth=20.1cm,
            paperheight=25.80cm,
            top=2.30cm,
            bottom=3.4cm,
            inner=2.7cm,
            outer=2.7cm,
            marginparwidth=1.6cm, % Fixed for now
            marginparsep=0.4cm
            ]{geometry}

\makeatletter          % to set the marginpar on the left side in showframe
\let\Gm@vrules@mpi\Gm@vrules@mpii
\makeatother

\newlength\mylen
\setlength\mylen{\dimexpr\oddsidemargin+\hoffset\relax}

\renewcommand*{\chapterformat}{%
  {\normalfont\Large\bfseries}
  {\llap{\hspace*{-\mylen}\thechapter\hfill}}{}
}

\renewcommand*{\sectionformat}{%
  {\normalfont\Large\bfseries}
  {\llap{\hspace*{-\mylen}\thesection\hfill}}{}
}

\renewcommand*{\subsectionformat}{%
  {\normalfont\Large\bfseries}
  {\llap{\hspace*{-\mylen}\thesubsection\hfill}}{}
}

\begin{document}

\chapter{test}
\section{test}
\subsection{test}


\end{document}

在此处输入图片描述

答案1

相应的 ”兰德公司推出的《连线》示例« (链接至德文页面) 您可以将标题数字右对齐到左边距,使用:

\renewcommand*{\chapterformat}{\makebox[0pt][r]{\chapappifchapterprefix{\ }\thechapter\autodot\hskip\marginparsep}}%
\renewcommand*{\sectionformat}{\makebox[0pt][r]{\thesection\autodot\hskip\marginparsep}}
\renewcommand*{\subsectionformat}{\makebox[0pt][r]{\thesubsection\autodot\hskip\marginparsep}}
\renewcommand*{\subsubsectionformat}{\makebox[0pt][r]{\thesubsubsection\autodot\hskip\marginparsep}}

\…format命令用于输出标题数字。 \makebox[0pt][r]用于在标题开头的左侧进行输出。\hskip\marginparsep用于在边距列和文本区域之间设置正常距离。

beforeskip可以使用命令的选项来控制文本区域开头和章节标题之间的距离\RedeclareSectionCommand,例如,

\RedeclareSectionCommand[beforeskip=0pt,afterindent=false]{chapter}

因为默认值意味着大于或等于零afterindent=bysign的值会导致章节标题后第一个段落缩进,所以用于明确防止缩进。beforeskipafterindent=false

3.26 之前的 KOMA-Script 版本不提供选项afterindent。因此,对于旧版本的 KOMA-Script,您必须使用类似以下内容:

\RedeclareSectionCommand[beforeskip=-1sp plus -1sp minus 1sp]{chapter}% remove the vertical skip before the chapter heading

这几乎相同,但不太直观。

有关更多信息\RedeclareSectionCommand及其所有选项(例如,belowskip控制标题下方的距离)参见第二部分英文版 KOMA-Script 手册或者德语 KOMA-Script 手册甚至德语 KOMA-Script 书

作为 MWE:

\documentclass{scrreprt}

\usepackage[
  includemp,
  showframe,
  reversemp,
  paperwidth=20.1cm,
  paperheight=25.80cm,
  top=2.30cm,
  bottom=3.4cm,
  inner=2.7cm,
  outer=2.7cm,
  marginparwidth=1.6cm, % Fixed for now
  marginparsep=0.4cm
]{geometry}

\makeatletter          % to set the marginpar on the left side in showframe
\let\Gm@vrules@mpi\Gm@vrules@mpii
\makeatother

\renewcommand*{\chapterformat}{\makebox[0pt][r]{\chapappifchapterprefix{\ }\thechapter\autodot\hskip\marginparsep}}%
\renewcommand*{\sectionformat}{\makebox[0pt][r]{\thesection\autodot\hskip\marginparsep}}
\renewcommand*{\subsectionformat}{\makebox[0pt][r]{\thesubsection\autodot\hskip\marginparsep}}
\renewcommand*{\subsubsectionformat}{\makebox[0pt][r]{\thesubsubsection\autodot\hskip\marginparsep}}

\RedeclareSectionCommand[beforeskip=0pt,afterindent=false]{chapter}% remove the vertical skip before the chapter heading without activation of first paragraph indent
% With KOMA-Script before version 3.26 you have to use instead of the line above:
% \RedeclareSectionCommand[beforeskip=-1sp plus -1sp minus 1sp]{chapter}% remove the vertical skip before the chapter heading

\usepackage{mwe}

\begin{document}

\chapter{test}
\section{test}
\subsection{test}
\lipsum

\end{document}

在此处输入图片描述

相关内容