commit:     3e558f678cf36228c51eaf36d59a48577c3e25e3
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Tue May 18 19:43:12 2021 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri May 21 04:42:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=3e558f67

Fix bad page breaks before lists

Taken from https://tex.stackexchange.com/a/2645.

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 commands.tex              | 1 +
 dependencies.tex          | 4 ++--
 ebuild-env-invariancy.tex | 4 ++--
 ebuild-env-vars.tex       | 2 +-
 ebuild-functions.tex      | 2 +-
 ebuild-vars.tex           | 8 ++++----
 pkg-mgr-commands.tex      | 3 ++-
 pms.cls                   | 3 +++
 tree-layout.tex           | 4 +++-
 9 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/commands.tex b/commands.tex
index 1733ebd..799a20c 100644
--- a/commands.tex
+++ b/commands.tex
@@ -21,6 +21,7 @@ dependencies must be used to ensure their presence.
 \label{sec:guaranteed-system-commands}
 
 The following commands must always be available in the ebuild environment:
+\nobreakpar
 \begin{compactitem}
 \item All builtin commands in GNU bash, version as listed in 
table~\ref{tab:bash-version}.
 \item \t{sed} must be available, and must support all forms of invocations 
valid for GNU sed

diff --git a/dependencies.tex b/dependencies.tex
index 557ddce..67855f5 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -330,7 +330,7 @@ delimited by a \t{/} character.
 
 \featurelabel{slot-operator-deps} An operator slot dependency consists of a 
colon followed by one of
 the following operators:
-
+\nobreakpar
 \begin{description}
 \item[*] Indicates that any slot value is acceptable. In addition, for runtime 
dependencies,
     indicates that the package will not break if the matched package is 
uninstalled and replaced by
@@ -358,7 +358,7 @@ the equals slot operator inside \t{PDEPEND} or inside 
any-of dependency specific
 \label{sec:use-dep}
 
 A 2-style or 4-style use dependency consists of one of the following:
-
+\nobreakpar
 \begin{description}
 \item[{[opt]}] The flag must be enabled.
 \item[{[opt=]}] The flag must be enabled if the flag is enabled for the 
package with the

diff --git a/ebuild-env-invariancy.tex b/ebuild-env-invariancy.tex
index cc95a2b..9484103 100644
--- a/ebuild-env-invariancy.tex
+++ b/ebuild-env-invariancy.tex
@@ -1,7 +1,7 @@
 \section{The State of the System Between Functions}
 
 For the sake of this section:
-
+\nobreakpar
 \begin{compactitem}
 \item Variancy is any package manager action that modifies either
     \t{ROOT} or \t{/} in any way that isn't merely a simple addition of
@@ -14,7 +14,7 @@ For the sake of this section:
 \end{compactitem}
 
 The following exclusivity and invariancy requirements are mandated:
-
+\nobreakpar
 \begin{compactitem}
 \item No variancy shall be introduced at any point between a package's
     \t{pkg_setup} being started up to the point that that package is

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 332c3d8..006b8e4 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -358,7 +358,7 @@ table~\ref{tab:locale-settings}.
 \label{sec:use-iuse-handling}
 
 This section discusses the handling of four variables:
-
+\nobreakpar
 \begin{description}
 \item[IUSE] is the variable calculated from the \t{IUSE} values defined in 
ebuilds and eclasses.
 \item[IUSE_REFERENCEABLE] is a variable calculated from \t{IUSE} and a variety 
of other sources

diff --git a/ebuild-functions.tex b/ebuild-functions.tex
index ab3ed9c..4e691c5 100644
--- a/ebuild-functions.tex
+++ b/ebuild-functions.tex
@@ -479,7 +479,7 @@ when in the phase in question.
 \section{Call Order}
 
 The call order for installing a package is:
-
+\nobreakpar
 \begin{compactitem}
 \item \t{pkg_pretend} (only for EAPIs listed in 
table~\ref{tab:pkg-pretend-table}), which is called
     outside of the normal call order process.

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index cd03882..fca8565 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -24,7 +24,7 @@ variable data.
 \label{sec:mandatory-vars}
 
 All ebuilds must define at least the following variables:
-
+\nobreakpar
 \begin{description}
 \item[DESCRIPTION] A short human-readable description of the package's 
purpose. May be defined by an
     eclass. Must not be empty.
@@ -44,7 +44,7 @@ All ebuilds must define at least the following variables:
 \label{sec:optional-vars}
 
 Ebuilds may define any of the following variables:
-
+\nobreakpar
 \begin{description}
 \item[EAPI] The EAPI\@. See below in section~\ref{sec:eapi}.
 \item[HOMEPAGE] The URI or URIs for a package's homepage, including protocols.
@@ -220,7 +220,7 @@ It is an error for a flag to be used if it is not included 
in \t{IUSE_EFFECTIVE}
 \label{sec:properties}
 
 The following tokens are permitted inside \t{PROPERTIES}:
-
+\nobreakpar
 \begin{description}
 \item[interactive] The package may require interaction with the user via the 
tty.
 \item[live] The package uses ``live'' source code that may vary each time that 
the package is
@@ -233,7 +233,7 @@ Package managers may recognise other tokens. Ebuilds may 
not rely upon any token
 \label{sec:restrict}
 
 The following tokens are permitted inside \t{RESTRICT}:
-
+\nobreakpar
 \begin{description}
 \item[mirror] The package's \t{SRC_URI} entries may not be mirrored, and 
mirrors should not be
     checked when fetching.

diff --git a/pkg-mgr-commands.tex b/pkg-mgr-commands.tex
index 59edc1c..bc6d1ac 100644
--- a/pkg-mgr-commands.tex
+++ b/pkg-mgr-commands.tex
@@ -16,6 +16,7 @@ a failure shall either result in a non-zero exit status or 
abort the build proce
 table~\ref{tab:commands-die-table}.
 
 The following commands affect this behaviour:
+\nobreakpar
 \begin{description}
 \item[nonfatal] \featurelabel{nonfatal} Takes one or more arguments and 
executes them as a command,
     preserving the exit status. If this results in a command being called that 
would normally abort
@@ -910,7 +911,7 @@ table~\ref{tab:use-list-strictness}.
 
 \subsection{Text list functions}
 These functions check whitespace-separated lists for a particular value.
-
+\nobreakpar
 \begin{description}
 \item[has] Returns shell true (0) if the first argument (a word) is found in 
the list of subsequent
     arguments, false otherwise. Guaranteed quiet.

diff --git a/pms.cls b/pms.cls
index 1a09407..2e2e9bf 100644
--- a/pms.cls
+++ b/pms.cls
@@ -131,6 +131,9 @@
 \floatname{listing}{Listing}
 \newcommand{\listoflistings}{\listof{listing}{List of Listings}}
 
+% Prevent page break before a list
+\newcommand{\nobreakpar}{\par\nobreak\@afterheading}
+
 % Silence hyperref messages (see hint 11.3 in the hyperref manual)
 \providecommand*{\toclevel@algorithm}{0}
 \providecommand*{\toclevel@listing}{0}

diff --git a/tree-layout.tex b/tree-layout.tex
index 138e533..719b489 100644
--- a/tree-layout.tex
+++ b/tree-layout.tex
@@ -8,6 +8,7 @@ differently from normal.
 \section{Top Level}
 
 An ebuild repository shall occupy one directory on disk, with the following 
subdirectories:
+\nobreakpar
 \begin{compactitem}
 \item One directory per category, whose name shall be the name of the 
category. The layout of
     these directories shall be as described in section~\ref{sec:category-dirs}.
@@ -47,6 +48,7 @@ a package manager may treat an empty category as a category 
that does not exist)
 \label{sec:package-dirs}
 
 A package directory contains the following:
+\nobreakpar
 \begin{compactitem}
 \item Zero or more ebuilds. These are as described in 
chapter~\ref{ch:ebuild-format} and others.
 \item A \t{metadata.xml} file, as described in 
appendix~\ref{ch:metadata-xml}\@. Optional only for
@@ -151,7 +153,7 @@ status. Each line has the format:
 \end{verbatim}
 
 Where:
-
+\nobreakpar
 \begin{compactitem}
 \item \t{<keyword>} is the default keyword for the profile and the \t{ARCH} 
for which the profile is
     valid.

Reply via email to