![减少回忆录类中单个章节标题前的白色间距](https://linux22.com/image/461429/%E5%87%8F%E5%B0%91%E5%9B%9E%E5%BF%86%E5%BD%95%E7%B1%BB%E4%B8%AD%E5%8D%95%E4%B8%AA%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E5%89%8D%E7%9A%84%E7%99%BD%E8%89%B2%E9%97%B4%E8%B7%9D.png)
我正在使用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 更改为任意数字。