Hershey ist ein textbasiertes Vektor-Schriftformat
(wiki.xxiivv.com)- Hershey Fonts sind eine der frühen digitalen Schriftdarstellungen, die 1967 entstanden; eine
.jhf-Datei ist eine Textdatei, in der jede Zeile ein Glyph repräsentiert - Eine Glyph-Zeile besteht aus
id[5],length[3],left[1],right[1],points[?], wobei ID und Anzahl der Punkte dezimal codiert sind - Punktkoordinaten stellen mit zwei Zeichen vorzeichenbehaftete
x- undy-Werte dar;Rentspricht 0,Qentspricht -1 undSentspricht +1 - Die Zeichenwerte reichen von
J=-8bisZ=+8; zum Beispiel bedeutetNWdie Koordinate-4,5 - Stift abheben wird als
" R"dargestellt, also als Leerzeichen gefolgt von einem großenR; das ist eine spezielle Aktion, bei der bis zur nächsten Position keine Linie gezeichnet wird
Formatüberblick
- Hershey Fonts sind eine der frühen digitalen Schriftdarstellungen, die 1967 entstanden; eine Hershey-Vektor-Schriftdatei
.jhfist eine Textdatei, in der eine Zeile genau ein Glyph repräsentiert - Jede Glyph-Zeile ist in fünf Teile codiert
id[5]: die dezimal codierte ID des Glyphslength[3]: ein Dezimalwert, der die Anzahl der Punkte angibtleft[1]: die linke Position der Bounding Boxright[1]: die rechte Position der Bounding Boxpoints[?]: eine Punktliste, die mit einem Zeilenumbruch endet
- Ein einzelner Punkt besteht aus zwei Zeichen, die jeweils vorzeichenbehaftete
x- undy-Werte darstellen - Eine Stelle wie
" R", also ein Leerzeichen gefolgt von einem großen R, bedeutet, dass der Stift abgehoben wird und bis zur nächsten Position keine Linie gezogen wird
Wertezuordnung und Referenzen
- Die Zeichenwerte laufen von
JbisZund entsprechen-8bis+8, wobeiRder Referenzwert 0 istJ=-8,K=-7,L=-6,M=-5,N=-4,O=-3,P=-2,Q=-1R=0S=+1,T=+2,U=+3,V=+4,W=+5,X=+6,Y=+7,Z=+8
- Zum Beispiel entspricht
NWder Koordinate-4,5, weilN=-4undW=+5ist - Verwandte Materialien
- Hershey Renderer, Uxntal
- Hershey Vector Font, Paul Bourke
- Hershey Fonts
1 Kommentare
Lobste.rs-Kommentare
Falls es jemanden interessiert: Ich baue gerade eine kleine Sammlung von Hershey-Schriften
Sie wirken ein wenig moderner als viele andere Schriften, die man online so sieht
Es wäre auch schön, Fotos davon zu sehen, wie sie mit einem Plotter und mit normalen breiten Stiften aussehen
Besonders gut finde ich, dass die bereitgestellten
.jhf-Dateien sauber strukturiert sind. Bei vielen Hershey-Schriften online steht imid-Feld aller Glyphen12345, oder es gibt in manchen Glyphen erzwungene Zeilenumbrüche, was das Parsen der Dateien und das Zeichnen von Text unnötig erschwertIch habe mich vor Kurzem mit einem Pimoroni-Inky-E-Ink-Display und einem Raspberry-Pi-Controller beschäftigt und bin dabei auf Hershey-Schriften und das
.jhf-Dateiformat gestoßen. In der mitgelieferten Bibliothek gab es meiner Erinnerung nach eine Schrift namens „Futural“, und insgesamt funktioniert sie gut, aber ein Problem gibt es: Die schwedischen Buchstabenå,ä,öfehlenDu scheinst jetzt mit Hershey-Schriften etwa 100-mal vertrauter zu sein als ich, daher wollte ich fragen, ob du schon einmal eine
.jhf-Schriftdatei gesehen hast, die ungefähr die ersten 255 Zeichen der ASCII-Tabelle enthält. Ich weiß nicht, ob ich die Schrift nur nicht finde oder ob es sie tatsächlich nicht gibt, daher wollte ich fragen, ob du so etwas schon gesehen hastDas hier ist eine vom Usenet Font Consortium (1986) überarbeitete Version der ursprünglichen Hershey-Daten, und bei der ursprünglichen Calligraphy for Computers-Datenstruktur (1967, PDF) / A contribution to computer typesetting techniques : tables of coordinates for Hershey's repertory of occidental type fonts and graphic symbols wurde ziemlich viel 1986er-C-Programmiererfreiheit walten gelassen
Das ursprüngliche Fortran-Format mit festen Feldern wirkt eigentlich einfacher zu handhaben, aber das früher bei NTIS verfügbare Datenband gilt wohl als verloren. Im Usenet-Post gab es auch eine spöttische Bemerkung nach dem Motto: „als ob das Format wirklich jemand benutzen wollte …“
Und danke, dass du mich wieder daran erinnert hast, dass ich den Hershey-OTF-Konverter, den ich mir zuletzt etwa 2016 angesehen habe, entweder fertigstellen, veröffentlichen oder endgültig aufgeben sollte: scruss/python-hershey. Grüße an alle, die sich schon einmal mit diesem verrückten Schriftformat angelegt haben
Es gibt noch einen neuen Kaninchenbau für Vektorschriften: GIMMS, verwendet an der University of Edinburgh
Frank Grießhammer hat einen guten Text mit Abbildungen über Hershey und seine Arbeit geschrieben: Frank Grießhammer
Für den Software-Renderer, an dem ich gerade schreibe, könnte dieses Format ziemlich nützlich sein
Es ist ein Spielzeugprojekt, daher will ich OTF/TTF-Schriften weder unterstützen noch brauche ich sie, und Hershey-Schriften wirken wie eine bessere und kostengünstigere Verbesserung gegenüber der aktuell verwendeten Festbreiten-Bitmap-Schrift, die von olive.c inspiriert ist
Hm, gibt es keine Grundlinie?
Wenn es eine Zuordnung zwischen Glyphen-ID und ASCII-/Unicode-Zeichen gibt, müsste sich die Grundlinie vielleicht aus den Maßen eines Referenzzeichens wie
0berechnen lassenIch habe vor langer Zeit Hershey-Schriften nach JSON konvertiert
Ziemlich ausführlich, aber leichter zu verarbeiten und zu lesen. Wer möchte, kann die 2,6-MB-Datei hier herunterladen
Sieht aus wie ein imperatives Format als Gegenstück zum deklarativen https://en.wikipedia.org/wiki/Metafont
Die BGI-Schriften hatten auch eine ähnliche Struktur
Einer der Gründe, warum Hershey-Schriften nützlich sind, ist ihr einfaches Vektorformat; dadurch lassen sich darauf leicht andere Effekte aufbauen, nicht nur für Stiftplotter, sondern auch für die Anzeige auf Bildschirmen
In einer AoC-2024-Visualisierung für Tag 5 wurden zum Beispiel Punkte aus den Vektoren gesampelt und als Keimbildungsstellen für Blasen verwendet: https://hachyderm.io/deck/@bazzargh/113599143062296178
An Tag 12 wurden die Linien langsam gezeichnet, um einen Effekt zu erzeugen, als würde man auf eine beschlagene Fensterscheibe schreiben: https://hachyderm.io/deck/@bazzargh/113639456289455465