4 pontos por GN⁺ 2025-12-14 | 2 comentários | Compartilhar no WhatsApp
  • Uma fonte livre que inclui glifos (formas de caracteres) para caracteres Unicode do mundo todo e é mantida como parte do projeto GNU
  • A partir da versão 15.1.01, com contribuições de Minseo Lee e Ho-seok Ee, foi introduzida uma nova codificação combinatória (método 6/3/1), aplicando um sistema aprimorado de glifos Hangul
  • Na versão mais recente, 17.0.03, muitos glifos foram corrigidos e adicionados, incluindo hanzi chineses e japoneses, além de símbolos árabes e musicais
  • Suporta todos os 65.536 code points do BMP (Plano Multilíngue Básico), e também está expandindo gradualmente as áreas SMP (Plano Multilíngue Suplementar) e CSUR (ConScript Unicode Registry)
  • É distribuída sob licenciamento duplo de GNU GPLv2+ com exceção para incorporação de fontes e SIL Open Font License 1.1, podendo ser usada livremente também em software comercial
  • Um dos principais projetos de fonte Unicode open source com o objetivo de alcançar a cobertura completa dos sistemas de escrita do mundo

Visão geral do GNU Unifont

  • GNU Unifont é uma fonte que inclui glifos para todos os code points Unicode imprimíveis e é mantida como parte do projeto GNU
    • Suporte completo ao Plano Multilíngue Básico (BMP, U+0000~U+FFFF)
    • As áreas do Plano Multilíngue Suplementar (SMP, U+010000~U+01FFFF) e CSUR/Under-CSUR também seguem em expansão contínua
  • Também pode ser usado em software comercial, mas fontes derivadas devem ser publicadas sob a mesma licença
    • As licenças são GNU GPLv2+ (com exceção para incorporação de fontes) e SIL Open Font License 1.1
    • A publicação de fontes derivadas garante o interesse público

Direitos autorais e licença

  • Milhares de glifos são obras criativas de contribuidores individuais, protegidas pelas leis de direitos autorais de cada país
    • Alguns reproduzem formas de caracteres existentes, enquanto outros são designs de ícones e símbolos, com nível ainda maior de proteção internacional
  • Há um memorando público relacionado à lei de direitos autorais da Alemanha
  • A partir do Unifont 13.0.04, a fonte é distribuída sob licenciamento duplo GPL 2+ / SIL OFL 1.1
    • Incorporar a fonte em documentos não viola a GPL

Download e formatos da fonte

  • São oferecidos a build padrão e uma versão com glifos PUA de CSUR/Under-CSUR
    • Suporte a vários formatos, incluindo OpenType(.otf), PCF, BDF, PSF e HEX
    • Pode ser instalada no Windows e no macOS; no terminal do macOS, é necessário ativar a opção Antialias para garantir legibilidade
  • Alguns motores de renderização ignoram informações de espaçamento entre glifos, então podem ocorrer erros de exibição em motores exclusivos para monoespaçamento

Limitações do Unifont

  • Armazena apenas um glifo por code point imprimível
    • Escritas índicas (como devanágari, bengali e tâmil) ou caracteres cuja forma muda conforme a posição (como o árabe) não são renderizados com precisão
    • Para scripts complexos, recomenda-se o uso de fontes OpenType especializadas

Contribuição de novos glifos

  • Para adicionar novos glifos, é necessário contato prévio por e-mail
    • Após alinhamento para evitar trabalho duplicado, é possível participar
  • Glifos hanzi de 15×16 pixels (Plane 2, 3) cujos direitos autorais pertencem ao governo chinês não podem ser incluídos em uma fonte livre

Lançamento mais recente — Unifont 17.0

  • Versão 17.0.03 de 1º de novembro de 2025
    • Mais de 100 hanzi com os radicais chineses ‘馬(cavalo)’ e ‘鳥(pássaro)’ foram corrigidos
    • Reflete a lista padrão de caracteres chineses simplificados entre 1935 e 2013
    • Inclui o padrão moderno de radicais de caracteres de uso geral anunciado em 2009
  • Versão 17.0.02 de 18 de outubro de 2025
    • Múltiplas contribuições em Plane 0~3 por Paul Hardy, David Corbett, 晓晓Akatsuki, Boris Zhang e outros
    • Diversas correções em árabe, símbolos de xadrez, extensões CJK e mais
  • Versão 17.0.01 de 9 de setembro de 2025
    • Adições de Arabic Extended-B, símbolos monetários e caracteres Telugu e Kannada
    • Em Plane 1~3, foram adicionados vários scripts, como Arabic Extended-C, Sidetic, Tolong Siki, Beria Erfe e Adlam

Versões principais anteriores

  • Unifont 16.0 (primeira metade de 2025)
    • Muitas correções em árabe, grego, Hangul, símbolos musicais e mais
    • Adição de scripts CSUR como Sitelen Pona e Zbalermorna
  • Unifont 15.1 (2024)
    • Introdução da codificação Johab 6/3/1 para Hangul de Ho-seok Ee
    • Mudança da build padrão de TrueType para OpenType
    • Grandes melhorias em Hangul, extensões CJK e glifos Wen Quan Yi

Cobertura de glifos

  • Amplo suporte a planos Unicode, incluindo Plane 0~3, Plane 14 e Plane 15
    • Plane 0: Plano Multilíngue Básico (cobertura completa de todos os principais caracteres)
    • Plane 1: Plano Multilíngue Suplementar (símbolos musicais, hieróglifos, escritas antigas etc.)
    • Plane 2~3: hanzi de extensões CJK
    • Plane 14: tags e seletores de variação
    • Plane 15: área privada CSUR/Under-CSUR

Scripts CSUR e UCSUR

  • Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian e outros
    • Inclui diversos sistemas de escrita artificiais (conlang scripts)
    • Alguns ainda aparecem como incompletos

Variações japonesas e chinesas

  • Existe uma versão unifont_jp com suporte completo ao padrão JIS X 0213
    • No início usava Jiskan16, depois foi substituída por glifos públicos Izumi16
  • A versão chinesa cobre integralmente o Tabela de Caracteres Chineses Padronizados de Uso Geral
    • Baseada em glifos públicos do projeto Wen Quan Yi(文泉驛)

Detalhes técnicos

  • A conversão para TrueType é baseada em scripts de Luis Alejandro González Miranda
    • Automação da conversão .hex.sfd.ttf
  • Usa uma grade de 16×16 pixels como base, com suporte futuro previsto para glifos de 32×32 pixels

Planos futuros

  • Todos os glifos de 16×16 pixels do plano SMP já foram concluídos
  • Scripts complexos como Tangut deverão ser produzidos futuramente em 32×32 pixels
  • O trabalho de adição de scripts CSUR continua
  • Todas as novas contribuições devem ser publicadas sob os termos de GPL 2+ / SIL OFL 1.1

Importância do projeto

  • O GNU Unifont é uma fonte livre representativa cujo objetivo é garantir a acessibilidade digital aos sistemas de escrita do mundo todo
  • Cumpre um papel de infraestrutura essencial nos campos de ecossistema open source, internacionalização (i18n) e engenharia de fontes
  • É um projeto que eleva a qualidade visual do padrão Unicode por meio de contribuições contínuas da comunidade

Página da fonte Hangul do Unifont - Hangul(Hangeul) Font

Origem e estrutura do Hangul

  • O Hangul foi criado pelo rei Sejong entre 1443 e 1446 e promulgado em 1446 com o Hunminjeongeum Haeryebon
    • O objetivo da criação foi explicitamente “permitir que o povo aprendesse com facilidade e usasse no dia a dia de forma conveniente”
    • O Haeryebon é um comentário explicativo sobre os princípios de criação, e o único exemplar redescoberto durante a Segunda Guerra Mundial está preservado
  • O Hangul tem uma estrutura de blocos silábicos composta por três elementos: choseong (consoante inicial), jungseong (vogal medial) e jongseong (consoante final)
    • Exemplo: “Hangeul” é composto pelas combinações ‘hieuh+arae-a+nieun’ e ‘giyeok+eu+rieul’
    • Vogais e semivogais (y, w) são posicionadas à direita ou abaixo da consoante inicial

Princípios de formação das consoantes

  • As consoantes partem de cinco consoantes básicas inspiradas na forma dos órgãos da fala (giyeok, nieun, mieum, siot, ieung)
    • A partir delas, com acréscimo de traços, foram criadas as 17 consoantes originais
    • Algumas consoantes usam a forma de consoante dupla para indicar ênfase
  • Jamo de compatibilidade (Compatibility Jamo) também estão incluídos no Unicode, e alguns jamo antigos já não são usados atualmente

Princípios de formação das vogais

  • As vogais derivam do conceito dos três elementos: céu (yang), pessoa (centro) e terra (yin)
    • Elementos básicos: ponto (arae-a), linha horizontal (eu) e linha vertical (i)
  • Originalmente existiam 11 vogais, e arae-a desapareceu do coreano padrão moderno, mas permanece no dialeto de Jeju
  • Combinações de vogais formam ditongos, e algumas já não são usadas no Hangul moderno
  • O conjunto de jamo Hangul do Unifont oferece suporte a todas as vogais e ditongos, antigos e modernos

Blocos Hangul no Unicode

  • O Hangul está incluído nos seguintes intervalos 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
  • O ajuste das posições combinatórias de choseong, jungseong e jongseong é o ponto central do design da fonte, e mesmo fontes bitmap podem representar sílabas combinadas

Fonte Johab combinatória do X11 e o Unifont

  • A fonte em codificação Johab gera glifos silábicos combinando choseong, jungseong e jongseong
    • Era usada no terminal Hanterm em ambientes Unix X11
  • Como a fonte gratuita para Hanterm não era compatível com a GPL, o Unifont produziu diretamente novos glifos silábicos em Hangul
    • Processo de conversão: script Perl johab2ucs2.pl.hex.bdf
    • Fontes existentes (iyagi16, johabg16 etc.) eram limitadas por licenças exclusivas para Hanterm
  • Depois, um novo conjunto de Hangul Syllables foi produzido ao longo de vários anos e incluído no Unifont

Contribuições recentes e melhorias de codificação

  • Minseo Lee: em 2023, forneceu glifos modernos baseados na ordem do Hanterm e versões corrigidas de glifos antigos
    • Melhorias em scripts Perl e correções de consistência dos jamo dentro das faixas Unicode
  • Ho-Seok Ee: propôs a codificação Johab 6/3/1
    • Com estrutura combinatória de 6 para choseong, 3 para jungseong e 1 para jongseong, a geração de glifos foi simplificada em relação ao método anterior
    • Também propôs mover os code points para a Private Use Area(U+E000–U+E8FF)
    • Esse método de codificação foi adotado a partir da versão Unifont 15.1.01

Bloco de sílabas Hangul do Unicode (U+AC00–U+D7A3)

  • É composto por 11.172 glifos silábicos no total
    • 19 choseong (ou 1 caractere de preenchimento), 21 jungseong e 27 jongseong (ou ausência deles)
    • Fórmula combinatória: (19×21)×28 = 11.172
  • Palavras que começam com vogal usam a consoante inicial ‘ieung’ como preenchimento
  • Nas versões a partir do Unifont 5.1, o novo processo de geração de blocos silábicos é descrito em detalhe no documento separado Generating Hangul Syllables

2 comentários

 
joyfui 2025-12-14

É esse aí o responsável pela fonte coreana feiosa do Minecraft...

 
GN⁺ 2025-12-14
Comentários do Hacker News
  • Nós usamos GNU Unifont na janela de texto e no navegador de propriedades do Solvespace
    Foi muito útil por estar embutido diretamente no executável. Alguns usuários incluem caracteres CJK nos projetos, e isso simplesmente funciona bem em todas as plataformas
    Ao examinar as anotações de furos no CAD, fiquei surpreso ao ver que os símbolos de counter-bore e counter-sink já estavam incluídos no Unifont
    Uma versão web experimental pode ser vista aqui
    • A simplicidade da versão web é realmente incrível. Solvespace é meu programa de MCAD favorito e é sempre a primeira ferramenta que procuro quando preciso criar rapidamente gabaritos de teste para PCB
      Quando a geometria é simples, a experiência de uso é muito agradável
    • É impressionante que apenas a escolha da fonte já produza um efeito tão legal. Claro, há incontáveis horas humanas investidas no Unifont e no Unicode como um todo, mas gosto da ideia de que um engenheiro de CAD da Idade do Bronze possa escrever seu nome em Linear A sem problemas
    • A versão web é realmente muito limpa. O Solvespace tem funcionalidades limitadas, mas a flexibilidade e o prazer ao expressar restrições são incomparáveis
      Um dia quero entrar no código e substituir a caixa de diálogo modal “Não é possível criar restrição”
  • Para resumir para os outros, o GNU Unifont é uma fonte bitmap
    Ele fornece glifos fixos para todos os code points do BMP e também inclui code points de alguns outros planos
    É útil para editores que precisam lidar com texto Unicode sem conhecimento de renderização específico por idioma
    No entanto, ao usar scripts complexos como devanágari, ele não tem shaping, então não se parece com texto real
    • Aqui, BMP não significa BitMap, e sim o Unicode Basic Multilingual Plane. Ou seja, a área dos primeiros 65.536 code points
    • Então fico pensando se existe um arquivo separado para cada tamanho em pontos. Isso me lembrou o quanto eu sei pouco sobre fontes
  • A primeira frase daquele site parece que deveria explicar o que é o GNU Unifont. Provavelmente é uma única fonte copyleft que inclui quase todos os code points do Unicode
    • Na verdade, a segunda e a terceira frases já explicam isso com precisão. Ele inclui glifos para todos os code points imprimíveis do BMP e é adequado como fonte de último recurso
      Serve para exibir caracteres quando outras fontes não encontram o glifo
    • “Quase todos” não é o mesmo que “todos”. Tenho um projeto que precisa renderizar caracteres CJK raros, e eles não aparecem corretamente no Unifont
      Em vez disso, usei a fonte Jigmo, que foi a mais completa em glifos CJK
    • Eu também fiquei confuso no início, mas ao clicar em “Home” percebi que o link não era a página inicial
    • Há muitos projetos open source por aí cuja primeira frase explica mal do que se trata
    • Acho que a frase “GNU Unifont faz parte do projeto GNU e inclui glifos para todos os code points imprimíveis do BMP” já é suficientemente clara
  • Também fica realmente bonito quando impresso. Eu o transformei em um pôster em espiral e pendurei na parede
    The Mostly Complete Unicode Spiral
    • Muito legal! Fiquei curioso sobre em que tamanho você imprimiu. Aqueles hanzi esparsos ao redor da espiral principal fazem parte da disposição natural do Unicode ou foram colocados de propósito?
      O conjunto todo parece uma galáxia, e achei marcante como os emojis ficam alinhados na borda externa. Também foi divertido procurar o emoji da Terra
  • O Unifont armazena apenas um glifo por code point
    Por isso, scripts complexos (indic, árabe etc.) não são renderizados corretamente
    Nesses casos, é preciso usar fontes OpenType, e o Unifont é mais adequado apenas como fonte de fallback
  • Sites de fontes costumam ter uma imagem de prévia de type specimen, algo como “Hello World”. Seria bom adicionar algo assim à página do Unifont
  • Quando vejo o nome GNU, sinto que, mesmo que não seja o melhor em todos os aspectos, está entre os melhores quando se trata de respeito ao usuário
  • Eu aplico o Unifont ao sistema inteiro e, no Firefox, forço seu uso como única fonte
    Também desativei o download de webfonts, e tenho caracteres que criei registrados no CSUR (ConScript Unicode Registry)
    No Qt, a configuração de DPI é complicada, mas resolvi com QT_FONT_DPI=128. Também queria fazer com que jogos como RimWorld usassem apenas Unifont
    • Fiquei curioso por que você usa assim
    • Eu também instalei e, para conseguir ler o HN, tive que dar zoom de 200%. No XFCE ficou aceitável
  • Eu tive que remover o Unifont para usar fontes CJK bonitas no Firefox
    Isso porque o fallback de fontes, por algum motivo, priorizava o Unifont
    • Para resolver, vá em Idioma e Aparência → Fontes → Avançado nas configurações do Firefox e defina uma fonte para cada script
      Caso contrário, é impossível prever qual fonte será escolhida
    • Eu também tive um problema em que os glifos do Unifont não apareciam no Firefox e no Chrome. Há relatos relacionados no issue tracker do nixpkgs
      Algo parecido aconteceu com o Noto Color Emoji. Fontes são realmente um universo sutil
  • Eu criei uma fonte para Playdate baseada no Unifont
    https://github.com/remysucre/cuniform