使用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 的框中,右对齐。因此,它会延伸到左边距。