Hershey es un formato de fuente vectorial basado en texto
(wiki.xxiivv.com)- Hershey Fonts es una de las primeras representaciones de tipografías digitales, creada en 1967, y los archivos
.jhfson archivos de texto donde cada línea representa un glifo - Una línea de glifo se compone de
id[5],length[3],left[1],right[1],points[?], y el ID y la cantidad de puntos se codifican en decimal - Las coordenadas de los puntos representan valores con signo de
xyyusando dos caracteres, dondeRcorresponde a 0,Qa -1 ySa +1 - Los valores de caracteres van de
J=-8hastaZ=+8; por ejemplo,NWsignifica la coordenada-4,5 - Levantar la pluma se indica con
" R", unaRmayúscula después de un espacio, y es una operación especial que evita dibujar una línea hasta la siguiente posición
Resumen del formato
- Hershey Fonts es una de las primeras representaciones de tipografías digitales, creada en 1967, y el archivo de fuente vectorial Hershey
.jhfes un archivo de texto donde cada línea representa un glifo - Cada línea de glifo se codifica en cinco partes
id[5]: ID decimal del glifolength[3]: valor decimal que indica la cantidad de puntosleft[1]: posición izquierda del cuadro delimitadorright[1]: posición derecha del cuadro delimitadorpoints[?]: lista de puntos que termina con un salto de línea
- Un punto se compone de dos caracteres, y cada uno representa un valor con signo de
xyy - Cuando aparece una
Rmayúscula después de un espacio, como en" R", significa la acción de levantar la pluma y no dibujar una línea hasta la siguiente posición
Mapeo de valores y materiales de referencia
- Los valores de caracteres van de
JaZ, cubriendo de-8a+8, yRes la referencia para 0J=-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
- Por ejemplo,
NWcorresponde a la coordenada-4,5porqueN=-4yW=+5 - Materiales relacionados
- Hershey Renderer, Uxntal
- Hershey Vector Font, Paul Bourke
- Hershey Fonts
1 comentarios
Comentarios en Lobste.rs
Por si a alguien le interesa, estoy armando una pequeña colección de fuentes Hershey en la que estoy trabajando
Tiene una sensación más moderna que otras tipografías que suelen verse en línea
También estaría bueno ver fotos de cómo se ven cuando se dibujan con un plóter y con un plumón grueso común
Sobre todo me gusta que los archivos
.jhfque ofrece estén bien estructurados. Muchas fuentes Hershey en línea tienen el campoidde todos los glifos como12345, o meten saltos de línea forzados en algunos glifos, lo que complica innecesariamente el parseo del archivo y el dibujado del textoHace poco estuve jugando con una pantalla de tinta electrónica Pimoroni Inky y un controlador Raspberry Pi, y ahí conocí las fuentes Hershey y el formato de archivo
.jhf. Si no recuerdo mal, la librería incluida tenía una fuente “Futural”, y en general funciona bien, pero tiene un problema: no incluye las letras suecaså,ä,öComo ahora pareces estar 100 veces más familiarizado que yo con las fuentes Hershey, quería preguntarte si alguna vez viste un archivo de fuente
.jhfque contenga más o menos los primeros 255 caracteres de la tabla ASCII. No sé si simplemente no lo estoy encontrando o si de verdad no existe, así que pregunto por si ya te topaste con unoEsta es una reelaboración del Usenet Font Consortium (1986) de los datos originales de Hershey, y es una versión que se tomó bastantes libertades muy propias de un programador en C de 1986 respecto al formato de datos original de Calligraphy for Computers (1967, PDF) / A contribution to computer typesetting techniques : tables of coordinates for Hershey's repertory of occidental type fonts and graphic symbols
El formato original de campos fijos de Fortran incluso parece más fácil de manejar, pero se cree que la cinta de datos que distribuía NTIS se perdió. En las publicaciones de Usenet incluso había una pulla tipo “como si alguien realmente quisiera usar ese formato...”
Y gracias por recordarme otra vez que tengo que terminar, publicar o abandonar el convertidor Hershey a OTF que miré por última vez alrededor de 2016: scruss/python-hershey. Saludos a todos los que alguna vez se pelearon con este formato de fuente de locos
También hay otra madriguera de conejo de fuentes vectoriales nueva: GIMMS, usado en la University of Edinburgh
Frank Grießhammer dejó un muy buen texto con ilustraciones sobre Hershey y su trabajo: Frank Grießhammer
Este formato parece bastante útil para el renderizador por software que estoy escribiendo ahora
Es un proyecto de juguete, así que ni quiero ni necesito soportar fuentes OTF/TTF, y las fuentes Hershey parecen una mejora mejor y de menor costo que la fuente bitmap monoespaciada actual inspirada en olive.c
Mmm, ¿no hay línea base?
Si existiera un mapeo entre el ID del glifo y los caracteres ASCII/Unicode, quizá se podría calcular la línea base a partir de las dimensiones de un carácter de referencia como
0Hace mucho convertí las fuentes Hershey a JSON
Es bastante verboso, pero más fácil de procesar y leer. Si a alguien le interesa, puede bajar el archivo de 2.6 MB aquí
Parece un formato imperativo en contraste con el https://en.wikipedia.org/wiki/Metafont declarativo
Las fuentes BGI también tenían una estructura parecida
Una de las razones por las que las fuentes Hershey son útiles es que, al ser un formato vectorial simple, es fácil construir encima otros efectos no solo para plóteres de pluma sino también para visualización en pantalla
Por ejemplo, en una visualización del día 5 de AoC 2024 se muestrearon puntos del vector para usarlos como sitios de nucleación de burbujas: https://hachyderm.io/deck/@bazzargh/113599143062296178
En el día 12, las líneas se dibujaban lentamente para dar el efecto de escribir sobre una ventana escarchada: https://hachyderm.io/deck/@bazzargh/113639456289455465