1 puntos por GN⁺ 10 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Hershey Fonts es una de las primeras representaciones de tipografías digitales, creada en 1967, y los archivos .jhf son 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 x y y usando dos caracteres, donde R corresponde a 0, Q a -1 y S a +1
  • Los valores de caracteres van de J=-8 hasta Z=+8; por ejemplo, NW significa la coordenada -4,5
  • Levantar la pluma se indica con " R", una R mayú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 .jhf es 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 glifo
    • length[3]: valor decimal que indica la cantidad de puntos
    • left[1]: posición izquierda del cuadro delimitador
    • right[1]: posición derecha del cuadro delimitador
    • points[?]: 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 x y y
  • Cuando aparece una R mayú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 J a Z, cubriendo de -8 a +8, y R es la referencia para 0
    • J=-8, K=-7, L=-6, M=-5, N=-4, O=-3, P=-2, Q=-1
    • R=0
    • S=+1, T=+2, U=+3, V=+4, W=+5, X=+6, Y=+7, Z=+8
  • Por ejemplo, NW corresponde a la coordenada -4,5 porque N=-4 y W=+5
  • Materiales relacionados

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

    • Qué bien. Cuando hacía más trabajo con plóter, siempre me frustraba que hubiera tan pocas fuentes utilizables, y estas fuentes se ven nuevas y agradables
      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
    • Se ve útil
      Sobre todo me gusta que los archivos .jhf que ofrece estén bien estructurados. Muchas fuentes Hershey en línea tienen el campo id de todos los glifos como 12345, o meten saltos de línea forzados en algunos glifos, lo que complica innecesariamente el parseo del archivo y el dibujado del texto
    • Realmente son fuentes muy bonitas
      Hace 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 .jhf que 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 uno
  • Esta 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?

    • Los ejemplos que he visto hasta ahora parecen alinear los glifos sobre una línea central vertical uniforme
      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 0
  • Hace 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