PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : scrreprt absätze



jumbo125
03-12-2011, 18:15
Sehr geehrte Community

Vor langer Zeit habe ich hier um Rat gesucht und wurde von report uaf scrreprt verwiesen, da dies für dipl. Arbeiten besser geeignet sei. Nun hätte ich jedoch eine Frage(im Rahmen meiner Ausbildung lernte ich nämlich nur report - minimalst):

kann ich Latex sagen, dass es Absätze, von dennen die letzte Zeile auf einer neuen Seite steht, komplett auf die neue Seite stzten soll, anstatt nur die letzte Zeile?

Wenn ich ein chapter, section oder subsection beginne wird dies auf eine neue Seite gesetzt, oder? ggf. meine Behaubtung stimmt, wollte ich nur wissen, ob dies auch der fall ist, wenn ich section und subsection per include und vorallem per \input in eine "main" datei lade. Mein Tree besteht nämlich aus einer "main/haupt"-datei --> unterdatei(include, meist section) --> unterunterdatei(input, meist subsection) ggf--> noch eine Datei(input, susubsection)

eignet sich scrreprt wirklich besser? da der vortragende diesbezügl. nichts erwähnte

vielen dank

Schweinebacke
03-12-2011, 19:36
Bezüglich all Deiner Fragen verhält sich scrreprt exakt wie report:

Einzelne Zeilen auf der nächsten Seite
Du kannst LaTeX nicht sagen, dass es die letzte Zeile eines Absatzes nicht alleine auf die nächste Seite setzen soll. Man nennt das Hurenkinder. Im Internet kursiert zwar die Behauptung, dies sei ein schwerer handwerklicher Fehler. Tatsächlich unterscheidet man in der Typografie aber weit feiner (beispielsweise, ob die Zeile fast voll oder fast leer ist und ob es sich um die erste Zeile auf einer linken oder rechten Seite handelt). Hurenkinder komplett unterdrücken kann man mit
\widowpenalty=10000 Das kann aber bezüglich des vertikalen Ausgleichs auch ungünstige Nebenwirkungen haben. Deshalb ist es oft besser, manuell einzugreifen (mit <code>\looseness</code>, <code>\pagebreak</code>, <code>\clearpage</code>, <code>\enlargethispage</code>).

Den kompletten Absatz zusammen halten kann man hingegen nur, wenn man sehr massiv eingreift, beispielsweise mit
\begin{samepage}Text des Absatzes\end{samepage}Es gibt übrigens auch den umgekehrten Fall, also dass die letzte Zeile einer Seite die erste Zeile eines Absatzes ist. Das nennt man Schusterjunge. Schusterjunge werden in der modernen Typografie zweischeidig gesehen. Zum einen leiten sie den Leser massiv auf die nächste Seite. Zum anderen wirken sie verloren. Auch hier unterscheidet man teilweise zwischen Schusterjungen auf linken und rechten Seiten. Zuständig für Schusterjunge ist <code>\clubpenalty</code>.

Für alle Penalties gilt übrigens ein Wertebereich von -10000 bis 10000 (man kann auch kleinere oder größere Werte angeben, es nützt nur normalerweise wenig). -10000 bedeutet dabei, dass es unbedingt herbeizuführen ist. 10000 bedeutet, dass es unbedingt zu vermeiden ist. Abfragen kann man den aktuellen Wert mit <code>\the</code> bzw. nur in der Log-Datei mit <code>\showthe</code>, also beispielsweise
\the\clubpenalty.

Neue Seite bei …
<code>\chapter</code> beginnt tatsächlich immer eine neue Seite. <code>\section</code>, <code>\subsection</code> etc. beginnen aber keine neue Seite, sondern fügen nur einen vertikalen Abstand vor (und natürlich auch nach) der Überschrift ein.

<code>\include</code> beginnt hingegen immer eine neu Seite und zwar sowohl vor als auch nach der eingelesenen Datei. Das ist notwendig, damit <code>\includeonly</code> in der dokumentierten Weise funktioniert. <code>\include</code> kann auch nicht geschachtelt werden. Das bedeutet, dass wenn eine Datei mit <code>\include</code> gelesen wird, innerhalb dieser Datei und aller Dateien, die innerhalb dieser Datei gelesen werden, kein weiteres <code>\include</code> auftreten darf.

<code>\input</code> beginnt natürlich keine neue Seite, sondern lenkt nur den Lesestrom auf eine andere Datei um.

scrreprt ist nicht nur eine weit modernere Klasse als report. Sie ist auch wesentlich flexibler und zudem in den Voreinstellungen auch noch wesentlich besser an die europäische Typografie angepasst. Wenn der Vortragende die KOMA-Script-Klassen (scrreprt ist eine von mehreren) bisher nicht erwähnt hat, dann hat er das hoffentlich noch vor. Ich verwende seit Jahren Standardklassen (also article, report und boot) eigentlich nur noch für Minimalbeispiele.

BTW: Auskunft über die KOMA-Script-Klassen, KOMA-Script-Pakete, ihre Fähigkeiten und den typografischen Hintergrund gibt die KOMA-Script-Anleitung, scrguide.pdf, die normalerweise immer zusammen mit KOMA-Script installiert wird, also auch auf Deinem Rechner vorhanden sein sollte.

jumbo125
04-12-2011, 09:05
der befehel \windowpenalty funktioniert so wei, es werden keine halben sezte angezeigt, j jedoch habe ich keinen nutzen, wenn statt einer halben zeile, plötzlich eineinhalb zeilen sind. außerdem würde ich gerne wissen was Sie mit vertikalen Ausgleich meinten. wenn plötzlich der zeilenabstand kleiner werden würde, oder ein satz aus der blockreihe tanzt, wäre es fatal

\enlarge kann ich auch nicht verwenden.

Durch einen test, kam mir noch eine Frage auf,
wenn ich pagebreak[priorität] verwende, und dies am satzende auf der 1 seite setzte, erfolgt der umbruch nicht am ende des Satzes, sonderen an der nächst besten stelle, selbst wenn ich priorität 4 nehmen.

Schweinebacke
04-12-2011, 11:30
<code>\windowpenalty</code> gibt es nicht.
Was ein Hurenkind genau ist und was die Verhinderung selbigen bewirkt, hatte ich eigentlich ausführlich erklärt – auch dass man damit keine gesamten Absätze zusammenhalten kann.
Eine Möglichkeit zum Zusammenhalten kompletter Absätze hatte ich ebenfalls genannt – obwohl ich das aus typografischen Gründen ablehne.
<code>\enlarge</code> ist keine mir bekannte LaTeX-Anweisung. Ich kann Dir also auch nicht sagen, wie man die verwendet oder warum Du die nicht verwenden kannst – wobei letzteres keine echte Problembeschreibung ist.
<code>\pagebreak</code> fügt ein Penalty für einen Seitenumbruch in die vertikale Liste ein. Das bedeutet, dass nach dem abgeschlossenen Absatzumbruch eine Umbruchgewichtung am Ende der Zeile eingefügt wird. Will man an einer ganz bestimmten Stelle einen Seitenumbruch erzwingen, muss man also zusätzlich einen Zeilenumbruch an dieser Stelle erzwingen. Typografisch sinnvoll ist das normalerweise nicht, da man damit nicht nur den Seitenumbruch, sondern auch den Absatzumbruch negativ beeinflusst.
Mir war von Anfang an klar, dass nicht alle von mir genannten Mittel als Lösung für Dein Problem in Frage kommen. Das war mir schon deshalb klar, weil Dein Problem nicht vollständig benannt war. Deshalb habe ich einfach alle Mittel genannt, die mir diesbezüglich eingefallen sind. Du musst Dir eben jeweils das heraussuchen, das im konkreten Fall passt.
Vertikaler Ausgleich ist der Versuch, die erste und die letzte Zeile einer Seite immer an derselben Stelle zu haben. Er führt dazu, dass auf der Seite zusätzlicher Leerraum verteilt werden muss. Grundsätzlich ist er wünschenswert, weil man damit einen einheitlichen Graueindruck der Seite erreicht. In einigen Fällen stört er aber auch bzw. ist nicht zufriedenstellend realisierbar oder erfordert erheblichen manuellen Aufwand bei der Umbruchoptimierung. Dein Wunsch, immer komplette Absätze auf einer Seite zu haben, ist so eine Wunsch. Sinnvoll ist dieser Wunsch übrigens IMHO allenfalls bei Gedichten. Dort ist es auch relativ einfach zu realisieren – mit geringfügigen Einschränkungen.
Näheres zum vertikalen Ausgleich ist AFAIR in der KOMA-Script-Anleitung erklärt – vermutlich im Zusammenhang mit <code>\flushbottom</code> und <code>\raggedbottom</code>.

jumbo125
04-12-2011, 13:44
okay... Es tut mir leid, das ich die Befehle flasch bzw. nicht ausgeschrieben habe. Ich meinte mit \windowpenalty = \widowpenalty=10000, und mit \enlarge meinte ich \enlargethispage. Vorweg möchte ich mich nochmals bedanke, da Sie mir sehr geholfen haben, vorallem der befehl \clearpage. nun ist mir der befehl \pagebreak auch klarer.

danke nochmals

jumbo125
06-12-2011, 22:27
Plötzlich kam noch ein Problem auf. Mittels subsubsection füge ich auf Seite 1 eine unterunterkapitel ein, das sich mit 3-4 Zeilen auf Seite 2 erstreckt. Danach kommt abermalls ein subsubsection, und auch ein Problem. Anstatt das 2 subsubsection(wenig Text) gleich am Text anzuschließen, rutsch es hinunter, sodass die letzte Zeile des subsubsection zugleich die unterste Zeile am Papier ist. Dadurch entsthet zwischen ende des ersten subsubsection textes und der überschrift der 2 subsubsection eine halbe leere Seite. Wie kann ich das 2 subsubsection direkt unter dem vorherigen Text erstellen?
hierm meine präamble:

%Diese Datei wird als "Hauptdatei"' genutzt. Alle einzelnen Kapitel sind in einer extra Datei und werden in diese Hineingeladen
\documentclass[a4paper, twoside, 12pt]{scrreprt}
\usepackage{graphicx, layout}
\usepackage[inner=3.5cm, outer=3cm, top=3cm, bottom=3cm]{geometry}
\usepackage[english, ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage{url}
\urlstyle{same}
\usepackage{tikz}%fürs Zeichnen eines Diagramms
\usepackage[T1]{fontenc}%font encoding
\usepackage[babel]{microtype}%gut fuer bessere micro-typographie
\usepackage{mathptmx} % Times Font

\setkomafont{disposition}{\rmfamily} %Aendert die< chapter,section,usw. ueberschriften zu serifenschrift
\usepackage[onehalfspacing]{setspace} % 1.5 facher zeilenabstand
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\renewcommand{\thesubsubsection}{\alph{subsubsecti on}}

rstuby
07-12-2011, 05:55
Suchst du vielleicht \raggedbottom?
Jedoch ist es eigentlich schöner, wenn zweiseitige Dokumente auf allen Seiten die gleichen unteren Textränder haben. Du bekommst bei deiner subsection sicher auch eine "underfull \vbox"-Meldung. Manchmal hilft nur unformulieren, \looeseness und \sloppypar setzen sowie zur Not auch mal von Hand einen Seitenumbruch setzen. Was natürlich alles erst geschehen kann, wenn das Dokument sonst fertig ist.

jumbo125
07-12-2011, 08:52
Vielen dank für deine Hilfe. Im Internet habe ich gelesen das Gleitumgebung auch an der absatz dehnung zu unschnen ergebnissen führen kann. Stimmt das? Was zähltt den slles zu gleotumgebungen? figure?
Was mich jetzt verwundert ist, das lt. weinwelt der befehl raggedbottom in book article und report enthalten ist. Warum ist es nichr in screprt enthalzen und muss erst in die präamble einfügen.

rstuby
07-12-2011, 09:12
Weil du twoside als Option angegeben hast. scrbook dürfte auch nicht raggedbottom, sondern im Gegenteil flushbottom haben. Dass die Seiten unten bündig abschließen, ist eben im Normalfall für zweiseitige Dokumente wünschenswert.

Gleitumgebungen sind figure und table. Eigentlich sind diese extra dazu da, dass LaTeX sie hinschieben kann, wo es will, damit es NICHT zu unschönen Effekten kommt.

Schweinebacke
07-12-2011, 10:14
Was mich jetzt verwundert ist, das lt. weinwelt der befehl raggedbottom in book article und report enthalten ist. Warum ist es nichr in screprt enthalzen und muss erst in die präamble einfügen.
Wie ich Dir schon einmal geschrieben haben, unterscheiden sich die KOMA-Script-Klassen in allen für Deine Fragen relevante Punkten nicht von den Standardklassen. Ob <code>\raggedbottom</code> oder <code>\flusbottom</code> voreingestellt ist, hängt also nicht davon ab, ob Du scrreprt oder report verwendest. Die Befehle werden auch nicht von den Klassen bereitgestellt, sondern vom LaTeX-Kern. Die Klassen verwenden sie lediglich, je nach Voreinstellung und Wahl der Optionen. Näheres dazu sollte auch der jeweiligen Anleitung zu entnehmen sein.

jumbo125
17-12-2011, 12:08
es tut mir leid, das ich schon wieder stören muss. Leider hab ich noch ein problem, nachdem ich nun schon einiges geschrieben habe, lass ich mir nochmals die Foramtierregeln durch und siehe da, plötzlich sehe ich noch etwas wichtiges. Jedes Seitenende muss mit einem Satzende abschließen. Gibt es dafür irgendeine möglichkeit, außer manuell ständig neue seitenumbrüche zu machen?