fncychap 包 - 减少页眉和章节标题之间的垂直间隙/空间

fncychap 包 - 减少页眉和章节标题之间的垂直间隙/空间

包 fncychap 使用\chapter将章节标题放置在页面的 1/3 处。我们如何将其放置在更靠近顶部的位置?也就是说,在下面的最小工作示例 (MWE) 中,单词“Test Chapter”更靠近标题“My Header”?

\documentclass[twoside,a4paper,11pt,Final]{book}
\usepackage{fancyhdr}
\usepackage[Bjornstrup]{fncychap}

\begin{document}

    \fancyhf{} 
    \pagestyle{fancy} 

    \fancyfoot[RE,RO]{Page Number: \thepage}
    \fancyhead[RE,RO]{My Header: \thesection}

    \let\cleardoublepage\clearpage

    \chapter{Test Chapter}
    \thispagestyle{fancy}
    Some writing in the chapter.

\end{document}

答案1

与标准类一样,fncychap 在章节标题前放置了 50pt 的垂直空间。此代码重新定义了两个章节标题宏,您可以调整 的参数\vspace,我将其设置为 10 pt:

\makeatletter
\renewcommand*{\@makechapterhead}[1]{%
  \vspace*{10\p@}%
  {\parindent \z@ \raggedright \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920
        \DOCH
      \fi
    \fi
    \interlinepenalty\@M
    \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424
      \DOTI{#1}%
    \else%
      \DOTIS{#1}%
    \fi
  }}
% For the case \chapter*:
\renewcommand*{\@makeschapterhead}[1]{%
  \vspace*{10\p@}%
  {\parindent \z@ \raggedright
    \normalfont
    \interlinepenalty\@M
    \DOTIS{#1}
    \vskip 40\p@
  }}
\makeatother

您可以定义一个 TeX 长度来存储该值,这样会比在其宏中直接使用数值的包做得更好。

相关内容