如果我所想要做的只是调整某个特定章节标题之前的垂直空间,我是否可以以某种方式快速完成此操作而不需要重新定义?
我尝试了以下操作,但没有效果:
\documentclass{report}
\begin{document}
\vspace*{-3cm}
\chapter{My chapter}
\end{document}
答案1
\chapter
发出一个\clearpage
开始新页面的命令,并插入一个\vspace*
,虽然是必要的,但会插入内容足以实现\clearpage
。我们可以通过\clearpage
手动发出并从常规中删除此功能来避免这种情况\chapter
命令中删除此功能来避免这种情况暂时地:
\documentclass{report}
\begin{document}
\chapter{First chapter}
\begingroup
\clearpage% Manually insert \clearpage
\let\clearpage\relax% Remove \clearpage functionality
\vspace*{-2cm}% Insert needed vertical retraction
\chapter{Second chapter}% Regular \chapter
\endgroup
\chapter{Third chapter}
\end{document}
的定义\clearpage
在之后恢复,\endgroup
因为它遵守组内重新定义的范围规则。
答案2
如果您想要重新定义章节标题的整个布局,可以使用titlesec
及其\titlespacing
命令。如果您只想更改垂直间距,则使用 很容易xpatch
:
\documentclass{report}
\usepackage[showframe]{geometry}
\usepackage{xpatch}%
\begin{document}
{ %
\makeatletter
\xpatchcmd{\@makechapterhead}{%
\vspace*{50\p@}}{%
\vspace*{50\p@}
\vspace*{-3cm}}
{}{}
\chapter{A higher chapter}
}%
\noindent
\chapter{A lower chapter}
\end{document}