由于空间限制,我想减少章节名称前后的空格。我正在使用fncychap
。这是 MWE:
\documentclass{report}
\usepackage[Glenn]{fncychap}
\usepackage{lipsum} % filler text
\begin{document}
\chapter{Amazing}
\lipsum[1-5] % filler text
\end{document}
答案1
最快的方法是修补相应的命令。要更改标题前的间距,您需要修补\@makechapterhead
(针对编号章节)和\@makeschapterhead
(针对未编号章节);要更改图块后的间距,您需要修补\DOTI
(针对编号章节)和\DOTIS
(针对未编号章节)。一个小例子(第二个参数\patchcmd
包含默认值;第三个参数包含修改后的值):
\documentclass{report}
\usepackage[Glenn]{fncychap}
\usepackage{lipsum} % filler text
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}{\vspace*{50\p@}}{\vspace*{-20\p@}}{}{}
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{\vspace*{-20\p@}}{}{}
\patchcmd{\DOTI}{\vskip 80\p@}{\vskip 40\p@}{}{}
\patchcmd{\DOTIS}{\vskip 40\p@}{\vskip 0\p@}{}{}
\makeatother
\begin{document}
\chapter{Amazing}
\lipsum[1-5] % filler text
\end{document}
不过我建议你不是使用这种风格;长标题看起来不太好,你可以考虑使用借助titlesec
包;这是一个简单的例子(使用的第二和第三个参数设置标题前后的垂直间距\titlespacing*
):
\documentclass{report}
\usepackage{titlesec}
\usepackage{lipsum} % filler text
\makeatletter
\titleformat{\chapter}[frame]
{\normalfont}{\filright\enspace \@chapapp~\thechapter\enspace}
{8pt}{\LARGE\bfseries\filcenter}
\titlespacing*{\chapter}
{0pt}{0pt}{20pt}
\makeatother
\begin{document}
\chapter{Amazing}
\lipsum[1-5] % filler text
\end{document}