包 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 长度来存储该值,这样会比在其宏中直接使用数值的包做得更好。