A faixa do sinal: como alinhar Oʻ e Gʻ · Ipak

> Por que aparecia um buraco na palavra GʻALLA e como ensinamos a fonte a medir o vão apenas onde o sinal está.

[Oʻzbekcha](https://ipak.xronocode.com/maqolalar/mark-band/index.md) · [English](https://ipak.xronocode.com/en/maqolalar/mark-band/index.md) · [Русский](https://ipak.xronocode.com/ru/maqolalar/mark-band/index.md) · [Español](https://ipak.xronocode.com/es/maqolalar/mark-band/index.md) · [Português](https://ipak.xronocode.com/pt/maqolalar/mark-band/index.md) · [中文](https://ipak.xronocode.com/zh/maqolalar/mark-band/index.md)

[Artigos] · [Etapa 4 · A fonte de trabalho]

# A faixa do sinal: como alinhar Oʻ e Gʻ

Por que aparecia um buraco na palavra GʻALLA e como ensinamos a fonte a medir o vão apenas onde o sinal está.

O sinal ʻ é pequeno. Ele fica no alto, no nível do terço superior da letra maiúscula, e abaixo dele há vazio até a linha de base. Enquanto o sinal está cercado de letras redondas, isso quase não se nota. Mas coloque-o entre G e A — e na palavra **GʻALLA** aparece um buraco.

Neste artigo: como lidamos com isso na fonte de trabalho Ipak Davlat e por que o modo usual de alinhamento não funciona aqui. Os ajustes de distância para pares específicos de letras chamam-se kerning.

![GʻALLA MAʼNO: sem o nosso kerning e com ele](https://ipak.xronocode.com/images/p/mark-band/kern-before-after.png)

*GʻALLA MAʼNO no Ipak Davlat Regular: sem o nosso kerning e com ele. Ipak; composto com HarfBuzz (hb-view): montagem do Ipak Davlat Regular sem o nosso kerning e a final; fonte — SIL OFL 1.1 · CC BY 4.0 · Ipak*

## De onde vem o buraco

Olhe a linha de cima da imagem. O sinal ʻ está afastado do G; em seguida vem mais um vão até o A. O A é pontudo no alto e também dá muito ar. Os três vazios somam-se num só, e a palavra se parte em «G» e «ʻALLA».

Com o tutuq ʼ em MAʼNO é o mesmo: o A é aberto no alto à direita, o ʼ é estreito, o N começa com haste vertical. Entre A e N forma-se uma fenda maior que entre quaisquer outras letras da palavra.

Do problema na composição uzbeque alerta o panorama do type.today: o intervalo entre O ou G e o sinal ʻ não pode ser grande demais, senão aparecem buracos no texto.

**Nota.** O sinal tutuq (tutuq belgisi, ʼ, U+02BC) é o sinal separador do alfabeto latino uzbeque. Pelas regras de ortografia de 1995 (ponto 32), ele mostra que a vogal antes dele é pronunciada longa ou que a vogal depois dele é pronunciada separada da consoante anterior: maʼno, taʼlim, sanʼat. O sinal ʻ (U+02BB) é parte das letras Oʻ e Gʻ. Pelo Unicode, ambos são letras modificadoras, não aspas.

## Como as distâncias costumam ser definidas

A verificação computacional de pares que escrevemos para o Ipak funciona como os «espaçadores» automáticos — programas que definem os afastamentos. O par de letras é fatiado em linhas horizontais, da linha de base ao topo da maiúscula. Em cada linha mede-se a distância branca da borda direita da letra esquerda à borda esquerda da direita. A média de todas as linhas é o vão óptico do par. Óptico porque é assim que o olho o avalia, não a régua.

As reentrâncias profundas, como dentro do L ou sob a barra do A, são cortadas: o olho não as percorre até o fundo.

O padrão de referência é o vão do par HH. Duas hastes retas são o caso mais simples, e consideramos corretos os afastamentos da base.

## Por que isso não funciona para o sinal

O sinal ocupa apenas a parte de cima da linha. Abaixo dele não há nada. Se a medição for pela altura toda, a média inclui o vazio sob o sinal — e ele é grande. O algoritmo vê um «vão enorme» e encosta o sinal ou até o desliza sob a letra vizinha.

A nossa primeira versão fez exatamente isso: o sinal invadiu o A. Suavizamos a regra — e o sinal «pulou para o outro lado»: encostou-se ao A e passou a ser lido como parte dele, não do G. O leitor via «G ʻA».

Os dois erros vêm de uma só causa: o vão era medido onde o sinal não está.

## A faixa do sinal

A solução é medir apenas na faixa onde o sinal realmente está. O sinal ʻ no Ipak Davlat ocupa os 38% superiores da altura da maiúscula. É essa faixa que tomamos.

![A faixa do sinal: os 38% superiores da altura da maiúscula](https://ipak.xronocode.com/images/p/mark-band/band-diagram.png)

*A faixa do sinal: os 38% superiores da altura da maiúscula. O vão entre letras e sinal é medido apenas nela. Ipak; Ipak Davlat Regular, marcação pelas métricas da fonte; fonte — SIL OFL 1.1 · CC BY 4.0 · Ipak*

Na faixa vê-se o que o olho vê na altura do sinal: a borda direita do G, o sinal, a borda esquerda do A. O vazio sob o sinal não entra no cálculo.

Para as minúsculas, a faixa é mais larga: do meio da altura da minúscula x até o topo da maiúscula. As minúsculas são mais baixas, e o sinal sobressai sobre elas.

## A regra assimétrica

A segunda descoberta: o sinal precisa de distâncias diferentes dos dois lados.

**O ʻ pertence a O e G.** Não é um símbolo à parte, e sim parte da letra. Por isso, junto deles o sinal fica denso: a meta é 0,45 do vão comum de HH. E até a letra seguinte, o vão comum, 1,0. Assim, Gʻ se lê como uma letra só, e o sinal não «pula» para o A.

**O ʼ separa sílabas.** Ele não é de ninguém: não pertence nem à letra da esquerda nem à da direita. Por isso fica exatamente no meio, 0,8 do vão de cada lado.

Duas limitações mais protegem dos extremos. No ponto mais estreito, o sinal não chega a menos de 0,4 do vão de HH do vizinho. E nenhum par da fonte chega a menos de 5% do corpo — é a proteção contra toques. Corpo é o tamanho da fonte; 5% do corpo são 5 mm para letras compostas em 10 cm.

A nossa medição, antes e depois, Ipak Davlat Regular, em frações do vão de HH, na faixa do sinal:

| Par | Sem o nosso kerning | Com ele |
| --- | --- | --- |
| G → ʻ | 1,16 | 0,69 |
| ʻ → A | 1,12 | 0,99 |
| A → ʼ | 1,21 | 0,80 |
| ʼ → N | 1,10 | 0,81 |

G e o sinal não chegaram à meta de 0,45 — a proteção contra toques os parou. Assim foi planejado: melhor um pouco mais solto do que grudado em corpo pequeno.

**Nota.** Kerning é o ajuste de distância para um par específico de sinais. Ele fica guardado dentro do arquivo da fonte, na tabela de serviço GPOS (que cuida da posição dos sinais), e é aplicado automaticamente: o programa de composição não precisa configurar nada. Os nossos ajustes foram adicionados ao kerning da base como um bloco à parte e não alteram os pares originais da Overpass.

## Cirílico: a mesma lógica, outro padrão

A outra metade do trabalho é o cirílico. Na Overpass ele quase não recebia kerning: ГЛ, ТЛ, УА ficavam espaçadas, e para Қ Ғ Ҳ não havia ajuste nenhum.

Aqui comparamos o Ipak Davlat com cinco fontes abertas profissionais: Fira Sans, Inter, Noto Sans, Onest e IBM Plex Sans. Ressalva importante: não copiamos os valores de kerning delas. Medíamos o quão compactamente cada uma coloca o par em relação ao seu HH, tomávamos a mediana e ajustávamos o Ipak Davlat a ela. Mediana é o meio da série: metade das fontes coloca o par mais apertado, metade mais solto. Ela não deixa que uma única fonte fora do comum desvie o resultado.

![Palavras uzbeques em cirílico: o kerning da base e o nosso](https://ipak.xronocode.com/images/p/mark-band/cyrillic-before-after.png)

*Palavras uzbeques em cirílico: o kerning da base e o nosso. Ipak; composto com HarfBuzz (hb-view); fonte — SIL OFL 1.1 · CC BY 4.0 · Ipak*

Duas regras simplificaram o trabalho.

**Gêmeos.** As letras cirílicas iguais às latinas na forma (А, В, Е, К, М, Н, О, Р, С, Т, Х) são colocadas como as latinas. O par КА equivale ao par KA. Senão, a mesma palavra pareceria diferente nos dois sistemas de escrita.

**Caudas.** A letra com cauda abaixo da linha — Қ, Ҳ, Ц, Щ — é colocada como a sua base: Қ como К, Ҳ como Х. A cauda fica abaixo da linha e não entra no vão.

Aqui aconteceu um erro, encontrado na verificação. A proteção contra toques media no começo apenas acima da linha, e as caudas de Қ e Ҳ quase tocavam o А vizinho. A medição foi estendida para baixo, até as caudas, e o problema sumiu.

Resultado: 784 pares no Regular e 802 no Bold. A prova detalhada «antes/depois» está abaixo.

![Prova de trabalho «antes/depois» da montagem](https://ipak.xronocode.com/images/p/mark-band/davlat-proof-regular.png)

*Prova de trabalho «antes/depois» da montagem: alfabeto latino com os sinais e cirílico, maiúsculas e minúsculas. Ipak; prova de trabalho da montagem; fonte — SIL OFL 1.1 · CC BY 4.0 · Ipak*

## A disputa sobre o toque

Na verificação houve uma observação: o sinal em Gʻ quase toca o G, cerca de 1% do corpo. Se isso se confirmasse, a fonte não poderia ser lançada.

Verificamos pelo contorno: renderizamos o par em raster, com o corpo igual a 2000 pontos, e medimos a distância mais curta entre a tinta do G e a do sinal. Deu 145 unidades no Regular e 119 no Bold — 7,3% e 6,0% do corpo. Uma medição independente, por outro método, chegou a 7,8% e 7,0%. O limiar proposto na própria observação, 60–80 unidades, foi cumprido com folga. A observação foi rejeitada com números. A proximidade do sinal ao G não é erro aqui: é de propósito, para que Gʻ se leia como uma letra só.

## O que se segue disso

O sinal ʻ não é uma aspa, e alinhá-lo como aspa não se deve. Três conclusões que servem a quem faz uma fonte para o uzbeque:

Medir o vão onde o sinal está, não pela altura toda da linha.

O ʻ pende para a sua letra; o ʼ fica no meio: a regra é assimétrica.

A proteção contra toques vale mais que um número bonito: em corpo pequeno, grudar é pior que sobrar ar.

## Fontes

O conselho sobre o vão entre O/G e ʻ — А. Шайдуллина, type.today, 04.12.2023.

Nomes e números de U+02BB e U+02BC — tabela do Unicode Spacing Modifier Letters.

A descrição do recurso kern — especificação OpenType, Microsoft Typography.

O método e os números são nossos: a medição foi feita com HarfBuzz e FreeType na montagem do Ipak Davlat v0.1, outubro de 2026.

Fontes de referência: Fira Sans, Inter, Noto Sans, Onest, IBM Plex Sans (todas sob SIL OFL 1.1).

Links:

А. Шайдуллина. Uzbek. type.today, 04.12.2023. [https://type.today/en/journal/uzbek](https://type.today/en/journal/uzbek)

Unicode: Spacing Modifier Letters (U+02B0–U+02FF). [https://www.unicode.org/charts/PDF/U02B0.pdf](https://www.unicode.org/charts/PDF/U02B0.pdf)

OpenType: o recurso kern (Microsoft Typography). [https://learn.microsoft.com/en-us/typography/opentype/spec/features_ko](https://learn.microsoft.com/en-us/typography/opentype/spec/features_ko)

HarfBuzz — motor de layout de texto. [https://harfbuzz.github.io/](https://harfbuzz.github.io/)

Fira Sans. [https://github.com/mozilla/Fira](https://github.com/mozilla/Fira)

Inter. [https://github.com/rsms/inter](https://github.com/rsms/inter)

Noto Sans. [https://github.com/notofonts/latin-greek-cyrillic](https://github.com/notofonts/latin-greek-cyrillic)

Onest. [https://github.com/simpals/onest](https://github.com/simpals/onest)

IBM Plex. [https://github.com/IBM/plex](https://github.com/IBM/plex)

---
Página: https://ipak.xronocode.com/pt/maqolalar/mark-band/ · SIL Open Font License 1.1 · avenex@xronocode.com
