\flushbottom 与固定书籍类中章节标题的位置

\flushbottom 与固定书籍类中章节标题的位置

考虑一下这个MWE:

\documentclass[12pt%,oneside%
]{book}
\usepackage{setspace}
\setstretch{1.2}
\usepackage{lipsum}
\begin{document}
%\raggedbottom
\chapter{ABC}
See how this chapter heading is not in the same place as the following one? Try the oneside option of the book class, and the problem disappears!
\chapter{ABC}
\lipsum[1-3]
\end{document}

您会注意到第一章和第二章标题的位置不同。在阅读了一小章后从一个双页切换到另一个双页时,这非常烦人。

\raggedbottom我怎样才能在不使用或的情况下解决这个问题oneside

答案1

这是book类中的一个错误,呃,功能,其中\par用于将“第 1 章”与标题分开,但未\parskip设置为零。通常设置为\parskip0pt plus 1pt以便 TeX 能够遵循\flushbottom

只需纠正不良行为:

\documentclass[
  12pt,
  openany,% just to be able to see both chapter heads side by side
]{book}

\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makechapterhead}
  {\parindent}
  {\parskip=\z@skip\parindent}
  {}{}
\makeatother

\usepackage{setspace}
\setstretch{1.2}
\usepackage{lipsum}

\begin{document}
\chapter{ABC}

See how this chapter heading is not in the same place as the following one? Try the oneside
option of the book class, and the problem disappears!

\chapter{ABC}
\lipsum[1-3]
\end{document}

该设置\parskip=\z@skip是局部的,因为 LaTeX 是分组打印章节标题的,所以它不会传播到文本排版。

相关内容