所以我有这个相对简单编码的book
文档。
当我尝试编译它时,我收到很多Underfull \vbox (badness 10000) has occurred while \output is active
警告(尽管提供的 MWE 中只有一个)。的结构book
很简单:只有标题和文本。
例如,页面以零件号、章节号和文本开头(是的,我在零件号和章节号之间以及章节号和文本之间都有图像,这些图像都是用\includegraphics
命令添加的)。但即使我删除这些图像,警告仍然会弹出更多警告!
我之前遇到过文本底线悬挂在框架上方的问题,但通过heightrounded
在geometry
书中添加解决了这个问题。
我理解类默认book
使用\flushbottom
将文本刷新到框架底部。所以我尝试使用\raggedbottom
许多人建议的方法,但虽然解决了警告问题,但又带来了另一个问题:现在在某些页面上,底线的基线悬挂在框架上方,有时几乎有整行那么高(不幸的是,在 MWE 中并不那么明显,但您仍然可以在第 1 页上看到它)!
所以我很困惑,为什么会出现这些警告,因为我的文档是相当简单的编码?!
但我注意到它与我的标题(零件号和章节号,可能还有图像)的间距有某种联系。因为当我删除所有\part
和\chapter
命令并只留下裸文本时,警告就会消失。这与titlesec
包装有什么关系吗?
我保留了packages
文档中所有使用的内容,因此您可以轻松发现其中是否有问题。PS
:不要介意这些Overfull \hbox
警告,我的文本中没有它们。它们仅在\lipsum
使用时出现。
% !TEX TS-program = LuaLaTeX
\documentclass[11pt,twoside,openany]{book}
\pagestyle{plain}
\usepackage[english, russian]{babel}
\usepackage{fontspec}
\setmainfont{EB Garamond}[
]
\usepackage{microtype}
\usepackage[shortcuts]{extdash}
\usepackage[pagewise]{lineno}
\usepackage[
paperwidth=6in,
paperheight=9in,
inner=13mm,
top=15mm,
outer=20mm,
bottom=24mm, showframe,
heightrounded,
]{geometry}
\usepackage{lettrine}
\setcounter{DefaultLines}{3}
\renewcommand{\DefaultLoversize}{0.1}
\renewcommand{\DefaultLraise}{0}
\renewcommand{\LettrineTextFont}{}
\setlength{\DefaultFindent}{\fontdimen2\font}
\usepackage{lipsum}
\setlength{\parskip}{0pt}
\usepackage{graphicx}
\usepackage[dvipsnames]{xcolor}
\usepackage[pages=some]{background}
\usepackage{fancyhdr}
\fancyhf{}
\renewcommand{\headrulewidth}{0ex}
\fancyfoot[LE,RO]{\thepage}
\pagestyle{fancy}
\fancypagestyle{plain}{%
\fancyhf{}%
\renewcommand{\headrulewidth}{0ex}%
\fancyhf[lef,rof]{\thepage}%
}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\par}{}{}
\makeatother
%\raggedbottom % If used, it messes up the bottom line the way that its baseline hangs above the frame on some pages
\usepackage{titlesec}
\titleclass{\part}{top}
\titleformat{\part}{\centering\normalfont\large}{\thepart.}{4ex}{\LARGE\centering}
\titlespacing*{\part}{0ex}{2ex}{0ex}
\titleclass{\chapter}{straight}
\titleformat{\chapter}{\centering\normalfont\large}{\thechapter.}{4ex}{\large\centering}
\titlespacing*{\chapter} {0ex}{6ex}{02ex}
\setcounter{secnumdepth}{0}
\usepackage{tocloft}
\begin{document}
\pagestyle{plain}
\pagenumbering{gobble}
\addtocounter{page}{0}
\begin{titlepage}
\centering
{\large TITLE\par}
\vfill
\title{SOME TITLE}
\author{SOME AUTHOR}
\date{}
\end{titlepage}
\clearpage
\frontmatter
\mainmatter
\pagenumbering{arabic}
\part{PART ONE}
\begin{center}
\includegraphics[height=15ex,keepaspectratio]{example-image-a}
\end{center}
\chapter{CHAPTER ONE}
\begin{center}
\includegraphics[height=35ex,keepaspectratio]{example-image-b}
\end{center}
\lipsum[1-12]
\chapter{CHAPTER TWO}
\begin{center}
\includegraphics[height=35ex,keepaspectratio]{example-image-b}
\end{center}
\lipsum[1-12]
\chapter{CHAPTER THREE}
\begin{center}
\includegraphics[height=35ex,keepaspectratio]{example-image-b}
\end{center}
\lipsum[1-12]
\end{document}
答案1
你需要在标题周围有一些灵活性,以便实现平底
也许
\titlespacing*{\chapter} {0ex}{6ex plus 4ex minus 1ex}{2ex}
但是第 3 章之前的页面出现未满警告是因为您删除了正常内容\clearpage
,但标题和图像不适合,并且没有粘合剂来填充页面,您或许可以添加\filbreak
这样的内容以允许章节之前的页面变短。
\titleformat{\chapter}{\filbreak\centering\normalfont\large}{\thechapter.}{4ex}{\large\centering}