如何将章节编号放置在外部边距中(使用 KOMA)

如何将章节编号放置在外部边距中(使用 KOMA)

在另一个问题中(如何在 KOMA 脚本中将章节编号放在章节标题后面) 代码显示章节编号与章节标题重叠。我希望将章节编号(大号)放在右侧(外侧)边距中。

我在这里复制了上一个解决方案的代码,虽然我并不完全理解,但发现它可以工作。要让数字出现在边距中,必须进行哪些更改?\textwidth用替换\pagewidth不起作用。我希望得到一些关于如何阅读代码的提示。

\documentclass{scrbook}
\usepackage{lmodern}
\usepackage{xcolor}

\renewcommand\raggedchapter{\raggedleft}
\renewcommand*{\chapterformat}{%
  \fontsize{60}{68}\selectfont\textcolor{lightgray}{\thechapter}}

\makeatletter
\renewcommand\chapterlinesformat[3]{%
  \ifstr{#1}{chapter}
    {\hfill\makebox[0pt][r]{#2}\makebox[0pt][r]{\parbox[b]{\textwidth}{\raggedchapter#3}}}%
    {\@hangfrom{#2}{#3}}% original definition for other commands with style=chapter
}
\makeatother

\usepackage{blindtext}
\begin{document}
\tableofcontents
\blinddocument
\chapter{Text elements}
In this chapter, some textual elements are shown, like figures,
tables, lists, equations, etc. Also, bananas.
\end{document}

答案1

像这样?

\documentclass{scrbook}
\usepackage{lmodern}
\usepackage{xcolor}

\renewcommand\raggedchapter{\raggedleft}
\renewcommand*{\chapterformat}{%
  \rlap{\fontsize{60}{68}\selectfont\textcolor{lightgray}{\thechapter}}}

\makeatletter
\renewcommand\chapterlinesformat[3]{%
  \ifstr{#1}{chapter}
    {\hfill#2\makebox[0pt][r]{\parbox[b]{\textwidth}{\raggedchapter#3}}}%
    {\@hangfrom{#2}{#3}}% original definition for other commands with style=chapter
}
\makeatother

\usepackage{blindtext}
\begin{document}
\tableofcontents
\blinddocument
\chapter{Text elements}
In this chapter, some textual elements are shown, like figures,
tables, lists, equations, etc. Also, bananas.
\end{document}

外边距的数字


一些解释:

  • 章节编号存储在中\thechapter,所以我们知道应该修改包含的代码\thechapter
  • 代码\rlap创建一个宽度为零的框,然后将其内容悬挂在右侧。您也可以尝试一下\llap。使用该mathtools包,有\clap,并且有数学模式等价:\mathrlap\mathllap\mathclap
  • 我建议在章节标题和章节编号之间添加一些空格,这样你就可以写\rlap{ \fontsize...(注意添加的空格)。这当然是我的个人偏好。

相关内容