将章节标题放在页面中间(垂直)

将章节标题放在页面中间(垂直)

我正在使用fncychap包来自定义章节标题。我想将章节标题放在单独页面的中央(垂直)。

\documentclass{report}
\usepackage[Bjornstrup]{fncychap}
\begin{document}
\chapter{Bjornstrup}%how to put it in the center of the page
\newpage
somecontent....
\end{document}

答案1

使用宏\chaptervc来开始您的章节。如您所见,它只需要一个参数,就像常规\chapter命令一样。

它的工作原理是将原始\chapter命令输出置于垂直中心,使用两个\vfills,一个在前,一个在后。然后它使用 a\clearpage来获取新页面,因为您希望将章节标题放在独立的页面中。(虽然 a\newpage在这里也应该很好,因为此时不太可能保留任何未处理的浮点数。)

\documentclass{report}
\usepackage[Bjornstrup]{fncychap}
\usepackage{lipsum}

\long\def\chaptervc#1{\vfill\chapter{#1}\vfill\clearpage}

\begin{document}
\chaptervc{Bjornstrup}%how to put it in the center of the page

\lipsum[1]

\chaptervc{Another Chapter}

\lipsum[2]
\lipsum[3]
\lipsum[4]

\chaptervc{And Another}

\lipsum[5]

\end{document}

答案2

添加\vfillbefore 和 after\chapter{#1}似乎无法将章节标题移到页面中间。MMA 的答案无论有没有它们看起来都一样。问题是\chapter问题 a\clearpage和第一个\vfill最终出现在上一页的底部。此外,\chaptervc没有可选参数和星号形式的定义限制了它的使用。

必须进入\chapter命令定义,并在章节标题开始之前和之后放置一些内容。在fncychap包中,章节标题由命令开始,并以或\DOCH结束。在下面,我在 之前和之后添加了垂直空间。还添加了负空间,取消了在其他地方添加的正空间。没有放在后面,因为 里面包含:\DOTI\DOTIS\vfil\DOCH\clearpage\DOTI\DOTIS\vfil\DOTI\vfil\clearpage

\documentclass{report}
\usepackage[Bjornstrup]{fncychap}
\usepackage{lipsum}
% internal changes to chapter headings:
\let\oldDOCH\DOCH
\let\oldDOTI\DOTI
\let\oldDOTIS\DOTIS
\renewcommand\DOCH{\vspace{-50pt}\vfil\oldDOCH}
\renewcommand\DOTI [1]{\oldDOTI {#1}\vspace{-40pt}\clearpage}
\renewcommand\DOTIS[1]{\oldDOTIS{#1}\vspace{-40pt}\clearpage}

\begin{document}
\chapter{Bjornstrup}

\lipsum[1]

\chapter{Another Chapter}

\lipsum[2]
\lipsum[3]
\lipsum[4]

\chapter{And Another}

\lipsum[5]

\end{document}

相关内容