PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TeXworks: Hurenkinder und Schusterjungen trotz Strafpunkten?



muck1
13-06-2013, 21:25
Hallo zusammen, wieder einmal stellt mich TeXworks vor ein Rätsel:

Nachfolgend mein Header


\documentclass[14pt]{scrbook}
\usepackage{libertine}
\usepackage{ucs}
\usepackage[x11names]{xcolor}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{microtype}
\usepackage{ellipsis}
\usepackage{textcomp}
\usepackage{pifont}
\clubpenalty=10000
\widowpenalty=10000
\displaywidowpenalty=10000

Trotz der hohen Strafpunkte treten in meinem Text regelmäßig Schusterjungen und Hurenkinder auf. Ich dachte zunächst, es könnte an der Schriftgröße liegen, eine Änderung hier ergibt jedoch überhaupt keine Verbesserung - ebenso wenig die Verwendung einer anderen Schriftart (beides stünde jedoch auch nicht zur Auswahl). Testweise habe ich sogar dem Absatzeinzug mit \parindent0pt eine Radikalkur verpasst, auch hier ändert sich jedoch nichts.

Getreu dem Motto: "vier Augen sehen mehr als zwei", sieht jemand von Euch vielleicht, worin mein Fehler besteht? Ich nämlich sehe da keine Befehle, die Konflikte erzeugen könnten.

Oder könnte es sein, dass wenn das Textbild einfach zu viele solche Einzeiler am Seitenanfang und -ende produziert, LaTeX sich "notgedrungen" über die Parameter hinwegsetzt?

ElGato
13-06-2013, 22:11
Wenn Du hohe Strafpunkte verteilst und es z.B. Hurenkinder gibt, dann bleibt Dir nichts anderes übrig als den Text darüber/darunter zu verlängern bzw. zu verkürzen, damit es nicht dazu kommt.

Es ändert also nichts eine andere Schriftart zu nehmen (mit anderem Buchstabenabstand), denn dann könnte es woanders im Text diese Warnungen geben. Gleiches gilt für die Schriftgröße.

Wenn Du \documentclass[draft,14pt]{scrbook} setzt, siehst Du auch Probleme bei der Silbentrennung (Bad Box).

muck1
13-06-2013, 22:35
Vielen Dank für die rasche Antwort. :)
Tatsächlich habe ich laut Konsole in ~300 Seiten Text nicht eine einzige Bad Box wegen Silbentrennung (nur eine Warnung, dass DIV gleich 1 erzwungen wird wegen Schriftgröße 14).

Nun, das muss ich wohl damit leben und den Text anpassen. Ich schätze es gibt auch keine Möglichkeit, bspw. mit /newpage eine einheitlichere Setzung zu erzwingen?

Donalduck
13-06-2013, 23:55
Du könntest vielleicht mal

\raggedbottom probieren, dann müssen die Seiten nicht mehr unten bündig abschließen. Das kann bei zweiseitigem Setzen allerdings unhübsch aussehen, aber du kannst es ja mal testen.

muck1
15-06-2013, 22:45
Es ist tatsächlich kein zweiseitiger Satz, von daher, Danke für den Tipp!

Ich glaube, die Ursache gefunden zu haben für diese sonderbare Verzerrung des Satzspiegels trotz Strafpunkten, und habe deswegen noch eine Frage: Gibt es einen Befehl, mit dem LaTeX gesagt werden kann, keine Strafpunkte mehr auf aufeinanderfolgende Zeilenumbrüche mit Silbentrennung zu vergeben, und so viele Silbentrennungen wie möglich zuzulassen?

(Nur zur Veranschaulichung, sitze gerade nicht an meinem "LaTeX-Rechner"; man nehme an, dass die Zeilen rechts bündig enden)

Ich will...

Zehn zahme Ziegen zogen zehn Zent-
ner Zucker zum Zwiebelfisch im Zür-
cher Zoo

...anstatt:

Zehn zahme Ziegen zogen zehn Zent-
ner Zucker zum Zwiebelfisch im
Zürcher Zoo

Hintergrund der Frage: Oft bemerke ich, dass ein Absatz unnötig in die Länge gezogen wird dadurch, dass LaTeX nicht alle möglichen Silbentrennungen setzt - auch nicht bei Wörtern, deren Trennmöglichkeiten das Programm kennt. Zum Beispiel setzt TeXworks so gut wie nie Sätze so, dass zwei aufeinanderfolgende Zeilen mit einem Bindestrich enden, selbst wenn es möglich wäre: wenn man manuell einen Bindestrich einfügt (ich weiß, "Hausfrauenlösung") und damit die Silbentrennung erzwingt, geht es nämlich auf einmal dennoch.
In den seltensten Fällen würde das Schriftbild dadurch unzumutbar verunstaltet, noch entstünden irgendwelche Bad Boxes.

Abermals Danke für Eure kompetente Hilfe. :)

nixversteh
15-06-2013, 23:13
Hallo muck1,

das hat bei mir schonmal geholfen:
Als erstes in die Präambel einfügen

\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}

Diese Zeilen irgendwo in die Präambel einfügen:

\usepackage{hyphsubst}
\HyphSubstIfExists{ngerman-x-latest}{%
\HyphSubstLet{ngerman}{ngerman-x-latest}}{}
\HyphSubstIfExists{german-x-latest}{%
\HyphSubstLet{german}{german-x-latest}}{}

Im Internet habe ich den Text im Anhang gefunden, frage mich jetzt nicht wann und und wo ...

Viel Erfolg

Gruß

Martin

muck1
15-06-2013, 23:38
Vielen Dank! Ich werde es einmal ausprobieren! :)

Update: Das funktioniert leider nicht. In der Folge erhalte ich massenhaft unzulässige Silbentrennungen selbst für Wörter, die bekannt sein sollten; bspw. Fran-kfurt anstatt Frank-furt.