不使用 titlesec 包更改章节前的空格

不使用 titlesec 包更改章节前的空格

如果这是一个重复的问题,我很抱歉,我在论坛搜索中找不到任何类似的内容。

如何调整空间不使用包的章节标题titlesec

我尝试过这个代码,但没有成功:

\renewcommand*{\chapterheadstartvskip}{\vspace*{-\topskip}}

它说\chapterheadstartvskip没有定义。

答案1

您没有提供所使用的 documentclass。因此,我猜测它是book。此处,上面的默认空间由 定义\vspace*{50\p@}。可以按照以下代码进行修补:

\documentclass{book}
\usepackage{blindtext,showframe}   %% just for demo
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@makechapterhead}{\vspace*{50\p@}}{\vspace*{20\p@}}{}{}
\xpatchcmd{\@makeschapterhead}{\vspace*{50\p@}}{\vspace*{20\p@}}{}{}
\makeatother
\begin{document}
  \tableofcontents
  \Blinddocument
\end{document}

按照您的意愿20进行调整。\vspace*{20\p@}

答案2

我设法找到了答案。我使用的课程是\documentclass{abntex2}基于\documentclass{memoir}课程的

章节空间的修复是将度量与不知何故在 abntex2 包中丢失的\beforechapskip命令的重新定义相结合。\chapterheadstart

\renewcommand{\chapterheadstart}{\vspace*{\beforechapskip}}
\setlength\beforechapskip{20mm}
\setlength\afterchapskip{20mm}

相关内容