Fehlerhafte Textebene. Nichtübereinstimmung zwischen dem Kerning in Fontforge und in {xe|lua}latex

Fehlerhafte Textebene. Nichtübereinstimmung zwischen dem Kerning in Fontforge und in {xe|lua}latex

Ausführen xelatex(oder lualatex) auf der Eingabe

\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont[Ligatures=TeX]{texgyretermes-math.otf}
\begin{document}
\(\{f\}\)
\end{document}

sollte eine Art von

{F}

in der Textebene des PDF. Aber es erzeugt

{F }

mit einem Leerzeichen zwischen f und }. Dieses Leerzeichen sollte nicht da sein. Wie wird man es los?

Die sichtbare Ausgabe sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Wie Sie sehen, überlappen sich die linke Klammer und das f im PDF. Wenn Sie die Schriftart jedoch mit Fontforge öffnen und die linke Klammer mit dem Florin in das Metrikfenster einfügen, überlappen sie sich nicht! Die Ausgabe ist inkonsistent. Was übersehe ich? Wie kann ich den Kerning für die Vorkommen von "{" ein für alle Mal richtig erhöhen?F" in meinem riesigen Dokument (das kein MWE ist)? Ich habe versuchtdie Schriftart selbst verbessern(die Entwickler haben in der Vergangenheit auf ähnliche Anfragen nicht reagiert), aber bisher hat es zu nichts geführt ...

Antwort1

Der Abstand in der „Textebene“ des PDF wird durch eine Heuristik Ihres PDF-Viewers eingefügt, da zwischen dem fund dem ein gewisser Abstand besteht }. Langfristig sollten getaggte PDF-Dateien dieses Problem lösen, aber insbesondere bei mathematischen Formeln würde ich mich nicht zurückhalten. Kurzfristig geben Sie also entweder Ersatztexte für jede mathematische Formel an, indem Sie z. B. verwenden, repltextoder Sie leben mit diesem Abstand.

Zur "Inkonsistenz" in FontForge: Das Florin-Zeichen (U+0192) und der mathematische kursive Kleinbuchstabe f (U+1D453) sind nicht dieselbe Glyphe. Vergleicht man beide in FontForge, ergibt sich das gleiche Erscheinungsbild wie in TeX:

(Mathematisches kursives kleines F zuerst, Florin dann)

Bildbeschreibung hier eingeben

Aber generell würde ich FontForges Metrikfenster für die Math-Ausgabe nicht empfehlen, da Math nicht auf die gleiche Weise formatiert wird wie normaler Text. Insbesondere „klassisches Kerning“ wie in diesem Fall gibt es eigentlich nicht, da {und fseparate Objekte und nicht Teil eines Wortes sind.

Wenn Sie das Florin-Zeichen dem mathematischen f vorziehen, können Sie natürlich

\Umathcode`\f 7 0 "192

danach \begin{document}, sodass LaTeX im Mathematikmodus für ein „f“ das Florin-Zeichen anstelle von U+1D453 einfügt. Ein Nachteil ist, dass die Textebene auch das Florin-Zeichen enthält. Sie können es auch U+1D453direkt in FontForge ändern.

verwandte Informationen