Wie kann ich ein Zeile, die auf der vorherigen Seite ist, aber zu einem Absatzblock gehört mit auf die nächste Seite bringen. Das soll so funktionieren wie mit /paragraph, nur das dieser Befehl mir zusätzlich Abstand oberhalb des Absatzes macht und das möchte ich nicht, ich möchte den globalen Absatz zwischen zwei Absätzen nutzen.
ich habe ein Befehl definiert änlich \paragraph :
\newcommand{\paragraphcode}[1]{\texttt{#1}}
es soll etwa so ausehen:
Text Text Text Text Text Text Text Text ^ | Absatz wie im ganzan Dokument | \paragraphcode{Text} - Text Text Text Text <--- siehe [BESCHREIBUNG] Text Text Text Text Text Text Text Text <\code> [BESCHREIBUNG] Die Zeile soll nicht am Ende der Seite alleine stehen, sondern auf die nächste seite verfrachtet werden. Hat einer für mich einen Tipp, wie ich das bewerkstelligen kann
Siehe Hurenkinder und Schusterjungen
Siehe dazu die De-TeX-FAQ (Link gibt es massenhaft im Forum). Dort die Frage: »Wie kann ich `Hurenkinder' (engl. widows), also einzelne Zeilen eines Absatzes am Kopf von Buchseiten, bzw. `Schusterjungen/Waisenkinder' (engl. clubs), einzelne Absatzzeilen auf der Seite unten, verhindern?«
Eine etwas eigenartige
Eine etwas eigenartige Beschreibung :D Aber sie funktioniert ! THX
Die Lösung !
Der gelungsbereich ist mir noch unklar, hoffe der beschränkt sich auf \paragraphcode
Wieso sollte sie?
Penalties gelten immer bis zum Ende der aktuellen Gruppe. da du keine Gruppe verwendest also forever.
Wobei ich ja ehrlicherweise zugeben muss, dass mir absolut nicht klar ist, was der Sinn des Ganzen ist. Wenn das wirklich eine Überschrift werden soll, dann solltest du auch eine Überschrift definieren (siehe Definition von
\paragraph
in classes.dtx oder\minisec
in scrclass.dtx). Ich vermute aber (schon wegen\texttt
), dass das eigentlich etwas ganz anderes werden soll.Nein lasse dich nicht von
Nein lasse dich nicht von
\texttt
beirren. Es ist gnau wie\paragraph
, nur mich stört der Absatz dem dieser oberhalb macht. Da hast du recht, dass ich\paragraph
redefineren könnte, nur verstehe ich davon nicht so viel.Der
\paragraph
soll eigentlich so aussehen:\paragraph{\texttt{ÜBERSCHRIFT}}
Dannach soll der dazugehörige Absatztext folgen. Nur oberhalb
\paragraph
soll der Abstand\baseskip
höchstens die Absätze in der Länge trennen.\paragraph
hat ja eine elastische Größe und macht mehr als nur eine Zeile Abstand oberhalb und das soll ja eben nicht so sein.Wo ist das Problem?
AFAIK ist in der De-TeX-FAQ erklärt, wie die Definition eines Gliederungsbefehls mit
\@startsection
funktioniert. In jedem Fall ist das in classes.dtx und source2e erklärt. Du hast ja auch schon erkannt, dass der Abstand über\paragraph
elastisch ist. Jetzt rate mal, wo indie elastische Größe des Abstandes vor der Überschrift steckt, wie man die Dehnbarkeit und Schrumpfbarkeit raus bekommt und den Wert des Abstandes ändert (nicht vergessen,
\newcommand
durch\renewcommand
zu ersetzen). Wenn du KOMA-Script verwendest, kannst dutt
dann per\addtokomafont{paragraph}{\ttfamily}
erreichen. Wenn du nicht KOMA-Script verwendest, solltest du statt obiger Definition die aus deiner Klasse verwenden und am Ende des letzten (also des sechsten) Arguments von\@startsection
ein\ttfamily
einfügen.Iregendwie bekomme ich
Iregendwie bekomme ich Fehler, wenn ich das so am Anfang des Dokumentes setze, habe aber mal gegooglet und fand heraus das ich das zwischen
\makeatletter
und\makeatother
setzen muss und da ich ja Koma-Skript benutze, habe ich auch\addtokomafont{paragraph}{\ttfamily}
verwendet und das klappt jetzt mit den Absätzen und der letzten Zeile.Irgendwie nimmt er den
\bigskip
abstand nicht so richtig an und der Leerraum zwischen Überschrift des Paragraphen und Text ist etwas zu groß, aber vielleicht bekomme ich das auch noch hin. Ach ja und die Pragraphüberschrift ist noch Fett. Aber vielleicht bekomme ich das noch irgendwie hin.THX für die prompte Hilfe
\bigskip ist mehr als ein Wert
Ich weiß nicht, wo du
\bigskip
verwendet hast. In dem von dir geposteten Code ist es nicht zu finden. Es sei aber angemerkt, dass\bigskip
nicht einfach ein Wert wie3.25ex \@plus1ex \@minus.2ex
ist, sondern:Kurze Frage zu parskip
Ich verwende in meinen Dokument den folgenden Kopf:
\documentclass[12pt,a4paper,cleardoubleempty,pointlessnumbers,parskip]{scrbook}
und verwende für das ganze Dokument den Zeilenabstand:
So mache ich den Absatzabstand einfach mit der Returntaste, also nicht mit \\. Wenn ich jetzt für das ganze Dokument das folgende verwende:
Dann dehnt er mir die Abstände zwischen den Absätzen so, dass der Text unten und oben bündig ist. Das liegt ja an
parskip
in der Dokumentclasse. Ich will aber, dass der Text nur oben bündig mit der Seite ist und die Abstände gleich sind, etwas Spielraum sollten die dennoch haben. Wenn ich also\parskip=WERT
verwende sind die Abstände zwischen den Absätzen nicht mehr elastisch. Sie sollen elastisch sein, aber nicht bis ins Unendliche, sonder mit ganz kleiner Elastizität.Übrigens wenn ich nur
\clubpenalty=10000
benutze, sieht es so aus wie ich mir das vorstelle, nur dass die einzelne letzte Zeilen oben nicht verhindert wird.Satzspiegel neu berechnen
Du veränderst den Durchschuss, ohne den Satzspiegel anzupassen. In der Voreinstellung doppelseitiger Dokumente (Voreinstellung von scrbook) wird mit vertikalem Ausgleich gearbeitet, damit die letzte Zeile immer an derselben Stelle steht. Damit das bei normalem Text ohne Dehnung funktioniert, wird der Satzspiegel von typearea so berechnet, dass der Satzspiegel eine ganze Anzahl von Zeilen zuzüglich
\topskip
hoch ist. Wenn man nun aber den Durchschuss ändert, dann stimmt diese Berechnung nicht mehr. Deshalb steht in der KOMA-Script-Anleitung auch, dass man bei Änderung des Durchschusses anschließend mit\typearea
den Satzspiegel neu berechnen soll. Das war das eine.Außerdem handhabt TeX es so, dass bei Problemen mit der Füllung (egal ob vertikal aufgrund des vertikalen Ausgleichs oder horizontal beispielsweise im Blocksatz) alle dehnbaren Abstände entsprechend ihrer Dehnbarkeit überdehnt werden. Bei Überdehnung wird dann aber eine Meldung »
underfull \vbox
« (bzw. dasselbe mit »\hbox
« bei horizontalen Problemen) von TeX erzeugt. Darauf solltest du einmal achten, denn der Absatzabstand ist nicht mit unendlicher Dehnbarkeit definiert, sondern es darf je nach parskip-Option maximal eine halbe Zeile zusätzlicher Abstand eingefügt werden (bevor eben überdehnt und damit das Problem auch gemeldet wird).Desweiteren ist existiert ein grundsätzliches Satzproblem, wenn gleichzeitig Schusterjungen und Hurenkinder verboten und mit vertikalem Ausgleich gearbeitet wird. Eigentlich bedeutet das, dass der Seitenumbruch über mehrere Seiten hinweg (bei Büchern bis hin zu einem ganzen Kapitel) optimiert werden müsste. TeX bietet dafür aber praktisch keine Möglichkeit. Es bleibt nur, entweder auf den vertikalen Ausgleich zu verzichten (Stichwort:
\raggedbottom
) oder aber den Seitenumbruch an besonders problematischen Stellen von Hand zu optimieren, etwa mit gezielt eingestreuten\tolerance=-1
oder\tolerace=1
bei einzelnen Absätzen zu versuchen eine Zeile weniger oder mehr herauszuholen, oder vor einzelnen Überschriften gezielt mit\clearpage
einen Seitenumbruch ohne vertikalen Ausgleich zu erzeugen.Es würde zu weit führen, hier all diese Möglichkeiten im Detail auszuführen. Ich hoffe aber, die diversen möglichen Probleme und Lösungsansätze wurden etwas klarer.
Vielen Dank!
Vielen Dank!
\raggedbotton
ist genau das was ich gesucht habe.\tolerance=3500
habe ich vorher auch schon verwendet, nur nicht in bezug auf Absätze, sondern im Dokumentenkopf um größere Wortzwischenräume zu zulassen, da bei dem Schriftart (put), die ich benutze, sonst der Blocksatz nicht richtig gesetzt wird.