Wie funktioniert bei einem Font die Zuordnung Slot Nummer zu glyph

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Joachim
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Mo 26. Jul 2021, 15:20

Wie funktioniert bei einem Font die Zuordnung Slot Nummer zu glyph

Beitrag von Joachim »

Hallo,

Wie findet intern die Zuordnung des Characters in einem Font zum Glyph in der .PFB Datei statt?
Beispiel das Zeichen 'epsilon' im OML Encoding liegt in Slot 15. Wenn ich mir aber in fontforge die dazugehörige usyr.PFB Datei ansehe, liegt das 'epsilon' an stelle 101. In der cmmi10.PFB des Standard Fonts liegt es dagegen an Stelle 15. Alle Glyphen in cmmi10.PFB liegen exakt an der Stelle, die das OML Encoding fordert, die Glyphen in usyr.PFB liegen alle woanders. Wie und wo findet dann die Zuordnung statt.

Hier der Code, mit dem ich mir die Zeichen der beiden Fonts in OML-Encoding anschaue. Daraus geht z.B. auch hervor, dass die Glyphen für den {OML}{ztmcm}{m}{it} in usyr.pfp enthalten sind, was ich mit fontforge verifiziert habe, indem ich in dieser Datei Glyphen ausgetauscht habe, was sofort in der Ausgabe des Beispiels zu sehen ist. Wie aber findet nun die Umsetzung von OML #15 für epsilon zum epsilon Glyph (#101) in usyr.pfb statt?

\documentclass{article}
\tracingmacros=1

\usepackage{amssymb}
\usepackage{mathptmx}
\usepackage{fonttable}
\begin{document}

% Diese Dateien werden eingelesen (siehe Konsole Output) wenn man nur das 1. \xfonttable aktiviert
%("C:\Program Files\MiKTeX 2.9\tex\latex\psnfss\omlztmcm.fd")
%{C:/Program Files/MiKTeX 2.9/fonts/enc/dvips/fontname/8r.enc}
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmmi10.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmtt10.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/urw/symbol/usyr.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/urw/times/utmr8a.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/urw/times/utmri8a.pfb>
\xfonttable{OML}{ztmcm}{m}{it}


% Diese Dateien werden eingelesen (siehe Konsole Output) wenn man nur das 2. \xfonttable aktiviert
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmmi10.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr10.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmr5.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmti10.pfb>
%<C:/Program Files/MiKTeX 2.9/fonts/type1/public/amsfonts/cm/cmtt10.pfb>
%\xfonttable{OML}{cmm}{m}{it}

\end{document}

Mein Ziel ist, ich will dem {OML}{ztmcm}{m}{it} die fehlenden Glyphen für \varrho und \varepsilon hinzufügen.

Hier ist noch die Ausgabe von usyr.pfb in fontforge. Es zeigt, dass der Glyph für epsilon an Position 101 liegt.

Dateianhänge
fontforge: Position der Glyphen in usyr.pfb
fontforge: Position der Glyphen in usyr.pfb

Grummelgast

Re: Wie funktioniert bei einem Font die Zuordnung Slot Nummer zu glyph

Beitrag von Grummelgast »

Bei klassischem TeX (also beispielsweise pdflatex oder latex + dvips) findet die letztendliche Zuordnung im Backend über die enc-Dateien statt. Am häufigsten verwendet ist dabei 8r.enc. Darüber kann auch ein Font mit mehr als 256-Zeichen mehrere Font mit unterschiedlichem Namen und unterschiedlichen enc-Dateien aufgeteilt werden. Umgekehrt kann über virtuelle Fonts auch ein Font aus mehreren unterschiedlichen Font-Dateien gebaut werden.

Davor steht bei LaTeX aber noch das Font-Encoding, das Eingabezeichen auf Ausgabe-Zeichen mappt. Das funktioniert auf TeX-Ebene schlicht dadurch, dass bestimmte Zeichen aktiv sind und dann lokal sowohl eine Fontumschaltung als auch zur Auswahl eines bestimmten Zeichens in dem dann gültigen Font führt.

Das Mapping von TeX-Fontnamen zu pdf + enc geschieht über die map-Dateien.

Einfacher ist das bei Lua(La)TeX und Xe(La)TeX. Dort findet die Zuordnung einfach über den Unicode des jeweiligen Zeichens statt. Heutzutage würde ich mich nicht mehr mit der recht komplexen Font-Einbindung mit klassischem TeX herumschlagen und habe das auch seit min. zehn Jahren nicht mehr gemacht. Das war jedes Mal ein Krampf und ich musste mich stundenlang in die Theorie einlesen.

Literaturhinweise u. a. encguide, fontinstallationguide.


Antworten