我正在使用 pdflatex 排版一个大型文档(phdthesis),并且正在使用KOMAscript
文档scrreprt
类。
我很惊讶地看到一个标题 ( \subsubsection
) 位于页面底部,而下面没有任何文字!这种风格真的很差,其他人似乎也遇到过这种情况(见在 LaTeX 中,如何让 \section{} 不出现在页面末尾?和避免在章节/小节标题后立即分页),但在我的例子中,分页符直接位于标题之后 - 甚至没有附加两行文本...
这似乎与本章中的许多大浮点数有关,我想当文本完成并且编辑完成后,我必须手动调整它。
但是,我想知道是否pdflatex
至少应该在日志文件中打印一个关于此的警告(我找不到任何与此相关的警告),如果觉得有必要做这样丑陋的事情......而且我使用-option \raggedbottom
(因为我也遇到了大段落之间间距很大的问题),所以我希望这样可以避免这样的“孤儿”。
将惩罚设置为 1000 并没有改变任何事情:
\widowpenalty=1000
\clubpenalty=1000
----------编辑:
我现在知道它来自哪里,但不知道如何避免它:
我已经定义了一个命令,可以使用它快速fixme
向文档添加注释,\N{Note}
它定义为\newcommand{\N}[1]{\fxfatal*[inline=true,nomargin]{/#1/}{}}
...我在有问题的部分命令之后直接使用了它,例如:
\subsubsection{Title of the section}
\N{note about what to change in that section later} And now starts the normal text of the section...
如果我将注释移到\N{...}
另一个位置,例如,移到该部分的第一句话之后,分页符就会位于部分标题之前。
问题:我可以做些什么来重新定义 \N{} 命令以避免这种行为?
在这种情况下,构建一个最小的例子会很困难,所以我的问题是:
1) 为什么没有警告?2) 我认为一个孤独的标题比在底部有一些空白的页面更糟糕 - 我怎样才能让 pdflatex “知道”这一点?
随着时间的推移,我的序言变得相当复杂 - 我省略了所有“简单”的新命令等,只尝试保留可能干扰我的问题的内容:
\documentclass[11pt, a4paper,
twoside, autooneside,
headinclude, footexclude,
liststotoc, bibtotoc,
tablecaptionabove, noonelinecaption, headsepline, halfparskip
]{scrreprt}
\usepackage{svn-multi}
\svnidlong
%(...)
\areaset[8mm]{15.5cm}{25.2cm}
\setkomafont{sectioning}{\normalfont\normalcolor\bfseries}
\addtokomafont{captionlabel}{\bfseries}
\usepackage[UKenglish, ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[TS1, T1]{fontenc}
\usepackage{aecompl}
\usepackage[ngerman, iso]{isodate}
\isodate
\usepackage{datetime}
\usepackage[version=3]{mhchem}
\usepackage[caption=false, format=hang]{subfig}
\usepackage{pdflscape}
\usepackage[stable]{footmisc}
\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\automark[section]{chapter}
\cfoot{\footnotesize Rev.~\svnrev{} (\svnfilerev) \\vom \svnyear-\svnmonth-\svnday \ \svnhour:\svnminute:\svnsecond}
\ifoot{\footnotesize erstellt:\\\today{} \currenttime}
\usepackage{hyperref}
\usepackage[pdftex]{graphicx}
\usepackage{color}
\usepackage{amsmath}
\usepackage{amstext}
\usepackage{amssymb}
\usepackage{array}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[numbers, sort&compress]{natbib}
\usepackage[]{rotating}
\usepackage{url}
\usepackage[tight]{units}
\usepackage[color]{showkeys}
\renewcommand*\showkeyslabelformat[1]{\fbox{\normalfont\tiny\ttfamily#1}}
\definecolor{refkey}{cmyk}{0.26,0,0.76,0}%{gray}{0.5}
\definecolor{labelkey}{cmyk}{0.26,0,0.76,0}%{gray}{0.5}
\usepackage[draft]{fixme}
\fxsetup{theme=color, inline, targetlayout=color, author=}
\usepackage{paralist}
\deffootnote[1em]{1em}{1em} {\textsuperscript{\thefootnotemark} }
\setcapindent{1cm}
\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
% Alter some LaTeX defaults for better treatment of figures:
%Quelle: http://mintaka.sdsu.edu/GF/bibliog/latex/floats.html
% See p.105 of "TeX Unbound" for suggested values.
% See pp. 199-200 of Lamport's "LaTeX" book for details.
% General parameters, for ALL pages:
\renewcommand{\topfraction}{0.9} % max fraction of floats at top
\renewcommand{\bottomfraction}{0.8} % max fraction of floats at bottom
% Parameters for TEXT pages (not float pages):
\setcounter{topnumber}{3}
\setcounter{bottomnumber}{2}
\setcounter{totalnumber}{4} % 2 may work better
\setcounter{dbltopnumber}{2} % for 2-column pages
\renewcommand{\dbltopfraction}{0.9} % fit big float above 2-col. text
\renewcommand{\textfraction}{0.07} % allow minimal text w. figs
% Parameters for FLOAT pages (not text pages):
\renewcommand{\floatpagefraction}{0.8} % require fuller float pages
% N.B.: floatpagefraction MUST be less than topfraction !!
\renewcommand{\dblfloatpagefraction}{0.8} % require fuller float pages
% remember to use [htp] or [htpb] for placement
答案1
如果您的文档中有分页符,则意味着您的代码中的某些内容允许或要求分页。那么 pdflatex 为什么要抱怨呢?它只是在执行您的代码。
上次我看到这个问题是因为章节标题中的颜色命令(但在新的 KOMA 版本中不应该发生这种情况)。因此,首先尝试从\setkomafont{sectioning}
.
另一种可能性是标题后面的文本允许分页。例如,长表可能是一个问题。在这种情况下,包 needspace 可以提供帮助。