
Ich erstelle eine Grammatik für eine fiktive Sprache und habe eine benutzerdefinierte Schriftart für diese Sprache erstellen lassen. Die Schriftart verfügt über ein System, bei dem Buchstaben und Ligaturen den vorherigen Buchstaben überlagern, um kompliziertere „Buchstaben“ mit einer kleineren Anzahl von Glyphen zu erstellen. Wenn LaTeX ein Wort vor einem Buchstaben trennt, der den vorherigen überlagern sollte, sieht das sehr schlecht aus. Ich habe das „gelöst“, indem ich manuell \mbox um bestimmte Wörter gesetzt habe, die getrennt werden, wenn ich sie bemerke, aber das ist natürlich keine dauerhafte Lösung. Wie kann ich einen benutzerdefinierten Satz von Silbentrennungsregeln angeben, der nur für Text gilt, der in dieser benutzerdefinierten Schriftart geschrieben ist? Sogar eine so einfache Regel wie „keine Wörter trennen und Zeilen nur bei Leerzeichen trennen“ würde funktionieren, ich möchte jedoch, dass normaler englischer Text wie gewohnt getrennt wird. Falls es wichtig ist: Die Schriftart enthält auch viele Ligaturen, aber ich habe noch nicht bemerkt, dass LaTeX versucht hat, ein Wort zwischen zwei Buchstaben zu trennen, die eine Ligatur bilden müssen.
Antwort1
Wechseln Sie beim Wechseln der Schriftart auch zu einer neuen Sprache, entweder einer vorhandenen Sprache ohne Bindestrich oder einer Sprache, für die Sie benutzerdefinierte Muster definiert haben. Sofern Sie nicht Luatex verwenden, müssen Sie zum Laden von Mustern ein benutzerdefiniertes Format erstellen, da Sie Muster nicht in einen normalen Tex-Lauf laden können.
Am einfachsten ist es wahrscheinlich, keine Muster zu verwenden, wodurch standardmäßig keine Silbentrennung erfolgt, und es dann \hyphenation
für Wörter zu verwenden, bei denen Sie Bindestriche zulassen möchten.
\documentclass{article}
\showhyphens{football}% hyphenates in english
\newlanguage\something
\language\something
\showhyphens{football}% but not here
\hyphenation{foo-tball}
\showhyphens{football}% but does now
\language0
\showhyphens{football}% back to english
\begin{document}
{\language\something\ttfamily % your font
stuff here
}
\end{document}
zeigt ein Protokoll
Underfull \hbox (badness 10000) in paragraph at lines 3--3
[] \OT1/cmr/m/n/10 foot-ball
Underfull \hbox (badness 10000) in paragraph at lines 6--6
[] \OT1/cmr/m/n/10 football
Underfull \hbox (badness 10000) in paragraph at lines 8--8
[] \OT1/cmr/m/n/10 foo-tball
Underfull \hbox (badness 10000) in paragraph at lines 10--10
[] \OT1/cmr/m/n/10 foot-ball
zeigt an, dass in der neuen Sprache die Silbentrennung deaktiviert ist, mit Ausnahme der Wörter, bei denen Sie Trennpunkte angeben