减少 fncychap 章节前后的空格

减少 fncychap 章节前后的空格

由于空间限制,我想减少章节名称前后的空格。我正在使用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}

在此处输入图片描述

相关内容