Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 6

24 Jan '16, 21:25

Henri's gravatar image

Henri
15.7k133943

In `xelatex` muss `\disablehyphenation` *nach* `\begin{document}` stehen, in `lualatex` nicht. Das liegt daran, dass `\disablehyphenation` für die beiden Maschinen fundamental unterschiedlich funktioniert. Für `xelatex` wird `\langauge=\l@nohyphenation` gesetzt, also quasi Trennmuster geladen, die keinerlei Trennungen enthalten. Allerdings lädt `\setdefaultlanguage` die Trennmuster `\AtBeginDocumet` `\AtBeginDocument` und überschreibt somit das `\langauge=\l@nohyphenation` in der Präambel. Man kann also entweder \AtBeginDocumet{\disablehyphenation}` `\AtBeginDocument{\disablehyphenation}` nach `\setdefaultlanguage` innerhalb der Präambel haben oder `\disablehyphenation` nach `\begin{document}`. In `lualatex` wird einfach der Callback `"hyphenate"` auf die Funktion `falsefun` gesetzt, die einfach nichts tut und `false` zurückgibt. Da der Callback nicht von `\setdefaultlanguage` überschrieben wird ist hier die Reihenfolge egal. \documentclass[a5paper]{scrartcl} \usepackage{polyglossia} \setdefaultlanguage[spelling = new, babelshorthands = true]{german} \usepackage{blindtext} \begin{document} \disablehyphenation \Blindtext \end{document} > ![alt text][1] Man denkt nun vielleicht, warum wird “gleichgültig” immer noch getrennt? Nun, das liegt am Paket `blindtext`, denn in der Definition des Blindtextes steht Ist es gleich\-g\"ul\-tig, ob ich schreibe: Man sieht, dass mit `\-` explizite Trennmarken eingesetzt wurden. Verzichtet man beim Schreiben des eigenen Textes auf diese, so bleibt die Trennung ausgeschaltet. Für das folgende Beispiel deaktiviere ich `\-` durch `\let\-\relax`. Spielt man noch ein wenig am Parameter `\emergencystretch` herum, so kann man trotz deaktivierter Trennmuster einen ganz guten Blocksatz erhalten (Grauwert ist etwas zu niedrig, aber trotzdem nicht löchrig). \documentclass[a5paper]{scrartcl} \usepackage{polyglossia} \setdefaultlanguage[spelling = new, babelshorthands = true]{german} \usepackage{blindtext} \begin{document} \disablehyphenation \emergencystretch=1.2em {\let\-\relax % only for \Blindtext \Blindtext} \end{document} > ![alt text][2] [1]: http://texwelt.de/wissen/upfiles/test-0.png [2]: http://texwelt.de/wissen/upfiles/test-0_1.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 5

24 Jan '16, 21:23

Henri's gravatar image

Henri
15.7k133943

In `xelatex` muss `\disablehyphenation` *nach* `\begin{document}` stehen (in stehen, in `lualatex` nicht, vielleicht schaue ich mal woran es liegt). nicht. Das liegt daran, dass `\disablehyphenation` für die beiden Maschinen fundamental unterschiedlich funktioniert. Für `xelatex` wird `\langauge=\l@nohyphenation` gesetzt, also quasi Trennmuster geladen, die keinerlei Trennungen enthalten. Allerdings lädt `\setdefaultlanguage` die Trennmuster `\AtBeginDocumet` und überschreibt somit das `\langauge=\l@nohyphenation` in der Präambel. Man kann also entweder \AtBeginDocumet{\disablehyphenation}` nach `\setdefaultlanguage` innerhalb der Präambel haben oder `\disablehyphenation` nach `\begin{document}`. In `lualatex` wird einfach der Callback `"hyphenate"` auf die Funktion `falsefun` gesetzt, die einfach nichts tut und `false` zurückgibt. Da der Callback nicht von `\setdefaultlanguage` überschrieben wird ist hier die Reihenfolge egal. \documentclass[a5paper]{scrartcl} \usepackage{polyglossia} \setdefaultlanguage[spelling = new, babelshorthands = true]{german} \usepackage{blindtext} \begin{document} \disablehyphenation \Blindtext \end{document} > ![alt text][1] Man denkt nun vielleicht, warum wird “gleichgültig” immer noch getrennt? Nun, das liegt am Paket `blindtext`, denn in der Definition des Blindtextes steht Ist es gleich\-g\"ul\-tig, ob ich schreibe: Man sieht, dass mit `\-` explizite Trennmarken eingesetzt wurden. Verzichtet man beim Schreiben des eigenen Textes auf diese, so bleibt die Trennung ausgeschaltet. Für das folgende Beispiel deaktiviere ich `\-` durch `\let\-\relax`. Spielt man noch ein wenig am Parameter `\emergencystretch` herum, so kann man trotz deaktivierter Trennmuster einen ganz guten Blocksatz erhalten (Grauwert ist etwas zu niedrig, aber trotzdem nicht löchrig). \documentclass[a5paper]{scrartcl} \usepackage{polyglossia} \setdefaultlanguage[spelling = new, babelshorthands = true]{german} \usepackage{blindtext} \begin{document} \disablehyphenation \emergencystretch=1.2em {\let\-\relax % only for \Blindtext \Blindtext} \end{document} > ![alt text][2] [1]: http://texwelt.de/wissen/upfiles/test-0.png [2]: http://texwelt.de/wissen/upfiles/test-0_1.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 4

24 Jan '16, 21:08

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 3

24 Jan '16, 21:07

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

24 Jan '16, 20:28

Henri's gravatar image

Henri
15.7k133943

Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

24 Jan '16, 20:27

Henri's gravatar image

Henri
15.7k133943

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×