# Automatic \newpage for sections at the end of a page [duplicate]

Possible Duplicate:
Avoiding page breaks shortly after section/subsection headings

Imagine that I've got a `\section` (or `\subsection`, `\subsubsecion`, `\paragraph`) at the end of the page X: in this case, even if a single row of the section can fit into the page, the section is shown into the page X.

Since in this case I'd prefer showing the section in the new page, I have to manually insert a `\newpage` before the section.

How is it possible to specify that at least N rows of the section have to be shown into the page X (and in the other case, the entire section has to be shown on the page X+1)?

-

## marked as duplicate by lockstep, Mico, diabonas, Harish Kumar, percusseSep 10 '12 at 22:25

Please have a look at: pagebreak if only 1/4th of the page left. Please tell us the answer there helps, so we could close this question as a duplicate. – Stefan Kottwitz Sep 10 '12 at 8:57
I wouldn't bother with such problems until the document is in its final form and only typographical adjustments are to be made. – egreg Sep 10 '12 at 9:01
In addition to `needspace` package, look at What are penalties and which ones are defined? and specially to `\clubpenalty`. – Fran Sep 10 '12 at 9:06

Thanks, I've solved in this way: 1/4 of the page must be available for sections; 15% of the page for subsections.

Here is the code.

``````% new sections and subsection not at the end of the page
\usepackage{needspace}
\makeatletter
\renewcommand{\section}{\needspace{.25\textheight} \@startsection{section}{1}{0mm}
{\baselineskip}
{\baselineskip}{\Large\bfseries\scshape}}
\renewcommand{\subsection}{\needspace{.15\textheight} \@startsection{subsection}{1}{0mm}
{\baselineskip}
{\baselineskip}{\large\bfseries\scshape}}
\makeatother
``````
-