Seitenumbruch innerhalb einer Auflistung global anpassen Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


Phelidas

Seitenumbruch innerhalb einer Auflistung global anpassen

Beitrag von Phelidas »

Hallo zusammen,

ich bin dabei meine Diplomarbeit auf Lyx zu schreiben und nutze dabei die Dokumentenklasse report(KOMA-Script). Bin leider selbst LaTeX Neuling und entschuldige mich sollte meine Frage zu trivial sein, konnte leider keine Lösung finden.

Ich verwende das Format "Auflistung" mit bis zu 4 Ebenen der Verschachtlung.
Nun suche ich bisher leider vergeblich nach einem Weg den Seitenumbruch in den tieferen Ebenen der Verschachtelung ohne manuelle Seitenumbrüche meinerseits zu verhindern.

Ideal wäre es wenn ich Seitenumbrüche ab der 3ten Ebene komplett vermeide. Gibt es da eine Möglichkeit?

Wäre für Tips dankbar

Grüße Phelidas

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Eine Möglichkeit wäre es eine Minipage um das 3. Itemize/Enumerate herumzulegen. Wie du das aber automatisierst und ob die Abstände dann noch stimmen, weiß ich nicht.

Edit: Es gibt auch noch die samepage-Umgebung hier mal ein Beispiel für beide mit Ausgleich der Abstände:
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage{blindtext}

\begin{document}
\begin{itemize}
	\item \blindtext
	\item \blindtext
	\begin{itemize}
		\item \blindtext
		\item \blindtext Nach diesem Item bricht LaTeX normal um.
		\item \blindtext 
	\end{itemize}
\end{itemize}
\newpage
\begin{itemize}
	\item \blindtext Nach diesem Item bricht LaTeX mit samepage um.
	\item \blindtext
	\begin{samepage}
		\begin{itemize}
			\item \blindtext
			\item \blindtext
			\item \blindtext
		\end{itemize}
	\end{samepage}
\end{itemize}
\newpage
\begin{itemize}
	\item \blindtext
	\item \blindtext Nach diesem Item bricht LaTeX mit minipage um.\\[\topsep]
	\begin{minipage}{\linewidth}
		\begin{itemize}
			\item \blindtext
			\item \blindtext
			\item \blindtext
		\end{itemize}
	\end{minipage}
\end{itemize}
\end{document}

Phelidas

Beitrag von Phelidas »

Erstmal Danke sudo für die schnelle Antwort.

Habe die Variante mit Samepage ausprobiert (nachdem ich herausgefunden habe an welcher Stelle in Lyx ich diesen TeX-Code passend einsetzen muss).

Funktioniert und auch die Abstände bleiben erhalten.
Aber wenn ich dies nun um jeden Punkt einzeln legen muss erscheint es mir fast leichter die Seitenumbrüche manuell festzulegen.

Wenn ich alles richtig verstanden habe nutzt Lyx das Packet enumitem und eine Auflistung ist die itemize Umgebung?
Habe mir nun die enumitem-Dokumentation durchgelesen und globale Einstellungen über den Befehl "\setlist[itemize,<level>]{<format>}" entdeckt, ebenso wie die Penalty-Funktionen: "beginpenalty=<integer>" "midpenalty=<integer>" "endpenalty=<integer>", die die Wahrscheinlichkeit der Seitenumbrüche angibt.

Gäbe es eine Möglichkeit diesen Befehl über den LaTeX-Vorspann einzubauen?
Versuche meinerseits enden leider immer mit Fehlermeldungen.

Im Minimalbeispiel wird der Seitenumbruch nun innerhalb des Blindtextes durchgeführt.
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage{blindtext}
\usepackage{enumitem}

\setlist[itemize,2]{beginpenalty=10000,midpenalty=10000}

\begin{document}
\begin{itemize}
   \item \blindtext %Nach diesem Abschnitt sollte der Seitenumbruch kommen
   \item \blindtext
   \begin{itemize}
      \item \blindtext
      \item \blindtext %Innerhalb dieses Textes Seitenumbruch
      \item \blindtext
   \end{itemize}
\end{itemize}
\end{document}

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Ich hab noch die Funktionen before und after gefunden. Leider funktionieren sie mit samepage nicht ganz richtig. Die Penalties verhindern leider keine Umbrüche wärend der Items.
\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage{blindtext}
\usepackage{enumitem}

%\setlist[itemize,2]{before=\begin{samepage}, after=\end{samepage}}
\setlist[itemize,2]{before={\\[\topsep]\begin{minipage}{\linewidth}}, after=\end{minipage}}

\begin{document}
\begin{itemize}
	\item \blindtext %% samepage bricht hier um
	\item \blindtext %% minipage bricht hier um
	\begin{itemize}
		\item \blindtext
		\item \blindtext %% Nach diesem Item bricht LaTeX normal um. Mit midpenalty=10000 bereits dazwischen. 
		\item \blindtext %% samepage zerstört den Einzug hier
	\end{itemize}
\end{itemize}
\end{document}

Phelidas

Beitrag von Phelidas »

Habe die Varianten nun ausprobiert, Samepage funktioniert mit den Einzügen in dem Fall nicht, Minipage hingegen schon.
Mit Minipage before und after bleiben nun die Einträge auf einer Seite.

Was ich dabei allerdings nicht bedacht habe ist das nun die Punkte vom jeweiligen Überpunkt mit einem Seitenumbruch getrennt werden, was natürlich nicht Ziel der Sache war.
Werde nun doch die Überpunkte jeweils manuell in eine Minipage setzen.

Vielen Danke für die Hilfe und Erklärung.

Grüße Phelidas

Antworten