You can use the \Needspace*
macro of the needspace
package to tell LaTeX that the following material needs at least a certain amount of space left on the current page, otherwise force a page break.
The amount of 3\baselineskip
means more or less three lines, i.e. the theorem heading, a separation line and the first item line.
See also the answers to How to avoid heading orphan? which might be a duplicate.
\documentclass{article}
\usepackage{amsthm}
\usepackage{lipsum}
\usepackage{needspace}
\newtheorem{theorem}{Theorem}
\newenvironment{Theorem}{%
\Needspace*{3\baselineskip}%
\theorem
}{\endtheorem}
\begin{document}
\lipsum[1-10]
\begin{Theorem}
\
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\end{Theorem}
\end{document}
To get enumerated and itemized lists that have the same amounts of left-hand and right-hand indentation, I'd recommend using the enumitem
package -- which provides many extensions to and improvements over LaTeX's list environments -- and its leftmargin
and rightmargin
options. The following MWE illustrates this.
\documentclass{article}
\usepackage[margin=3cm]{geometry} % per the example in your code
\usepackage{lipsum} % for filler text
\usepackage{enumitem}
\begin{document}
\lipsum[1] % filler text
\begin{enumerate}[leftmargin=2cm,rightmargin=2cm]
\item \lipsum[2]
\end{enumerate}
\lipsum[3]
\begin{itemize}[leftmargin=1cm,rightmargin=1cm]
\item \lipsum[4]
\end{itemize}
\end{document}
Added material after receiving a comment from the OP. I'm afraid I'm not quite sure about the meaning of the question
But how do I make the indentations of the \item the same as the
original text?
The new MWE below provides four separate option settings for shaping the itemized (or, equivalently, enumerated) list items. Hopefully, one of these settings meets your needs.
\documentclass{article}
% some short filler text, ca. 3 lines long
\newcommand{\shortfiller}{Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi. Morbi auctor lorem non justo. Nam lacus libero, pretium at, obortis vitae, ultricies et, tellus. Donec aliquet, tortor sed accumsan bibendum, erat ligula aliquet magna.}
\usepackage{fancyvrb}
\usepackage[margin=3cm]{geometry}
\usepackage{enumitem}
\begin{document}
\DefineShortVerb{\|}
\emph{``Normal'' text paragraph.} \shortfiller
%% Option 1
\begin{enumerate}[leftmargin=2cm, rightmargin=2cm]
\item \emph{Settings:} |[leftmargin=2cm, rightmargin=2cm]|.
\shortfiller
\end{enumerate}
\emph{``Normal'' text paragraph.} \shortfiller
%% Option 2
\begin{enumerate}[resume, wide=2cm, leftmargin=2cm, rightmargin=2cm]
\item \emph{Settings:} |[wide=2cm, leftmargin=2cm, rightmargin=2cm]|.
\shortfiller
\end{enumerate}
\emph{``Normal'' text paragraph.} \shortfiller
%% Option 3
\begin{enumerate}[resume, wide=\parindent, leftmargin=\parindent, rightmargin=\parindent]
\item \emph{Settings:} |[wide=\parindent, leftmargin=\parindent, rightmargin=\parindent]|.
\shortfiller
\end{enumerate}
\emph{``Normal'' text paragraph.} \shortfiller
%% Option 4
\begin{enumerate}[resume, wide=\parindent]
\item \emph{Setting in this and the following item:} |[wide=\parindent]|.
\shortfiller
\item \shortfiller
\end{enumerate}
\emph{``Normal'' text paragraph.} \shortfiller
\end{document}
Suppose the final setting of the list items is what you're looking for. If you want this setting to apply uniformly to all enumerated and itemized lists, you should insert the command
\setlist{wide=\parindent}
in your document's preamble, immediately after the \usepackage{enumitem}
instruction.
Best Answer
You can center the list in a
minipage
but rather than have to guess a width for the minipage you can use thevarwidth
package: