使用 KOMA-Script 在页边空白处添加章节和页码

使用 KOMA-Script 在页边空白处添加章节和页码

使用scrartcl文档类,我想将章节编号放入页边距,就像著名l2tabu文档中的示例一样。使用 KOMA-Script 应该可以轻松实现,但我找不到具体方法。

另外,如何对页码进行同样的操作,就像在旧的页码中所做的那样LaTeX Companion

答案1

更新

使用 KOMA-Script 3.19a 或更新版本,您只需重新定义\sectionlinesformat即可获得所需的结果:

\documentclass{scrartcl}[2015/10/03]

\renewcommand\sectionlinesformat[4]{%
  \makebox[0pt][r]{#3}#4%
}

\usepackage[headwidth=textwithmarginpar]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\pagemark}
\usepackage{blindtext}
\begin{document}
\Blinddocument
\end{document}

原始答案

自从KOMA-Script 版本 3.17(CTAN 上的当前版本)您必须重新定义命令\sectionformat\subsectionformat\othersectionlevelsformat

\documentclass{scrartcl}[2015/04/23]
\renewcommand\sectionformat{\makebox[0pt][r]{\thesection\autodot\enskip}}
\renewcommand\subsectionformat{\makebox[0pt][r]{\thesubsection\autodot\enskip}}
\renewcommand\subsubsectionformat{\makebox[0pt][r]{\thesubsubsection\autodot\enskip}}

\usepackage[headwidth=textwithmarginpar]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\pagemark}

\usepackage{blindtext}
\begin{document}
\Blinddocument
\end{document}

答案2

l2tabu 的源代码现已发布在 CTAN。您可以在那里阅读:

\renewcommand*{\othersectionlevelsformat}[1]{%
  \makebox[0pt][r]{\csname the#1\endcsname\autodot\enskip}}

章节编号放在宽度为 0 的框中,右对齐。因此,它会延伸到左边距。

相关内容