Seite 1 von 1

Seitenumbruch für n-Zeilen in eigener Umgebung verhindern

Verfasst: Mi 22. Sep 2010, 14:53
von DG1BGS
Hallo LV-Kommunitie,
für die im folgenden abgedruckte (eigene) Umgebung soll folgendes erreicht werden: Es darf kein Umbruch genau nach der Überschrift erfolgen. Am besten wäre es, wenn man vorgeben kann wieviele Zeilen von dem in der Umgebung übergebenen Text noch auf der Seite mit abgedruckt werden soll, bevor die Umgebung komplett auf einer neuen Seite abgedruckt wird.

Hier meine bisherigen Lösungsansätze:
1. Verwendung von \samepage -> funktioniert zwar, bezieht sich aber dann auf den ganzen Absatz was bedeutet, dass der Text nicht abgedruckt wird wenn er nicht mehr aufs Blatt passt.

2. Verwendung einer float-Umgebung
\usepackage{float}
\newcounter{unused}
\floatstyle{plaintop}
\newfloat{Aufgfloat}{ht!}{}[unused]

\newcounter{countAufgabe}
\newenvironment{Aufgabe}[1][]{\refstepcounter{countAufgabe}\begin{Aufgfloat}
\par\noindent{\hspace*{-20pt}\makebox[20pt][l]{\Large\PencilRightDown}
\textbf{Aufgabe \arabic{countAufgabe}\@nooption{#1}:}\\}\em}{\par\end{Aufgfloat}}
-> das funktioniert grundsätzlich so, aber nicht wenn sich der Text sich über mehrere Seiten erstreckt

3. Verwendung des packages needspace
\usepackage{needspace}
\newcounter{countAufgabe}
\newenvironment{Aufgabe}[1][]{\Needspace*{5\baselineskip}\refstepcounter{countAufgabe}
\par\noindent{\hspace*{-20pt}\makebox[20pt][l]{\Large\PencilRightDown}
\textbf{Aufgabe \arabic{countAufgabe}\@nooption{#1}:}\\}\em}{\par}
-> das funktioniert, ist aber sicher nicht die eleganteste Lösung.

Kennt ihr einen besseren Lösungsvorschlag oder andere hilfreiche Packages? Wie macht es Latex selbst bei Titelüberschriften?

Ich hoffe ihr habt ein paar hilfreiche Vorschläge parat.
Viele Grüße, Stephan

Verfasst: Do 23. Sep 2010, 09:41
von KOMA
Was LaTeX bzw. die Klassen selbst bei Überschriften machen, ist den dokumentierten Quellen von LaTeX und den Klassen zu entnehmen. Sich so etwas anzuschauen ist quasi die Grundlage, um selbst Pakete und Klassen zu schreiben - etwas was Du hier offenbar versuchst.

Ansonsten verstehe ich nicht, warum Du nicht eine richtige Überschrift oder etwas wie newtheorem verwendest, so dass Dein Problem nicht auftritt. Aber ich verstehe ja auch nicht, warum man uns immer wieder mit Code-Schnippseln quälen muss, obwohl im goLaTeX-Knigge und alle Nase lang im Forum erklärt wird, dass man ein vollständiges Minimalbeispiel (← dies ist ein geprüfter Link mit relevanten Informationen!) angeben soll, wenn man vernünftige Hilfe haben will.

Verfasst: Mo 27. Sep 2010, 18:00
von DG1BGS
KOMA hat geschrieben:Was LaTeX bzw. die Klassen selbst bei Überschriften machen, ist den dokumentierten Quellen von LaTeX und den Klassen zu entnehmen. Sich so etwas anzuschauen ist quasi die Grundlage, um selbst Pakete und Klassen zu schreiben - etwas was Du hier offenbar versuchst.
Das die Quellen gut dokumentiert wurden war zu erwarten. Scheinbar lässt sich die Frage nicht in einem Satz beantworten, so dass ich mir die Doku wohl selbst anschauen muss.
KOMA hat geschrieben: Ansonsten verstehe ich nicht, warum Du nicht eine richtige Überschrift oder etwas wie newtheorem verwendest, so dass Dein Problem nicht auftritt.
Richtige Überschriften können meines Erachtens ohne weiteres alleine auf einer Seite stehen, aber vielleicht war das Problem wirklich unklar.
KOMA hat geschrieben: Aber ich verstehe ja auch nicht, warum man uns immer wieder mit Code-Schnippseln quälen muss ...
Da es sich bei den Codeschnipseln um funktionierenden Quellcode handelt, der nur als Anregung gedacht war, entzog sich mir der Sinn eines funktionierenden Minimalbeispiels. Nur die erzeugte Ausgabe wäre wohl sinnvoller gewesen, aber um das Problem zu verdeutlichen reiche ich nun Beides nach.

Mit newtheorem werde ich noch experimentieren!

Liebe Grüße, Stephan

Verfasst: Mo 27. Sep 2010, 20:27
von DG1BGS
So, ich habe mich mal mit dem ntheorem-package befasst und meine Umgebung in dieser umgesetzt. Der Quellcode ist gleich viel übersichtlicher und es hat den gewünschten Effekt.

Danke für den Tipp!