以章节开头的页面最开始处会出现半行跳过的情况;以段落开头的页面则不会出现这种情况。如何消除这种情况?
平均能量损失
\documentclass[british, 12pt]{report}
\usepackage[margin=1in,headheight=15pt,showframe]{geometry}
\usepackage{titlesec}
\titleformat{\section}{\sffamily\bfseries}{}{0pt}{}[]
\titlespacing{\section}{0pt}{0pt}{0pt}
\linespread{2}
\begin{document}
\section{Review of Related Literature}
\end{document}
答案1
这似乎是titlesec
你已经看到的一个特点
\documentclass[british, 12pt]{report}
\usepackage[margin=1in,headheight=15pt,showframe]{geometry}
\showoutput
\usepackage{titlesec}
\linespread{2}
\begin{document}
\section{Review of Related Literature}
\end{document}
也就是说,您只需加载包,行为就会发生变化,即使您不使用它的声明。
问题是,包会添加\strut
到节标题中,而当您拉伸基线时,支柱会变大。由于这是零宽度规则而不是垂直空间,因此它不会在分页符处被删除。
可能包应该使用一个\strut
不被基线拉伸扩展的特殊版本,这样如果使用重音字母或其他大字母,它会提供一致的间距,而不会在基线拉伸时给出这种糟糕的间距。
包装内有 6 个\strut
,这修复了其中两个。
\documentclass[british, 12pt]{report}
\usepackage[margin=1in,headheight=15pt,showframe]{geometry}
\showoutput
\usepackage{titlesec}
\makeatletter
\def\ttlh@hang#1#2#3#4#5#6#7#8{%
\gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}%
\setlength\leftskip{#6}%
\setlength\rightskip{#7}%
\interlinepenalty\@M
\ttl@changecentercr
\ttl@beginlongest
#1{\ifhmode\ttl@hmode@error\fi
\ttl@glcmds
\parindent\z@
\begingroup
%%%%
\baselineskip\dimexpr\baselineskip/\baselinestretch\relax
\def\baselinestretch{1}%
\let\f@linespread\baselinestretch
\fontsize{\f@size}{\baselineskip}%
\setbox\strutbox\hbox{%
\vrule\@height.7\baselineskip
\@depth.3\baselineskip
\@width\z@}%
%%%%%%%%%%%%%
\ifttl@label
\noindent
\sbox\z@{#2\strut\ttl@calc\hspace{#3}}%
\hangindent\wd\z@
\box\z@
\fi
#4{#8}%
\kern\z@\strut\@@par
\endgroup
\nobreak\ttl@midlongest#5\@@par}%
\ttl@endlongest}
\makeatother
\titleformat{\section}{\sffamily\bfseries}{}{0pt}{}[]
\titlespacing{\section}{0pt}{0pt}{0pt}
\linespread{2}
\begin{document}
\section{Review of Related Literature}
\end{document}