每个部分级别的几何形状?

每个部分级别的几何形状?

是否可以在不同的节级别上使用不同的几何图形,前提是您可以保证它们位于不同的页面上。这听起来可能很奇怪,但让我用一个显然需要这样做的案例来说明。

\documentclass{scrreprt}
\usepackage[outer=7cm, inner=3cm, marginparwidth=4cm, marginparsep=10mm, showframe]{geometry}
\begin{document}
  \part{test}
\end{document}

在这个使用宽边距注释的文档示例中,部分页面将成为章节之间的分隔符,并且我希望这些页面的居中方式与主要页面不同(即以纸张为中心,因此具有没有边距的几何形状)

在此处输入图片描述

我知道每次我都可以使用 \newgeometry 和 \restoregeometry,但我希望可以将其与 \part{} 关联并自动完成。有没有办法实现这一点?

答案1

方法如下:

\documentclass{scrreprt}
\usepackage{lipsum}
\usepackage[outer=7cm, inner=3cm, marginparwidth=4cm, marginparsep=10mm, showframe]{geometry}
\let\oldpart\part
\def\part#1{\newgeometry{marginparwidth=0cm,marginparsep=0cm,showframe,inner=0cm,outer=0cm}\oldpart{#1}\restoregeometry}
\begin{document}
  \part{test}
  \chapter{Test}
  \lipsum[1-3]
  \part{test}
  \chapter{Test}
  \lipsum[1-3]
\end{document}

只需测试一下并根据您的需要进行更改...PS:我认为不需要截图。

答案2

您可以修补部分级别命令来更改几何形状:

\usepackage{xpatch}
\xpretocmd\part
  {\newgeometry{marginparwidth=0cm,marginparsep=0cm,showframe,inner=0cm,outer=0cm}}
  {}{\PatchFailedI}

style=part如果某个部分级别将其标题放在自己的页面上,那么它就是具有(选项\DeclareSectionCommand等,请参阅文档)的部分,类似于部分级别 。您可以\partheademptypage使用 来在所有部分级别之后恢复几何形状style=part。这也适用于和带星号的版本。此外,可以使用\addpart可选参数。\part

例子:

\documentclass[chapterprefix]{scrreprt}
\usepackage{lipsum}
\usepackage[outer=7cm, inner=3cm, marginparwidth=4cm, marginparsep=10mm, showframe]{geometry}

\usepackage{xpatch}
\xpretocmd\part
  {\newgeometry{marginparwidth=0cm,marginparsep=0cm,showframe,inner=0cm,outer=0cm}}
  {}{\PatchFailedI}
\xapptocmd\partheademptypage
  {\restoregeometry}
  {}{\PatchFailedII}

\begin{document}
\tableofcontents
\part{test}
\chapter{Test}
\lipsum[1-3]
\addpart{test}
\chapter{Test}
\lipsum[1-3]
\part[toc entry]{title}
\chapter{Test}
\lipsum
\end{document}

如果您想对章节执行相同的操作,请将选项更改style为部分和补丁\chapter

\RedeclareSectionCommand[
  style=part,
]{chapter}
\xpretocmd\chapter
  {\newgeometry{marginparwidth=0cm,marginparsep=0cm,showframe,inner=0cm,outer=0cm}}
  {}{\PatchFailedIII}

从 3.27 版开始,KOMA-Script 将提供新的 Hooks (DoHooks)。目前您需要 3.27 的预发布版本(可在 KOMA-Script 网站上查阅)测试以下示例:

\documentclass{scrreprt}[2019/07/29]% needs prerelease 3.27.3193 or newer
\usepackage{lipsum}
\usepackage[outer=7cm, inner=3cm, marginparwidth=4cm, marginparsep=10mm, showframe]{geometry}

\AddtoDoHook{heading/postinit/part}{\partgeometry}
\newcommand*\partgeometry[1]
  {\newgeometry{marginparwidth=0cm,marginparsep=0cm,showframe,inner=0cm,outer=0cm}}
\let\originalpartheademptypage\partheademptypage
\renewcommand\partheademptypage
  {\originalpartheademptypage\restoregeometry}

\begin{document}
\tableofcontents
\part{test}
\chapter{Test}
\lipsum[1-3]
\addpart{test}
\chapter{Test}
\lipsum[1-3]
\part[toc entry]{title}
\chapter{Test}
\lipsum
\end{document}

相关内容