Seite 1 von 1
Silbentrennung: Letzter Ausweg \sloppypar?
Verfasst: Mi 18. Nov 2009, 23:32
von erdalronahi
Hallo,
ich setze gerade ein 800-seitiges Buch mit Lyx und hatte gehofft, dass mir das einige Sachen vereinfachen würde. Das traf auch zu, was Index und Literaturverzeichnis angeht. Nur die Silbentrennung ist ein Horror.
Ich habe mehrere Hundert "overfull" Boxes, und weiß nicht, wie ich denen beikommen soll. Es wäre ein Riesenaufwand, die Stellen einzeln zu suchen und jeden Satz im Quelltext irgendwie umzuformulieren.
Ich stehe kurz davor, als ultima ratio den ganzen Text in ein \sloppypar{ } einzupacken, was natürlich nicht gut aussehen würde.
Gibt es irgendeine Kompromisslösung zwischen beiden Methoden, z. B. die Toleranz ein Bisschen zu erhöhen und den Rest in Handarbeit zu machen?
Und ist das eigentlich normal, dass ich fast eine "overfull" Box pro Seite habe? Es kommt mir sehr viel vor.
Verfasst: Do 19. Nov 2009, 01:03
von Land.EI
Setz in die Präambel mal die beiden Zeilen mit rein und lass es noch mal durchlaufen. Kann gut sein, das es einen großen (nicht alle) Teil deines Problems erschlägt.
Und ja, hab ich auch hier ausm Forum
\usepackage{microtype} %Sorgt für bessere Platzausnutzung der \hbox bei Umbruechen
\setlength{\emergencystretch}{1em} %Sorgt für bessere Platzausnutzung der \hbox bei Umbruechen
Verfasst: Do 19. Nov 2009, 01:45
von erdalronahi
microtype dürfte bei mir nicht funktionieren, da ich mit XeLaTeX arbeite. aber
\setlength{\emergencystretch}{1em}
sieht sehr vielversprechend aus. Wenn ich das verwende, habe ich nur noch einen Überlauf alle 30-40 Seiten, statt einen pro Seite. Ganz große Löcher auf der Seite sind auch nicht zu sehen.
Vielen Dank, damit werde ich mal experimentieren.
Verfasst: Do 19. Nov 2009, 08:10
von Schweinebacke
Auch die das Font-Encoding spielt eine entscheidende Rolle. So können beispielsweise beim Default-Encoding (OT1) Wörter mit Umlauten nicht korrekt und nur sehr schwer getrennt werden. Dagegen funktioniert die Trennung solcher Wörter automatisch, sobald man mit
auf eine T1-kodierte Schrift umschaltet. Wer vorher die Standardschrift Computer Modern verwendet hat, sollte danach ggf. noch mit
auf Latin Modern umschalten, weil er sonst die eher mäßig gute European Computer Modern hat. Bei XeTeX gilt das alles vermutlich jedoch nur, wenn man nicht das XeTeX-Fontsystem verwendet.
Natürlich sollte man - sowohl bei "normalem TeX" als auch bei XeTeX - auch darauf achten, dass man die richtige Sprache eingeschaltet hat, weil beispielsweise in den englischen Trennmustern keine Trennungen für Wörter mit Umlauten zu finden sind, also für deutsche Texte:
\usepackage[ngerman]{babel}
Verfasst: Do 19. Nov 2009, 11:58
von Land.EI
Ich meine mich noch zu erinnern, mal gelesen zu haben, (ja, so Aussagen sind ja die besten *g*) daß LaTeX zwar immer über größere "Sachen" die Aufteilung berechnet. Also nicht nur über einen Absatz, sondern die ganze Seite auf einen Schlag und so weiter.
Fazit war, bei korrekter Erinnerung meinerseits: LaTeX auch mal Luft gönnen mit nem \clearpage oder ähnlichem.
Ob das in deinem Fall so viel Sinn macht...? Musst selbst entscheiden.
Verfasst: Do 19. Nov 2009, 18:19
von ratte
Beim Absatzumbruch, der fälschlich auch gerne als Zeilenumbruch bezeichnet wird, wird von TeX immer nur ein Absatz betrachtet.
Der Seitenumbruch wiederum arbeitet dumm: Ein Absatz wird nach erfolgtem Absatzumbruch in Zeilen zerlegt und diese in die vertikale Seitenliste eingetragen. Ist die Liste dann länger als der Textbereich der Seite, wird die output-Routine angeworfen. Diese baut bei LaTex aus Kopf, Gleitumgebungen, Fußnoten und vertikaler Seitenliste eine Seite zusammen, gibt diese aus und wirft dabei den ausgegebenen Teil der vertikalen Seitenliste weg. Weder findet eine Optimierung über mehrere Seiten statt noch wird ggf. ein Absatzneuumbruch angestoßen, falls kein guter Seitenumbruch gefunden wird.
Verfasst: Do 19. Nov 2009, 19:10
von phi
Schweinebacke hat geschrieben:Auch die das Font-Encoding spielt eine entscheidende Rolle. So können beispielsweise beim Default-Encoding (OT1) Wörter mit Umlauten nicht korrekt und nur sehr schwer getrennt werden. Dagegen funktioniert die Trennung solcher Wörter automatisch, sobald man mit
auf eine T1-kodierte Schrift umschaltet. Wer vorher die Standardschrift Computer Modern verwendet hat, sollte danach ggf. noch mit
auf Latin Modern umschalten, weil er sonst die eher mäßig gute European Computer Modern hat. Bei XeTeX gilt das alles vermutlich jedoch nur, wenn man nicht das XeTeX-Fontsystem verwendet.
Natürlich sollte man - sowohl bei "normalem TeX" als auch bei XeTeX - auch darauf achten, dass man die richtige Sprache eingeschaltet hat, weil beispielsweise in den englischen Trennmustern keine Trennungen für Wörter mit Umlauten zu finden sind, also für deutsche Texte:
\usepackage[ngerman]{babel}
Bei XeLaTeX sollte man weder lmodern noch fontenc noch babel verwenden. Latin Modern ist ohnehin Standard und Schriftkodierungen gibt es keine mehr. Statt babel ist polyglossia zu benutzen.
Verfasst: Do 19. Nov 2009, 19:36
von erdalronahi
phi hat geschrieben:Bei XeLaTeX sollte man weder lmodern noch fontenc noch babel verwenden. Latin Modern ist ohnehin Standard und Schriftkodierungen gibt es keine mehr. Statt babel ist polyglossia zu benutzen.
Ähm, echt? Ich arbeite mit LyX, und das setzt mir sowohl fontenc als auch babel ungefragt in den Header. Ich gehe aber davon aus, dass die entweder ignoriert werden oder weiter keinen Schaden verursachen. Oder? Der Text ist garantiert in UTF-8, und die Fonts definiere ich ohnehin selbst.
Wofür brauche ich polyglossia? Ich arbeite übrigens noch mit Texlive 2007 auf Debian.
Verfasst: Fr 20. Nov 2009, 18:41
von phi
erdalronahi hat geschrieben:phi hat geschrieben:Bei XeLaTeX sollte man weder lmodern noch fontenc noch babel verwenden. Latin Modern ist ohnehin Standard und Schriftkodierungen gibt es keine mehr. Statt babel ist polyglossia zu benutzen.
Ähm, echt? Ich arbeite mit LyX, und das setzt mir sowohl fontenc als auch babel ungefragt in den Header. Ich gehe aber davon aus, dass die entweder ignoriert werden oder weiter keinen Schaden verursachen. Oder?
Weiß ich nicht, aber ich würde sie rausnehmen, wenn möglich. Sie sind einfach für XeTeX ungeeignet.
Wofür brauche ich polyglossia?
Um nicht-englische Texte mit XeLaTeX verfassen zu können.
Eine gute Präambel für XeLaTeX beginnt in der Regel mit
\documentclass{...}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setmainfont{...}
\setdefaultlanguage{...}