Como usar as substituições contextuais no FontForge?
As substituições contextuais são um recurso avançado de fontes OpenType que permite alterar o glifo exibido dependendo do contexto — como a posição em uma palavra, caracteres vizinhos ou regras linguísticas. Este guia ensina como implementá-las no FontForge, um editor de fontes livre e poderoso.
O que são substituições contextuais?
Em tipografia digital, uma substituição contextual ocorre quando um caractere assume uma forma diferente de acordo com os caracteres ao redor. Por exemplo, na escrita árabe ou em fontes caligráficas, uma letra pode ter versões inicial, medial e final. No OpenType, essas regras são definidas na tabela GSUB (Glyph Substitution). O tipo de regra "Contextual Substitution" permite aplicar substituições que só acontecem quando uma determinada sequência de glifos é encontrada.
Por que usar substituições contextuais?
Elas são essenciais para uma tipografia refinada: conectam formas caligráficas, posicionam variantes corretamente e permitem que uma fonte simule a escrita natural. Em fontes de display ou decorativas, substituições contextuais podem criar efeitos interessantes. No FontForge, você pode configurá-las tanto pela interface gráfica quanto por código (OpenType Feature File).
Pré‑requisitos
- Ter o FontForge instalado (disponível gratuitamente em fontforge.org).
- Uma fonte com glifos alternativos (por exemplo, versões inicial e final de uma letra).
- Conhecimento básico de edição de fontes (abrir, salvar, exportar).
Métodos para criar substituições contextuais
1. Usando a interface gráfica
Siga estes passos:
- Abra sua fonte no FontForge.
- Vá ao menu Element > Font Info.
- Na janela que abrir, selecione a aba Lookups (na versão em inglês) ou GSUB.
- Clique em Add Lookup. Escolha o tipo Contextual Substitution (GSUB_Type 6). Dê um nome, como "ctx_alternates".
- Adicione uma ou mais subtables. Na subtable, você define a sequência de glifos que dispara a substituição e qual glifo deve ser colocado no lugar.
- Use o botão Add para incluir cada regra: informe os glifos de entrada (ex.: "a" seguido de "space") e o glifo de saída (ex.: "a.fina").
- Após configurar, feche a janela e gere a fonte (File > Generate Fonts) no formato OpenType (.otf ou .ttf com suporte OpenType).
O FontForge oferece um painel visual para criação de regras, mas ele pode se tornar complexo para muitos casos. Por isso, o método com arquivo de features é mais flexível.
2. Usando um arquivo de features OpenType (.fea)
O padrão OpenType define uma linguagem de descrição de recursos (Adobe Feature File Syntax). No FontForge, você pode escrever as regras diretamente e importá‑las.
Exemplo de arquivo contextual.fea:
languagesystem latn dflt;
feature calt {
lookup ctx_ss {
substitute @Inicial a' @Medial by a.inicial;
} ctx_ss;
} calt;
Para importar:
- No menu Element > Font Info, aba Lookups.
- Clique em Import e selecione seu arquivo .fea.
- O FontForge interpreta as regras e cria as lookups automaticamente.
Você também pode editar o arquivo feature interno (Element > Font Info > Lookups > Feature File).
Exemplo prático: substituir "ss" por "ß" no meio da palavra
Vamos supor que você queira que a sequência "ss" seja substituída pelo glifo "ß" (eszett) apenas quando estiver entre vogais. No entanto, para simplificar, faremos uma regra que substitui "ss" por "ß" em qualquer posição (substituição simples, mas ilustra o método).
- Garanta que sua fonte contenha o glifo "ß".
- Crie uma lookup do tipo "Contextual Substitution".
- Na subtable, defina a regra: sequência de entrada "s s" e glifo de saída "ß".
- Teste com a ferramenta Preview (Shift+Ctrl+P) digitando palavras como "casa" e "osso".
Na prática, para restringir a substituição a contextos específicos, você precisa de regras mais complexas, envolvendo classes de glifos e backtracking. Consulte a documentação do OpenType para detalhes.
Dicas e boas práticas
- Teste exaustivamente: Use o "Preview" do FontForge e também aplique a fonte em programas como o Word ou o Inkscape.
- Depuração: Use a função Find Problems (Element > Find Problems) para verificar erros comuns.
- Combine com outras features: Substituições contextuais podem trabalhar junto com ligaturas (liga) e formas alternadas (salt).
- Documente suas regras: Mantenha um arquivo .fea com comentários para facilitar futuras edições.
- Considere a compatibilidade: A maioria dos navegadores e aplicativos modernos suporta OpenType. Sempre exporte no formato .otf ou .ttf com a tabela GSUB.
Perguntas frequentes (FAQ)
Posso usar substituições contextuais em fontes existentes?
Sim, desde que você tenha permissão (licença) para editar a fonte. O FontForge permite abrir a fonte e adicionar novas regras GSUB.
Quais navegadores suportam substituições contextuais?
Chrome, Firefox, Safari e Edge têm suporte completo a OpenType. No entanto, a ativação da feature depende do aplicativo; em navegadores, você pode usar CSS com font-feature-settings: "calt" 1;.
Qual a diferença entre substituição contextual e ligadura?
Ligaduras substituem dois ou mais glifos por um único glifo (ex.: "fi" → fi). Substituições contextuais trocam um glifo por outro dependendo da vizinhança, mantendo o número de caracteres.
Como exportar a fonte com as regras?
No FontForge, vá em File > Generate Fonts, escolha o formato OpenType (.otf ou .ttf) e certifique‑se de marcar a opção "OpenType" nas opções de exportação.
Conclusão
As substituições contextuais são uma ferramenta poderosa para criar fontes expressivas e funcionais. Com o FontForge, você pode implementá‑las de forma visual ou via código, adaptando‑se a diferentes níveis de complexidade. Pratique com exemplos simples e avance para regras mais sofisticadas. O resultado final valerá o esforço.