![节前后的空格](https://linux22.com/image/254794/%E8%8A%82%E5%89%8D%E5%90%8E%E7%9A%84%E7%A9%BA%E6%A0%BC%20.png)
我在段落之间的文本中 [见图片] 有额外的空间。除此之外,它的大小也不同 [这个空间]。此外,在章节标题之前和章节标题之后也有额外的空间。不同章节标题的大小也不同。
如何修复它?
\documentclass[openany]{book}
\usepackage[utf8]{inputenc}
\usepackage[MeX]{polski}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage[explicit]{titlesec}
\usepackage[dotinlabels]{titletoc}
\usepackage{setspace}
\onehalfspacing
\usepackage[protrusion=true,expansion=true]{microtype}
\usepackage{lettrine}
\usepackage{titlesec}
%\titleformat{\section}{\normalfont\bfseries}{\thesection}{1em}{}
%\linespread{0.9}
\newlength\BoxWd
\setlength\BoxWd{0.75cm}
\newlength\Aux
\usepackage[left=4.65cm, right=4.65cm, top=4cm, bottom=4.25cm]{geometry}
% chapter tiltes formatting
\titleformat{\chapter}[display]
{\normalfont\sffamily\huge}
{\renewcommand{\thechapter}{\Roman{chapter}}%
\settowidth\Aux{\textcolor{white}{\Huge\thechapter}}
\ifnum\Aux>\BoxWd
\setlength\BoxWd{\Aux}
\else\fi
\hspace*{0.3em}\colorbox{black}{%
\parbox[c][1.2cm][c]{\BoxWd}{%
\centering\textcolor{white}{\Huge\thechapter}}}}
{-1ex}
{\titlerule\vspace{.7ex}\filleft\MakeUppercase{#1}}
[\vspace{.2ex}\titlerule]
\titlespacing*{\chapter}{0pt}{50pt}{80pt}
\titleformat{\section}
{\scshape\normalsize\bfseries}{\MySecSquare\ \thesection.}{0.15em}{#1}
\titlespacing*{\section}{0pt}{2.5pt}{1.5pt}
\titleformat{\subsection}
{\normalfont\scshape\normalsize\bfseries}{\MySecSquare\ \thesubsection.} {0.10em}{#1}
\titlespacing*{\subsection}{0pt}{1.5pt}{0.5pt}
% formatting for chapter entries in ToC
\titlecontents{chapter}
[3em]{\vspace*{5.5pt}}
{\small\bfseries{\hspace*{-2.63em}{\chaptername}\hspace* {5pt}\contentslabel{0.25em}\hspace*{1.25em}}}
{\hspace*{-3em}}
{\titlerule*[1pc]{.}\small\sffamily\bfseries\contentspage}
% formatting for section entries in ToC
\titlecontents{section}
[4em]{\vspace*{-2pt}}
{\small\contentslabel{2.5em}}
{\hspace*{2.75em} }%\hspace*{-2.3em}
{\titlerule*[1pc]{.}\small\sffamily\contentspage}
\titlecontents{subsection}
[7em]{\vspace*{-2pt}}
{\small\contentslabel{2.85em}}
{\hspace*{6em}}
{\titlerule*[1pc]{.}\small\sffamily\contentspage}
\newcommand\MySquare{%
\leavevmode\hbox to 1.2ex{\hss\vrule height .9ex width .7ex depth -.2ex\hss}}
\newcommand\MySecSquare{%
\leavevmode\hbox to 1.2ex{\hss\vrule height 1.3ex width 1.1ex depth -.2ex\hss}}
\renewcommand\labelitemi{\MySquare}
\newenvironment{myquote}{\list{}{\leftmargin=15pt\rightmargin=0.0pt}\item[]}{\endlist}
\newcommand\MyTitle{Some title}
\usepackage{fancyhdr}
\fancyhf{}
\fancyhead[EL,OR]{\thepage}
\fancyhead[OL]{\scriptsize\scshape{\leftmark}}
\fancyhead[ER]{\footnotesize\scshape{\MyTitle}}
\renewcommand\headrulewidth{0.2pt}
\pagestyle{fancy}
\newcommand{\initial}[1]{%
\lettrine[lines=2,lhang=0.35,nindent=0em]{
\color{black}
{{#1}}}{}}
\renewcommand\chaptermark[1]{\markboth{\thechapter.\ #1}{}}
\usepackage{hyperref}
\hypersetup
{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black,
pdfauthor = {Pdfautor},
pdftitle = {My title},
pdftex
}
\begin{document}
\frontmatter
\tableofcontents
\clearpage
\newpage
\thispagestyle{empty}
\mainmatter
\chapter*{Na wstępie}\label{chap:one}
\addcontentsline{toc}{chapter}{\bfseries{Na wstępie}\vspace*{2em}}
\setcounter{page}{9}
\section{Section One}
\lipsum[1-10]
\section{Section two}
\lipsum[1]
\section{Section 3}
\section{Section 4}
\lipsum[1-10]
\section{Section 5}
\lipsum[1-2]
\section{Section 6}
\lipsum[1]
\section{Section 7}
\lipsum[1-20]
\chapter{Second chapter}
\section{someSection}
\lipsum[1-20]
\section{someSection2}
\lipsum[1-20]
\chapter{Last chapter}
\end{document}
答案1
这个问题可能在问题中得到回答确保文本在页面底部(和顶部)对齐。
尝试添加选项paper=a4paper,twoside=true,textheight=45\baselineskip+\topskip
到geometry
文档中的 -options。您还必须使用包calc
\usepackage{calc}
\usepackage[paper=a4paper,
twoside=true,
bindingoffset=0cm,
textheight=45\baselineskip+\topskip,
left=4.65cm, right=4.65cm, top=4cm, bottom=4.25cm
]{geometry}
在您的 MWE 中(但也许在实际文档中),这并不能解决间距问题,因为 之后的文本太少section 0.2
,然后两个小节之间没有任何文本。LaTeX
找不到合适的分页位置。如果您使用实际文本,或\lipsum[2-3]
在 之后使用section 0.2
,空格也会消失。您还可以使用命令
\enlargethispage{2\baselineskip}
或者
\enlargethispage{-\baselineskip}
在有问题的页面上添加或删除一些行。
问题出在book
-class 默认使用flushbottom
,因此会拉伸顶部和底部边距之间的文本。如果您将该选项添加raggedbottom
到 class 选项,问题将永久消失。
寓意是:如果您希望文本在顶部和底部边距之间对齐,则必须在完成所有编辑后仔细检查文档。在最后的润色中,您可以进行细微的更改以纠正此类排版错误。但您无法自动处理所有此类问题。