Einführung
In diesem Lab werden Sie durch ein Beispiel geführt, wie Schriftarten tabellenartig miteinander zusammenhängen, mithilfe der Python-Bibliothek Matplotlib.
Tipps für die virtuelle Maschine
Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback ab, und wir werden das Problem für Sie prompt beheben.
Lädt die Schriftart
Zunächst müssen wir eine Schriftartdatei laden. In diesem Beispiel verwenden wir die Schriftartdatei DejaVuSans.ttf.
import os
import matplotlib
from matplotlib.ft2font import FT2Font
font = FT2Font(os.path.join(matplotlib.get_data_path(), 'fonts/ttf/DejaVuSans.ttf'))
Legt die Zeichensammlung fest
Als nächstes legen wir die Zeichensammlung auf die standardmäßige Unicode-Zeichensammlung fest.
font.set_charmap(0)
Holt Zeichencodes und Glyphen
Wir werden die Zeichencodes und die zugehörigen Glyphen in der Schriftart abrufen und sie in zwei Wörterbüchern, coded und glyphd, speichern.
codes = font.get_charmap().items()
coded = {}
glyphd = {}
for ccode, glyphind in codes:
name = font.get_glyph_name(glyphind)
coded[name] = ccode
glyphd[name] = glyphind
Lädt eine Glyphe
Jetzt werden wir eine Glyphe, den Buchstaben 'A', aus der Schriftart laden und seine Begrenzungskarte (Bounding Box) mit der Eigenschaft glyph.bbox ausgeben.
code = coded['A']
glyph = font.load_char(code)
print(glyph.bbox)
Holt Kerning-Werte
Wir können die Kerning-Werte zwischen zwei Glyphen mit der Methode font.get_kerning() abrufen. In diesem Beispiel werden wir den Kerning-Wert zwischen den Glyphen für 'A' und 'V' und den Glyphen für 'A' und 'T' abrufen.
## kerning values for 'AV'
print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_DEFAULT))
print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNFITTED))
print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNSCALED))
## kerning value for 'AT'
print('AT', font.get_kerning(glyphd['A'], glyphd['T'], KERNING_UNSCALED))
Zusammenfassung
In diesem Lab haben wir gelernt, wie man eine Schriftartdatei lädt, die Zeichensammlung setzt, Zeichencodes und Glyphen abruft, eine Glyphe lädt und die Kerning-Werte zwischen Glyphen erhält. Diese sind nützliche Techniken für jeden, der mit Schriften und Texten in seinen Python-Projekten arbeiten möchte.