减少回忆录类中单个章节标题前的白色间距

减少回忆录类中单个章节标题前的白色间距

我正在使用memoir文档类。我想减少章节标题前的空格,并且我想单独执行此操作,因为我不想减少其他标题(目录、词汇表等)前的空格。

在我的这个中写入完美有效main.tex

\frontmatter
    % ToC...

\makeatletter
\let\savedchap\@makechapterhead
\def\@makechapterhead{\vspace*{-3cm}\savedchap}
\mainmatter
    \input{chapter1.tex}
    \input{chapter2.tex}
    \input{chapter3.tex}
\let\@makechapterhead\savedchap
\makeatother

\backmatter
    % glossary...

但我想避免使用这种解决方案,因为强烈建议这样做,\makeatletter并且\makeatother应该在序言中。什么才是可靠的解决方案?

答案1

memoir\@makechapterhead以 开头\chapterheadstart,其默认含义是

\vspace*{\beforechapskip}

\beforechapskip因此,您所需要做的就是根据自己的喜好进行更改\mainmatter

默认值是50pt,3cm大约是85pt。

\documentclass[oneside]{memoir}

\AddToHook{cmd/mainmatter/after}{\setlength{\beforechapskip}{-35pt}}
\AddToHook{cmd/backmatter/after}{\setlength{\beforechapskip}{50pt}}

\begin{document}

\frontmatter

\tableofcontents

\mainmatter

\chapter{Test}

\backmatter

\chapter{Another test}

\end{document}

我使用oneside只是为了避免下图中出现空白页。

在此处输入图片描述

答案2

我会使用\vspace{-1.0cm}。显然,您可以根据要减少的空间量将 1.0 更改为任意数字。

相关内容