Ich setze ein Dokument in deutscher Frakturschrift mit XeLaTeX und bin auf einen eigenartigen – mir fällt kein besseres Wort ein – Fehler gestoßen:
Die Silbentrennung an sich ist an dieser Stelle ok. Allerdings würden die deutschen Fraktursatzregeln vor dem Trennstrich ein langes ſ verlangen.
Die Schriftart, die ich verwende, bietet einen Stilsatz, der gut erkennt, welcheSSollte bleibenSund das sollte sich verwandeln inſ. Offensichtlich wird dieser Stilsatz jedoch erst angewendet,nach TeX hat die Silbentrennung des betreffenden Wortes abgeschlossen, denn wenn das dort angezeigte Wort nicht getrennt ist, wird es korrekt alsflüſſige.
Zur Umgehung des Problems habe ich mir folgende Gedanken gemacht:
- Das Hinzufügen eines ZWJ zwischen denSes (
\char"200D
) - Hinzufügen eines ZWNJ vor demSes (
\char"200C
) - Hinzufügen von
"|
(Ligaturenbrecher wie definiert durchpolyglossia
) oder\/
In den ersten beiden Fällen wird die Silbentrennung vollständig unterdrückt (aber bei der Überprüfung einer anderen Mischosen-Variante kann ich bestätigen, dass überhaupt nichts passiert ist). Im dritten Fall wird natürlich ein zusätzlicher Trennpunkt hinzugefügt, was zu einer falschen Silbentrennung führt.
Gibt es Optionen, um TeX zu zwingen, die korrekteSGlyphe, ohne sie im Klartext einzugeben? Etwas wie:
- Ändern des Silbentrennungszeichens, um eine zweistellige Zeichenfolge zu lesen, die etwas enthält, das die richtigeS? (unwahrscheinlich von derAntworten auf diese FrageUnddie fehlenden Antworten auf diese Frage
- Einen zusätzlichen Mechanismus zur Glyphenauswahl hinzufügen, der nur Sonderfälle erfasst, die vom Stilsatz der Schriftart nicht richtig wiedergegeben werden?
- …
Die Schriftart istUnifrakturMaguntiaund alle Informationen dazu, einschließlich Downloads, finden Sie auf derSourceforge-Seite.
Eine Randbemerkung: DieDokumentation (Seite 31)bedeutet, dass einSnach einemanderer Charakterund vor einem anderenSwiedergegeben werden alsſ. Jetzt bin ich mir nicht sicher, ob TeX die nicht darstellbaren Zeichen irgendwie unterdrückt oder ob es sich dabei um einen Fehler auf Seiten der Schriftart handelt. Wenn ersteres zutrifft, gibt es dann ein Zeichen mit der Breite Null, das nicht verschlungen wird?
Der wichtige Teil des Codes:
\documentclass[12pt,a4paper,twoside]{scrreport}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true,spelling=new,script=fraktur]{german}
\setmainfont[Mapping=tex-text,StylisticSet=11]{UnifrakturMaguntia}
\makeatletter
\begingroup\lccode`~=`"
\lowercase{\endgroup
\everymath{\let~\eu@active@quote}
\everydisplay{\let~\eu@active@quote}
}
\makeatother % This code is included to keep German TeX ligatures such as
% % "~ active, despite amsmath package.
\newcommand\zwj{\char"200D} % defines \zwj as zero-width joiner
\newcommand\zwnj{\char"200C} % defines \zwnj as zero-width non-joiner
\begin{document}
Einfüllung mit dem Laufmittelgemisch aufgeschlämmt und unter Stickstoffüberdruck gepackt. Flüssige
und ölige Proben wurden in wenig Laufmittelgemisch angelöst und mit einer Pasteurpipette vorsichtig auf die
Silicaschicht aufgetragen. Feststoffe, die sich nicht in wenig Laufmittelgemisch lösen ließen, wurden mit einem
passenden Lösungsmittel gelöst, mit Kieselgel versetzt, das Lösungsmittel am Rotationsverdampfer entfernt und
\noindent (Think of the same text repeating) Flüs\zwj sige (etc.)
\noindent (Think of the same text repeating) Flü\zwnj ssige (etc.)
\noindent (Think of the same text repeating) Flü"|ssige (etc.)
\end{document}
In meinem aktuellen Dokument steht noch mehr. Mir ist gerade aufgefallen, dass die falscheSvor dem Bindestrich an dieser Stelle, also habe ich experimentiert und festgestellt, dass ich es reproduzieren kann, indem ich zumindest die Textzeilen hinzufüge, die ich hier aufgeschrieben habe. Ich habe keine Ahnung, wie ich Spalten verkleinern kann, um eine Silbentrennung zu erzwingen (das würde beim Testen allerdings sehr hilfreich sein).