>>>>> Erik Quaeghebeur<
use...@equaeghe.nospammail.net> wrote:
>>>>>
>>>>>> I'd like to have a LaTeX list for which no page breaks occur within any
>>>>>> item. Additionally, it would be nice to have something like a \vfill
>>>>>> after every item.
>>> Erik Quaeghebeur<
use...@equaeghe.nospammail.net> wrote:
>>>>
>>>> \documentclass[a4paper]{article}
>>>> \usepackage{enumitem,lipsum}
>>>>
>>>> \begin{document}
>>>> \lipsum[2]
>>>> \begin{enumerate}[itemsep=1\itemsep plus 1fill]\interlinepenalty10000
>>>> \item \lipsum*[2]
>>>> \item \lipsum*[2]
>>>> \item \lipsum*[2]
>>>> \begin{itemize}
>>>> \item \lipsum*[2]
>>>> \item \lipsum*[2]
>>>> \end{itemize}
>>>> \end{enumerate}
>>>> \end{document}
>> On 23/12/11 21:09, Enrico Gregorio wrote:
>>>
>>> I don't understand: you want that the "itemize" environment isn't
>>> split between pages?
Indeed, because it is contained in the first-level item (i.e., of the
enumerate). I should have been clearer.
Well, Enrico was right, but you are too (after the 'no') ;-).
Op 23-12-11 22:48, Enrico Gregorio schreef:
>
> Another solution:
>
> \documentclass[a4paper]{article}
> \usepackage{enumitem,lipsum}
>
> \makeatletter
> \def\adjustpenalty{\@beginparpenalty\@M \@itempenalty\@M}
> \makeatother
>
>
> \begin{document}
> \lipsum[2]
> \begin{enumerate}[itemsep=1\itemsep plus 1fill]\interlinepenalty10000
> \item \lipsum*[2]
> \item \lipsum*[2]
> \item \lipsum*[2]
> \begin{itemize}\adjustpenalty
> \item \lipsum*[2]
> \item \lipsum*[2]
> \end{itemize}
> \end{enumerate}
> \end{document}
Thanks! This is very promising, but it still breaks after adding extra
material within an item. No assumptions may be made about what content
is in the list's items, apart from the fact that it fits on a page and
contains no page breaking commands. Moreover, I want to avoid having to
add code within an item.
\documentclass[a4paper]{article}
\usepackage{enumitem,lipsum}
\makeatletter
\def\adjustpenalty{\@beginparpenalty\@M \@itempenalty\@M}
\makeatother
\begin{document}
\lipsum[2]
\begin{enumerate}[itemsep=1\itemsep plus 1fill]\interlinepenalty10000
\item \lipsum*[2]
\item \lipsum*[2]
\item \lipsum*[2]
\begin{center}
\lipsum*[2]
\end{center}
\begin{itemize}\adjustpenalty
\item \lipsum*[2]
\end{itemize}
\end{enumerate}
\end{document}
I guess I'll have to investigate your minipage suggestion more closely
(thanks for that as well).
Erik