# [texhax] List of Examples (page break?)

Uwe Lueck uwe.lueck at web.de
Sat Sep 26 18:03:07 CEST 2015

BB> all very well, but is there a way to
BB> avoid a page break when the next bit
BB> after the *heading* is \begin{enumerate}
BB> or one of its kin?

Later:

BB> usually, the text of a theorem is
BB> expected to start on the same line as
BB> the *header*, but some authors insist
BB> on starting with a list.  and that
BB> can leave the header by itself at the
BB> bottom of a page.

Somewhat unfair, my conviction has become that
(all stars mine). I violated this rule myself late
at night in

http://tug.org/pipermail/texhax/2015-September/021933.html

Anyway, the theorem example modified:

\ProvidesFile{thmhdbrk.tex}[2015/09/26
texhax pbrk. thm. env.s (bb/ul)]
\documentclass{article}
%\usepackage{amsthm} %% either ...
\newtheorem{theorem}{Theorem}
\makeatletter
\newcommand{\firstthmenvlineemptyintentionally}{%
\leavevmode\newline
\clubpenalty\@M     %% TODO restored properly?
%% choose from:
\@nobreaktrue
%% ... without both, bad spacing (only!)
}
\makeatother
\begin{document}
\iftrue         %% see real-life pagebreak or don't
text at top of page\par
\vspace{30\baselineskip}
some more text\par
\vspace{12\baselineskip}
\fi
\begin{theorem}\firstthmenvlineemptyintentionally
\begin{itemize}
\item xxxx
\par \showlists
\item yyyy
\end{itemize}
\end{theorem}
\end{document}

\@item is very complex, I won't understand all of it soon,
but at some place it uses \clubpenalty \@M too, and at some
other, it restores the normal value by

\clubpenalty \@clubpenalty

I can't tell soon whether this happens in time with my trick,
but something like that is necessary, because \clubpenalty
and \widowpenalty create a possible breakpoint after the
first line in the example, namely a penalty of their sum
(even with a two-line first item, strangely).

Cheers,

Uwe.