- Fuente libre que incluye glifos (formas de caracteres) para los caracteres Unicode de todo el mundo, mantenida como parte del proyecto GNU
- Desde la versión 15.1.01, gracias a las contribuciones de Minseo Lee y Ho-seok Ee, se introdujo una nueva codificación combinatoria (método 6/3/1) para aplicar un sistema mejorado de glifos Hangul
- En la versión más reciente, 17.0.03, se corrigieron y añadieron numerosos glifos, incluidos hanzi chinos y japoneses, así como árabe y símbolos musicales
- Compatible con los 65,536 code points completos del BMP (Plano Multilingüe Básico), y también sigue ampliando gradualmente las áreas de SMP (Plano Multilingüe Suplementario) y CSUR (ConScript Unicode Registry)
- Se distribuye bajo doble licencia: GNU GPLv2+ con excepción de incrustación de fuentes y SIL Open Font License 1.1, por lo que puede usarse libremente también en software comercial
- Un proyecto representativo de fuente Unicode de código abierto cuyo objetivo es la cobertura completa de los sistemas de escritura del mundo
Resumen de GNU Unifont
- GNU Unifont es una fuente que incluye glifos para todos los code points Unicode imprimibles, y se mantiene como parte del proyecto GNU
- Soporte completo para el Plano Multilingüe Básico (BMP, U+0000~U+FFFF)
- Las áreas del Plano Multilingüe Suplementario (SMP, U+010000~U+01FFFF) y CSUR/Under-CSUR también siguen expandiéndose
- También puede usarse en software comercial, aunque las fuentes derivadas deben publicarse bajo la misma licencia
- Las licencias son GNU GPLv2+ (con excepción de incrustación de fuentes) y SIL Open Font License 1.1
- La publicación de fuentes derivadas garantiza el interés público
Copyright y licencia
- Miles de glifos son obras creadas por contribuyentes individuales y están protegidos por las leyes de copyright de cada país
- Algunos son formas de caracteres existentes, mientras que otros son diseños de íconos y símbolos, con un mayor nivel de protección internacional
- Hay disponible un memorándum relacionado con la ley de copyright alemana
- Desde Unifont 13.0.04, se distribuye bajo doble licencia GPL 2+ / SIL OFL 1.1
- Incrustar la fuente en un documento no viola la GPL
Descarga y formatos de la fuente
- Se ofrecen la compilación estándar y una versión con glifos PUA de CSUR/Under-CSUR
- Compatibilidad con varios formatos como OpenType (.otf), PCF, BDF, PSF y HEX
- Puede instalarse en Windows y macOS; en la terminal de macOS, es necesario activar la opción Antialias para asegurar la legibilidad
- Algunos motores de renderizado ignoran la información de espaciado entre glifos, por lo que pueden presentarse errores de visualización en motores exclusivos para monoespaciado
Limitaciones de Unifont
- Solo se almacena un glifo por cada code point imprimible
- Las escrituras índicas (devanagari, bengalí, tamil, etc.) o los caracteres cuya forma cambia según la posición (como el árabe) no se renderizan con precisión
- Para escrituras complejas, se recomienda usar fuentes OpenType especializadas
Contribución de nuevos glifos
- Para añadir nuevos glifos, es necesario contactar primero por correo electrónico
- Se puede participar tras coordinarlo para evitar trabajo duplicado
- Los glifos hanzi de 15×16 píxeles (Plane 2, 3) cuyo copyright pertenece al gobierno chino no pueden incluirse en una fuente libre
Lanzamiento más reciente — Unifont 17.0
- Versión 17.0.03 del 1 de noviembre de 2025
- Se corrigieron más de 100 hanzi que incluyen los radicales chinos de ‘馬’ (caballo) y ‘鳥’ (ave)
- Refleja la lista estándar de caracteres simplificados chinos entre 1935 y 2013
- Incluye la norma moderna de radicales de caracteres de uso comercial publicada en 2009
- Versión 17.0.02 del 18 de octubre de 2025
- Múltiples contribuciones en los planos 0~3 por parte de Paul Hardy, David Corbett, Xiaoxiao Akatsuki, Boris Zhang y otros
- Muchas correcciones en árabe, símbolos de ajedrez, extensiones CJK y más
- Versión 17.0.01 del 9 de septiembre de 2025
- Se añadieron Arabic Extended-B, símbolos monetarios y caracteres telugu y kannada, entre otros
- En los planos 1~3 se añadieron múltiples escrituras, incluyendo Arabic Extended-C, Sidetic, Tolong Siki, Beria Erfe y Adlam
Versiones principales anteriores
- Unifont 16.0 (primera mitad de 2025)
- Muchas correcciones en árabe, griego, Hangul, símbolos musicales y más
- Se añadieron escrituras CSUR como Sitelen Pona y Zbalermorna
- Unifont 15.1 (2024)
- Se introdujo la codificación Johab 6/3/1 para Hangul de Ho-seok Ee
- Cambio de compilación base de TrueType a OpenType
- Grandes mejoras en Hangul, extensiones CJK y glifos de Wen Quan Yi
Cobertura de glifos
- Amplio soporte de planos Unicode hasta los planos 0~3, 14 y 15
- Plano 0: Plano Multilingüe Básico (cobertura completa de todos los sistemas de escritura principales)
- Plano 1: Plano Multilingüe Suplementario (símbolos musicales, jeroglíficos, escrituras antiguas, etc.)
- Planos 2~3: hanzi de extensión CJK
- Plano 14: etiquetas y selectores de variación
- Plano 15: área privada CSUR/Under-CSUR
Escrituras CSUR y UCSUR
- Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian, entre otras
- Incluye varias escrituras artificiales (conlang scripts)
- Algunas todavía están marcadas como incompletas
Variantes japonesa y china
- Se ofrece la versión unifont_jp, con soporte completo del estándar JIS X 0213
- Al principio usó Jiskan16, y después fue reemplazada por glifos públicos de Izumi16
- La versión china cubre completamente la Tabla de caracteres hanzi normativos de uso general
- Se basa en glifos públicos del proyecto Wen Quan Yi (文泉驛)
Detalles técnicos
- La conversión a TrueType se basa en un script de Luis Alejandro González Miranda
- Automatiza la conversión
.hex → .sfd → .ttf
- Usa una cuadrícula base de 16×16 píxeles, con soporte futuro previsto para glifos de 32×32 píxeles
Planes a futuro
- Todos los glifos de 16×16 píxeles del plano SMP ya están completos
- Escrituras complejas como Tangut se crearán más adelante en 32×32 píxeles
- El trabajo de añadir escrituras CSUR continúa
- Todas las nuevas contribuciones deben publicarse bajo los términos de GPL 2+ / SIL OFL 1.1
Importancia del proyecto
- GNU Unifont es una fuente libre representativa cuyo objetivo es asegurar la accesibilidad digital de los sistemas de escritura del mundo
- Cumple un papel de infraestructura clave en los campos del ecosistema open source, la internacionalización (i18n) y la ingeniería tipográfica
- Es un proyecto que mejora continuamente la calidad visual del estándar Unicode gracias a las aportaciones constantes de la comunidad
Origen y estructura del Hangul
- El Hangul fue creado por el rey Sejong entre 1443 y 1446 y promulgado en 1446 en el Hunminjeongeum Haerye
- El propósito de su creación se expresó como “permitir que la gente lo aprenda fácilmente y lo use con comodidad todos los días”
- El Haerye es un comentario que explica los principios de las letras, y se conserva un ejemplar único descubierto durante la Segunda Guerra Mundial
- El Hangul tiene una estructura de bloques silábicos compuesta por tres elementos: choseong (consonante inicial), jungseong (vocal medial) y jongseong (consonante final)
- Ejemplo: “Hangul” se compone de las combinaciones ‘h + a + n’ y ‘g + eu + l’
- Las vocales y semivocales (y, w) se colocan a la derecha o debajo de la consonante inicial
Principio de formación de las consonantes
- Las consonantes parten de cinco consonantes básicas (giyeok, nieun, mieum, siot, ieung) inspiradas en la forma de los órganos de pronunciación
- A partir de ellas, al añadir trazos, se formaron las 17 consonantes originales
- Algunas consonantes expresan énfasis mediante formas dobles
- Los jamo combinatorios (Compatibility Jamo) también están incluidos en Unicode, y algunos jamo antiguos ya no se usan actualmente
Principio de formación de las vocales
- Las vocales derivan del concepto de los tres elementos: cielo (yang), persona (centro) y tierra (yin)
- Elementos básicos: punto (arae-a), línea horizontal (eu) y línea vertical (i)
- Originalmente existían 11 vocales, y arae-a desapareció del coreano estándar moderno, aunque se conserva en el dialecto de Jeju
- La combinación de vocales forma diptongos, y algunos ya no se usan en el Hangul moderno
- El conjunto de jamo Hangul de Unifont soporta todas las vocales y diptongos, tanto antiguos como modernos
Rango de Hangul dentro de Unicode
- Hangul está incluido en los siguientes rangos Unicode
- U+1100–U+11FF: Hangul Jamo
- U+3130–U+318F: Hangul Compatibility Jamo
- U+A960–U+A97F: Hangul Jamo Extended–A
- U+AC00–U+D7A3: Hangul Syllables
- U+D7B0–U+D7FF: Hangul Jamo Extended–B
- U+FFA0–U+FFDF: Half-width Compatibility Jamo
- Ajustar la posición combinada de consonante inicial, vocal medial y consonante final es clave en el diseño tipográfico, y también es posible representar sílabas combinadas en fuentes bitmap
Fuentes Johab de X11 y Unifont
- Las fuentes con codificación Johab generan glifos silábicos combinando consonante inicial, vocal medial y consonante final
- Se usaban en el terminal Hanterm del entorno Unix X11
- Como las fuentes gratuitas para Hanterm no eran compatibles con GPL, en Unifont se crearon directamente nuevos glifos silábicos de Hangul
- Proceso de conversión: script Perl johab2ucs2.pl → conversión a
.hex → .bdf
- Las fuentes existentes (iyagi16, johabg16, etc.) estaban restringidas por una licencia exclusiva para Hanterm
- Después, se creó durante varios años un nuevo conjunto de Hangul Syllables que se incorporó a Unifont
Contribuciones recientes y mejoras de codificación
- Minseo Lee: en 2023, aportó glifos modernos basados en el orden de Hanterm y versiones corregidas de glifos antiguos
- Mejoró scripts Perl y corrigió la consistencia de los jamo dentro del rango Unicode
- Ho-Seok Ee: propuso la codificación Johab 6/3/1
- Con una estructura combinatoria de 6 iniciales, 3 vocales mediales y 1 final, simplificó la generación de glifos frente al método anterior
- También propuso mover los code points al Private Use Area (U+E000–U+E8FF)
- Este método de codificación fue adoptado a partir de Unifont 15.1.01
Bloques silábicos Hangul de Unicode (U+AC00–U+D7A3)
- Están compuestos por un total de 11,172 glifos silábicos
- 19 consonantes iniciales (o 1 carácter de relleno), 21 vocales mediales y 27 consonantes finales (o ninguna)
- Fórmula combinatoria: (19×21)×28 = 11,172
- Las palabras que empiezan con vocal usan la consonante inicial ‘ieung’ como carácter de relleno
- En versiones posteriores a Unifont 5.1, el nuevo proceso de generación de bloques silábicos se describe en detalle en el documento separado Generating Hangul Syllables
2 comentarios
Este es el famoso culpable de la fea fuente coreana de Minecraft...
Comentarios en Hacker News
Fue muy útil porque viene integrado directamente en el ejecutable. Algunos usuarios incluyen caracteres CJK en sus diseños, y simplemente funciona bien en todas las plataformas.
Mientras revisaba las anotaciones de agujeros en CAD, me sorprendió descubrir que los símbolos de counterbore y countersink ya estaban incluidos en Unifont.
Se puede ver una versión web experimental aquí
Cuando la geometría es simple, se siente muy cómodo de usar.
Algún día me gustaría meterme al código y reemplazar ese cuadro de diálogo modal de “no se pueden crear restricciones”.
Proporciona un glifo fijo para todos los puntos de código del BMP, e incluye también algunos puntos de código de otros planos.
Es útil para editores que necesitan poder editar texto Unicode sin conocimientos de renderizado específicos por idioma.
Eso sí, al usar escrituras complejas como devanagari, al no haber shaping, no se ve como texto real.
Sirve para mostrar caracteres cuando otras fuentes no encuentran el glifo.
En su lugar usé la fuente Jigmo, que tenía los glifos CJK más completos.
The Mostly Complete Unicode Spiral
Todo parecía una galaxia, y me impresionó cómo los emoji estaban alineados en el borde exterior. También fue divertido buscar el emoji de la Tierra.
Por eso las escrituras complejas (índicas, árabe, etc.) no se renderizan correctamente.
En esos casos hay que usar fuentes OpenType, y Unifont solo es apropiada como fuente de respaldo.
También desactivé la descarga de fuentes web, y hasta tengo caracteres que yo mismo creé en CSUR (ConScript Unicode Registry).
En Qt la configuración de DPI es complicada, pero se arregla con
QT_FONT_DPI=128. También me gustaría hacer que juegos como RimWorld usen solo Unifont.Porque en el fallback de fuentes, Firefox de alguna forma daba prioridad a Unifont.
Si no, es imposible predecir qué fuente se va a elegir.
También hubo un fenómeno parecido con Noto Color Emoji. El mundo de las fuentes es realmente sutil.
https://github.com/remysucre/cuniform