Skip to content

Commit 1eb7c1f

Browse files
jensmaurerzygoloid
authored andcommitted
[styles,macros] Improve automatic page breaking
- Strongly discourage breaking between itemdecl and itemdescr. - Mildly discourage breaking inside an itemdecl. - Encourage breaking after a codeblock. - Encourage breaking at empty lines in a codeblock. - Encourage breaking after a semicolon or closing brace. - Mildly discourage breaking before an itemized list. - Allow substantial whitespace at the end of a page.
1 parent 472e8b5 commit 1eb7c1f

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

source/layout.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@
1818
\setmarginnotes{7pt}{7pt}{0pt}
1919
\checkandfixthelayout
2020

21+
%%--------------------------------------------------
22+
%% If there is insufficient stretchable vertical space on a page,
23+
%% TeX will not properly consider penalties for a good page break,
24+
%% even if \raggedbottom (default) is in effect.
25+
\addtolength{\topskip}{0pt plus 20pt}
26+
2127
%%--------------------------------------------------
2228
%% Paragraph and bullet numbering
2329

source/macros.tex

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,9 @@
348348
% italics. Arbitrary TeX commands can be used if they're
349349
% surrounded by @ signs.
350350
\newcommand{\CodeBlockSetup}{
351-
\lstset{escapechar=@, aboveskip=\parskip, belowskip=0pt}
351+
\lstset{escapechar=@, aboveskip=\parskip, belowskip=0pt,
352+
midpenalty=500, endpenalty=-50,
353+
emptylinepenalty=-250, semicolonpenalty=0}
352354
\renewcommand{\tcode}[1]{\textup{\CodeStylex{##1}}}
353355
\renewcommand{\techterm}[1]{\textit{\CodeStylex{##1}}}
354356
\renewcommand{\term}[1]{\textit{##1}}
@@ -381,6 +383,9 @@
381383
{
382384
\lstset{escapechar=@,
383385
xleftmargin=0em,
386+
midpenalty=500,
387+
semicolonpenalty=-50,
388+
endpenalty=3000,
384389
aboveskip=2ex,
385390
belowskip=0ex % leave this alone: it keeps these things out of the
386391
% footnote area
@@ -391,7 +396,7 @@
391396

392397
\newenvironment{itemdescr}
393398
{
394-
\begin{indented}}
399+
\begin{indented}[beginpenalty=3000, endpenalty=-300]}
395400
{
396401
\end{indented}
397402
}

source/styles.tex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@
103103
\setlength{\partopsep}{0pt}
104104
\newlist{indenthelper}{itemize}{1}
105105
\newlist{bnflist}{itemize}{1}
106-
\setlist[itemize]{parsep=\parskip, partopsep=0pt, itemsep=0pt, topsep=0pt}
106+
\setlist[itemize]{parsep=\parskip, partopsep=0pt, itemsep=0pt, topsep=0pt,
107+
beginpenalty=10 }
107108
\setlist[enumerate]{parsep=\parskip, partopsep=0pt, itemsep=0pt, topsep=0pt}
108109
\setlist[indenthelper]{parsep=\parskip, partopsep=0pt, itemsep=0pt, topsep=0pt, label={}}
109110
\setlist[bnflist]{parsep=\parskip, partopsep=0pt, itemsep=0pt, topsep=0pt, label={},

0 commit comments

Comments
 (0)