von KOMA » Sa 5. Jul 2008, 17:19
swotky hat geschrieben:Aber zurück zur Frage. Warum bricht LaTeX oftmals die Zeilen nicht richtig um und schreibt über den Rand?? Dann gibt es immer diese overfull Boxes. Und manchmal sieht man es auch richtig. Kennt der keine Rechtschreibreform?
In Ermangelung eines
vollständigen Minimalbeispiels kann ich nur ins Blaue hinein raten. Als Ursache für Dein Problem bietet sich an:
- Du schreibst auf Deutsch, hast das LaTeX aber nicht mitgeteilt, so dass es mit aktivierten englischen statt deutschen Tennmustern trennt. Die Umschaltung machst Du am besten mit dem babel-Paket:
\usepackage[ngerman]{babel}
Bitte auch die zugehörige Anleitung lesen!
- Du verwendest das Standard-7-Bit-Fontencoding OT1 von LaTeX. In diesem Fall werden Umlaute und andere Sonderzeichen aus mehreren Zeichen zusammengesetzt. Wörter, die diese Zeichen enthalten können dadurch nicht automatisch getrennt werden. Die De-TeX-FAQ (siehe meine Signatur) empfiehlt in diesem Fall als Lösung das 8-Bit-Fontencoding T1 mit:
Das allein schaltet dann gleichzeit von der Standard-Schrift Computer Modern (CM) zur Schrift European Computer Modern (EC), die einige Mängel aufweißt. Außerdem liegt diese bei vielen TeX-Distributionen nicht mehr per vorinstalliertem Standard als Type-1 Schrift vor. Das führt wiederum dazu, dass man entweder mehr oder weniger mühsam erst noch cm-super installieren muss oder in PDF-Datei Pixelschriften bekommt, die man nicht haben will. Abhilfe schafft zusätzlich das Paket lmodern zu verwenden, mit der man dann Latin Computer Modern als Schrift bekommt:
\usepackage[T1]{fontenc}
\usepackage{lmodern}
- Du hast viele Komposita mit Bindestrich. Komposita mit Bindestrich sollten normalerweise nur am Bindestrich getrennt werden. Daraus ergeben sich aber bei der Häufig solcher Komposita erhebliche Umbruchprobleme. Für Deutsch bietet das Paket babel deshalb verschiedene Möglichkeiten, weitere Trennstellen zu erlauben. Zum einen gibt es ein Shortcut für spezielle Bindestriche, zum anderen gibt es einen Shortcut, der eine zusätzliche Trennmöglichkeit einfügt, nach der der Trennalgorithmus wieder gültig ist. Näheres erklärt die Anleitung zu dem Paket.
TeX macht übrigens keinen Zeilen- sondern einen Absatzumbruch. Das bedeutet, dass eine Änderung an beliebiger Stelle im Absatz zu einem komplett anderen Umbruch führen kann. TeX bewertet dabei den Umbruch nach verschiedenen Parametern. Über den Rand hinaus wird dann geschrieben, wenn es überhaupt keinen Umbruch findet, der diesen Parametern entspricht. Da deutsche Wörter leider oftmals lange Buchstabenfolgen ohne Trennmöglichkeit enthalten (man denke nur an untrennbare Wörter wie
nicht), ist es bei schwierigen Texten manchmal notwendig TeX zu erlauben, zusätzlichen Abstand zwischen den Worten einzufügen. Eine Angabe von
\setlength{\emergencystretch}{1em}
sollte normalerweise genügen. Damit wird TeX erlaubt, ein Geviert mehr horizontalen Leerraum in einer Zeile zu verteilen, als eigentlich gut für die Zeile ist. Warum man hingegen nicht das oft empfohlene \sloppy verwenden sollte, wird in l2tabu (siehe meine Signatur) recht gut erklärt.
Übrigens: Falls Du das Inputencoding noch nicht deklariert hast, aber Sonderzeichen direkt eingibst, solltest Du das nachholen. Anderenfalls wird das allenfalls zufällig korrekt getroffen. Windows-Anwender verwenden üblicherweise
\usepackage[ansinew]{inputenc}
Unix-Anwender verwenden hingegen je nach Terminal- bzw. Editor-Einstellung
\usepackage[latin1]{inputenc}
oder
\usepackage[utf8]{inputenc}
Die Verwendung von latin1 stellt einen guten Kompromiss dar, wenn an einem Dokument sowohl unter Windows als auch unter Linux gearbeitet wird. Besser wäre dann allerdings utf8, was aber einen utf8-fähigen Editor unter Windows voraussetzt (unter Linux können das fast alle).
Ich hoffe, das hat Dir geholfen dieses Problem zu beseitigen.
swotky hat geschrieben:Gibt es eigentlich generell verschiedene Schriftarten in LaTeX?
Ja, viele, viele, viele. Man Unterscheidet dabei aber zwischen der Schrift selbst, die man ggf. auch kaufen muss, und der Schrifteinbindung. Näheres dazu ist u. a. in der Anleitung zu der Einbindung der Standard-Postscript-Schriften, psnfss2e, und im fontinstallationguide zu finden. In
The TeX Catalogue findet man AFAIK ebenfalls Pakete zur Schrifteinbindung.
Deiner Frage entnehme ich, dass Du absoluter Anfänger bist und offenbar noch nicht viel zu LaTeX gelesen hast. Ich empfehle zumindest einmal l2kurz komplett durchzuarbeiten. Bei Fragen sollte man außerdem auch noch die De-TeX-FAQ per Volltextsuche durchsuchen. Dazu ist es praktisch, wenn man die Textversion davon auf dem eigenen Rechner hat.
[quote="swotky"]Aber zurück zur Frage. Warum bricht LaTeX oftmals die Zeilen nicht richtig um und schreibt über den Rand?? Dann gibt es immer diese overfull Boxes. Und manchmal sieht man es auch richtig. Kennt der keine Rechtschreibreform?[/quote]
In Ermangelung eines [url=http://www.minimalbeispiel.de]vollständigen Minimalbeispiels[/url] kann ich nur ins Blaue hinein raten. Als Ursache für Dein Problem bietet sich an:
[list][*]Du schreibst auf Deutsch, hast das LaTeX aber nicht mitgeteilt, so dass es mit aktivierten englischen statt deutschen Tennmustern trennt. Die Umschaltung machst Du am besten mit dem babel-Paket:[code]\usepackage[ngerman]{babel}[/code]
Bitte auch die zugehörige Anleitung lesen!
[*]Du verwendest das Standard-7-Bit-Fontencoding OT1 von LaTeX. In diesem Fall werden Umlaute und andere Sonderzeichen aus mehreren Zeichen zusammengesetzt. Wörter, die diese Zeichen enthalten können dadurch nicht automatisch getrennt werden. Die De-TeX-FAQ (siehe meine Signatur) empfiehlt in diesem Fall als Lösung das 8-Bit-Fontencoding T1 mit:[code]\usepackage[T1]{fontenc}[/code]
Das allein schaltet dann gleichzeit von der Standard-Schrift Computer Modern (CM) zur Schrift European Computer Modern (EC), die einige Mängel aufweißt. Außerdem liegt diese bei vielen TeX-Distributionen nicht mehr per vorinstalliertem Standard als Type-1 Schrift vor. Das führt wiederum dazu, dass man entweder mehr oder weniger mühsam erst noch cm-super installieren muss oder in PDF-Datei Pixelschriften bekommt, die man nicht haben will. Abhilfe schafft [b]zusätzlich[/b] das Paket lmodern zu verwenden, mit der man dann Latin Computer Modern als Schrift bekommt:[code]\usepackage[T1]{fontenc}
\usepackage{lmodern}[/code]
[*] Du hast viele Komposita mit Bindestrich. Komposita mit Bindestrich sollten normalerweise nur am Bindestrich getrennt werden. Daraus ergeben sich aber bei der Häufig solcher Komposita erhebliche Umbruchprobleme. Für Deutsch bietet das Paket babel deshalb verschiedene Möglichkeiten, weitere Trennstellen zu erlauben. Zum einen gibt es ein Shortcut für spezielle Bindestriche, zum anderen gibt es einen Shortcut, der eine zusätzliche Trennmöglichkeit einfügt, nach der der Trennalgorithmus wieder gültig ist. Näheres erklärt die Anleitung zu dem Paket.[/list]
TeX macht übrigens keinen Zeilen- sondern einen Absatzumbruch. Das bedeutet, dass eine Änderung an beliebiger Stelle im Absatz zu einem komplett anderen Umbruch führen kann. TeX bewertet dabei den Umbruch nach verschiedenen Parametern. Über den Rand hinaus wird dann geschrieben, wenn es überhaupt keinen Umbruch findet, der diesen Parametern entspricht. Da deutsche Wörter leider oftmals lange Buchstabenfolgen ohne Trennmöglichkeit enthalten (man denke nur an untrennbare Wörter wie [i]nicht[/i]), ist es bei schwierigen Texten manchmal notwendig TeX zu erlauben, zusätzlichen Abstand zwischen den Worten einzufügen. Eine Angabe von [code]\setlength{\emergencystretch}{1em}[/code] sollte normalerweise genügen. Damit wird TeX erlaubt, ein Geviert mehr horizontalen Leerraum in einer Zeile zu verteilen, als eigentlich gut für die Zeile ist. Warum man hingegen nicht das oft empfohlene \sloppy verwenden sollte, wird in l2tabu (siehe meine Signatur) recht gut erklärt.
Übrigens: Falls Du das Inputencoding noch nicht deklariert hast, aber Sonderzeichen direkt eingibst, solltest Du das nachholen. Anderenfalls wird das allenfalls zufällig korrekt getroffen. Windows-Anwender verwenden üblicherweise[code]\usepackage[ansinew]{inputenc}[/code]
Unix-Anwender verwenden hingegen je nach Terminal- bzw. Editor-Einstellung [code]\usepackage[latin1]{inputenc}[/code] oder [code]\usepackage[utf8]{inputenc}[/code]
Die Verwendung von latin1 stellt einen guten Kompromiss dar, wenn an einem Dokument sowohl unter Windows als auch unter Linux gearbeitet wird. Besser wäre dann allerdings utf8, was aber einen utf8-fähigen Editor unter Windows voraussetzt (unter Linux können das fast alle).
Ich hoffe, das hat Dir geholfen dieses Problem zu beseitigen.
[quote="swotky"]Gibt es eigentlich generell verschiedene Schriftarten in LaTeX?[/quote]
Ja, viele, viele, viele. Man Unterscheidet dabei aber zwischen der Schrift selbst, die man ggf. auch kaufen muss, und der Schrifteinbindung. Näheres dazu ist u. a. in der Anleitung zu der Einbindung der Standard-Postscript-Schriften, psnfss2e, und im fontinstallationguide zu finden. In [i]The TeX Catalogue[/i] findet man AFAIK ebenfalls Pakete zur Schrifteinbindung.
Deiner Frage entnehme ich, dass Du absoluter Anfänger bist und offenbar noch nicht viel zu LaTeX gelesen hast. Ich empfehle zumindest einmal l2kurz komplett durchzuarbeiten. Bei Fragen sollte man außerdem auch noch die De-TeX-FAQ per Volltextsuche durchsuchen. Dazu ist es praktisch, wenn man die Textversion davon auf dem eigenen Rechner hat.