# Kerning

Na tipografia, o kerning é o processo de ajustar o espaçamento entre caracteres numa fonte proporcional, por norma, com o intuito de obter um resultado visualmente agradável.
Kerning refere-se ao espaçamento entre os caracteres de uma fonte. Sem kerning, cada caractere ocupa um bloco de espaço e o próximo caractere é impresso depois dele. Quando o kerning é aplicado a uma fonte, os caracteres podem se sobrepor verticalmente. Isto não significa que os caracteres realmente se toquem, mas permite que parte de dois caracteres ocupe o mesmo espaço vertical.
Por exemplo, quando os caracteres A e V são colocados um ao lado do outro, podem ocupar menos espaço total se forem sobrepostos, ainda que sem se tocar. Isto acontece porque a parte direita do A e a parte esquerda do V se encaixam. Se o kerning for aplicado aos dois caracteres, é possível desenhar uma linha vertical diretamente para baixo, começando na parte superior esquerda do V passando pela parte inferior direita do A.
O Kerning é útil porque permite que mais texto seja colocado dentro de uma determinada quantidade de espaço. Isso permite que artigos mais longos sejam colocados em jornais e revistas com espaço limitado.
É também visualmente mais natural porque, ao escrever à mão, o ser humano, por norma, tem tendência a sobrepor os caracteres manuscritos.
Muitos programas de edição de texto, bem como editores de imagem, como o Adobe Photoshop, incluem opções de ajuste de kerning. Estes programas, geralmente, incluem uma configuração de kerning que permite determinar com que precisão os caracteres se encaixam.
O Kerning ajusta o espaço entre os formulários de letras individuais, enquanto o rastreamento (espaçamento entre letras) ajusta o espaçamento uniformemente em um intervalo de caracteres. Em uma fonte bem definida, os espaços em branco bidimensionais entre cada par de caracteres têm uma área visualmente semelhante.
O termo relacionado kern indica uma parte de uma letra de tipo que ultrapassa a borda do bloco de tipos.

## Composição de metais

A fonte da palavra kern é da palavra francesa carne, que significa "ângulo de projeção, pena de uma caneta". O termo francês se originou do latim cardo, cardinis, que significa "dobradiça". Nos dias em que todo tipo era de metal fundido, partes de uma espécie que precisavam se sobrepor a letras adjacentes simplesmente ficavam penduradas na borda da lesma de classificação. O pedaço de metal pendurado na borda foi chamado de kern. Naquela época, a palavra kerning se referia apenas à fabricação dos tipos com kerns, enquanto o ajuste do espaço entre as letras durante a composição era chamado de espaçamento entre letras ou espaçamento entre letras.
Como esse método não era adequado para alguns pares de letras, foram fornecidas ligaduras para essas combinações de glifos, como o francês L ' ou as combinações ff, fi e ffi.

## Tipografia digital

Na tipografia de metais, o kerning era trabalhoso e caro, porque as matrizes tinham que ser fisicamente modificadas. Portanto, era empregado apenas em combinações de letras que mais necessitavam, como VA ou AV. Com a chegada das fontes digitais, ficou muito mais fácil usar muitas combinações de glifos.

### Valores de Kerning

Na tipografia digital, o kerning geralmente é aplicado aos pares de letras como um número pelo qual o espaçamento de caracteres padrão deve ser aumentado ou diminuído: um valor positivo para um aumento, um valor negativo para uma diminuição. O número é expresso em unidades de fonte, sendo uma unidade uma certa fração de um em (um em é o tamanho do tipo usado atualmente). Fontes diferentes podem usar unidades diferentes, mas os valores comuns são 1000 e 2048 unidades/em. Assim, para 1000 unidades/em, um valor de kerning de 15 significa um aumento no espaçamento de caracteres em 0,015 do tamanho do tipo atual. (As unidades de kerning para uma determinada fonte são as mesmas que as usadas para expressar as larguras de caracteres nessa fonte.)
A maioria dos ajustes de kerning é negativa, e os ajustes negativos são geralmente maiores que os positivos. Os ajustes para diferentes pares em uma determinada fonte podem variar de 2 minúsculos a mais de 100 (quando expressos como 1000 unidades/em). Os ajustes para um determinado par variam muito de uma fonte para outra.
Crenagem negativo é amplamente utilizado para ajustar as letras maiúsculas, tais como T, V, W, e Y mais próximo de algumas outras letras maiúsculas em ambos os lados, especialmente A, e para alguns casos inferiores letras no lado direito, tal como as combinações de Ta, Te e To. É também utilizado para encaixar um período (ponto final) ou uma vírgula mais perto para estes e para F e P, bem como para as letras minúsculas r, v, w, y. Algumas outras combinações que usam kerning negativo são FA, LT e LY, e letras como A, L eh seguidas por aspas.
O kerning positivo é usado principalmente em conjunto com caracteres especiais e pontuação (por exemplo, a letra minúscula f seguida por parênteses à direita ou aspas). Dependendo da fonte, também pode ser necessário um pequeno kerning positivo para letras acentuadas e para pares como Bo, Dw e TY .
A tabela abaixo contém alguns pares de kerning exemplificativos e seus valores. Esses valores são baseados em 1000 unidades/em e os pares de kerning são ordenados do valor mais negativo ao mais positivo. As amostras são coletadas das tabelas de kerning da fonte Minion Pro. Em outras fontes, o kerning pode ser muito diferente.
| A” −146 | W. −144 | P, −139 | L” −135 | VA −123 | F. −110 | YA −104 | Te −98 |
| AV −97 | Vr −86 | PA −85 | m” −82 | a” −79 | FA −78 | UA −78 | w. −73 |
| Yt −72 | LT −64 | r, −63 | Xv −54 | Ku −46 | D, −40 | D” −36 | OA −36 |
| Hv −33 | T: −32 | DY −30 | c” −25 | my −23 | Ru −21 | aj −19 | bv −16 |
| Sp −14 | ro −13 | SR −12 | lp −12 | ot −11 | tt −10 | am −9 | fe −9 |
| vo −8 | xc −8 | yo −8 | Ix −6 | e, −6 | st −5 | he −4 | Fw −3 |
| us −3 | Ak +3 | la +3 | Oj +5 | il +5 | CO +7 | bc +9 | Xf +10 |
| fr +10 | F” +12 | wb +12 | YW +13 | So +14 | Co +15 | VT +16 | cv +16 |
| Dv +17 | OC +18 | Bc +20 | RX +20 | T” +22 | gy +24 | r: +24 | XA +25 |
| ry +29 | w; +31 | f? +76 | f” +121 | | | | |
Quais letras precisam ser colocadas em kern depende de quais idiomas a fonte deve ser usada. Como algumas combinações de letras não são usadas em palavras normais em nenhum idioma, o kerning não é necessário. Fontes não proporcionais (monoespaçadas) não usam kerning, pois seus caracteres sempre têm o mesmo espaçamento.

### Tabelas Kerning

Em formatos de fonte mais antigos, como o TrueType da Microsoft, os valores de kerning são especificados em uma tabela kern simples, em que cada entrada consiste em um par de caracteres e seu valor de kerning. (A Apple, no entanto, estendeu a tabela kern com recursos mais complexos, incluindo kerning contextual e baseado em classe, que foram encontrados mais tarde no OpenType, embora não da mesma forma exata.) As fontes TrueType normalmente têm várias centenas de pares., mas alguns têm mais de mil.
Como o OpenType é um superconjunto de tabelas TrueType kern, ainda há suporte para fontes TrueType compactadas como OpenType; no entanto, fontes OpenType baseadas em PostScript (CFF) não possuem essa opção. O OpenType introduziu uma maneira nova e uniforme de especificar, entre outras coisas, o kerning, por meio da Tabela de Posicionamento de Glifos (GPOS). Os lançamentos de fontes mais recentes da Adobe não possuem mais tabelas de kern, mas apenas especificam o kerning via GPOS.
Como uma fonte OpenType pode incluir milhares de glifos e, consequentemente, um grande número de pares de caracteres que precisam de kerning, as fontes OpenType podem ter um sistema elaborado de tabelas e subtabelas, projetado para minimizar o espaço geral de armazenamento. (O Kerning é tratado como parte de uma ampla variedade de novos recursos de posicionamento de glifos armazenados no GPOS. ) O sistema é baseado no conceito de classes de glifos: em vez de uma tabela unidimensional em que cada entrada corresponde a um par de caracteres, existem tabelas bidimensionais em que cada entrada corresponde a um par de classes de glifos. Uma classe inclui vários caracteres cujo contorno à direita (e orientação lateral direita) é idêntico para fins de kerning ou vários caracteres cujo contorno à esquerda (e orientação lateral esquerda) é idêntico. Todos os pares de caracteres em que o primeiro é da primeira classe e o segundo é da segunda classe exigirão o mesmo valor de kerning, portanto, esse valor precisa ser especificado apenas uma vez na tabela. As linhas na tabela bidimensional correspondem às classes de primeiro caractere e as colunas correspondem às classes de segundo caractere. O valor de kerning para um determinado par de caracteres é encontrado na tabela na interseção das classes às quais eles pertencem.
Este sistema é muito econômico, mas é necessariamente limitado. Por exemplo, muitas das classes podem ser bem pequenas. Além disso, uma fonte com muitos tipos de glifos pode exigir várias dessas tabelas. Por fim, permanecem muitos pares que não podem ser representados por meio de classes. Para eles, são fornecidas tabelas unidimensionais mais simples: cada tabela é para um caractere específico que é o primeiro em muitos pares, e as entradas contêm os caracteres que são o segundo nesses pares, juntamente com os valores de kerning correspondentes.
Aqui estão alguns exemplos de classes de glifo na fonte Minion Pro para o primeiro caractere em um par de kerning: (dilu), (hmn), (jq), (bop), (vwy), (DOQ), (HI), (VW); e para o segundo caractere em um par: (fimnr), (hkl), (jptu), (cdeoq), (vwy), (CGOQ), (BDEFHIKLNPR).
Uma categoria de letras que se presta bem ao kerning baseado em classe são aquelas com marcas diacríticas. Essas letras podem ser adicionadas à classe da letra base e podem permanecer juntas, sejam eles o primeiro ou o segundo caractere de um par: (a à â), (e é ê), etc. Uma letra não pode ser incluída na classe se seu kerning for diferente dos outros em determinados pares (por exemplo, Yá x Yä).
A maioria dos sistemas modernos de publicação para escritório e desktop suportam os recursos OpenType e, portanto, o kerning baseado em classe.

### Kerning automático e manual

O kerning automático refere-se ao kerning aplicado automaticamente por um programa, em oposição a nenhum kerning, ou ao kerning aplicado manualmente pelo usuário. Existem dois tipos de kerning automático: métrico e óptico . Com o kerning métrico, o programa usa diretamente os valores encontrados nas tabelas de kerning incluídas no arquivo de fonte. Atualmente, a maioria dos sistemas com recursos tipográficos fornece esse tipo de kerning. O kerning óptico, por outro lado, está disponível apenas nos sistemas mais avançados. Com o kerning óptico, o programa usa um algoritmo para calcular, a partir de seus contornos, o espaçamento ideal para cada par de caracteres consecutivos. Nos dois tipos de kerning automático, o sistema geralmente permite que o usuário especifique um tamanho mínimo de fonte para aplicar o kerning, se o usuário achar que o kerning é desnecessário para tamanhos de fonte menores.
Com o kerning métrico, em um texto que usa várias fontes, o programa deve decidir qual tabela de kerning usar quando dois caracteres consecutivos pertencerem a fontes diferentes - a tabela da fonte do primeiro caractere ou do segundo - ou para evitar o kerning completamente . Nesse caso, o kerning óptico é preferível. Uma situação comum ocorre quando o texto em itálico termina com um símbolo romano (parênteses ou aspas à direita, ponto de interrogação etc.) e a inclinação da última letra entra em conflito com o símbolo.
O kerning manual, disponível em alguns sistemas, permite que o usuário substitua o kerning automático e aplique qualquer valor de kerning diretamente a um par de caracteres em um determinado local do texto. Quando não disponível, esse recurso pode ser simulado usando, para esses dois caracteres, a função que modifica o espaço entre os caracteres em um bloco de texto (geralmente chamado de rastreamento).
Quando empregado por uma pessoa qualificada, o kerning manual geralmente oferece melhores resultados do que o kerning óptico; por exemplo, alguns caracteres que podem parecer muito espaçados em uma comparação algorítmica podem parecer muito distantes para um leitor humano, especialmente quando o único elemento de um glifo "muito próximo" é uma marca diacrítica. O kerning manual pode até ser melhor que o kerning métrico incorporado na tabela de kerning pelo designer da fonte, pois essas tabelas geralmente apresentam erros ou omissões, ou a diferença pode ser simplesmente uma questão de preferência pessoal.

### Kerning contextual

O kerning contextual refere-se ao ajuste posicional que depende de mais de dois glifos consecutivos. Por exemplo, o espaçamento de um determinado glifo pode depender não apenas do glifo anterior (como no kerning comum), mas também do seguinte. Embora raramente seja implementado em documentos comuns, o kerning contextual é uma preocupação em tipografia de qualidade.
Um exemplo de uma situação que exige kerning contextual na fonte Minion Pro é a sequência de três caracteres f.” (F, ponto, entre aspas), como geralmente é encontrado no final de uma cotação. Usando as tabelas de kerning da fonte, as aspas estão muito próximas do f, embora sem o período entre elas o espaçamento seja adequado. O período, em outras palavras, reduz o espaçamento em vez de aumentá-lo. A explicação é a seguinte: sem o período, seu kerning é 121 positivo (expresso em 1000 unidades / em). A largura do período é 228, mas o kerning entre f e o período é − 5 e entre o período e as aspas − 138. O total é 85 positivo, em oposição ao 121 original: uma perda líquida de 36 unidades, o que explica por que as aspas estão agora mais próximas de f . O kerning contextual reconheceria a sequência de três caracteres e aumentaria um ou ambos os espaços entre caracteres. Existe um problema semelhante com as letras F, P, T, V, W e Y ; com vírgula ao invés de ponto; ou com aspas simples e não duplas.
O kerning contextual é suportado pelo formato de fonte OpenType, mas poucos designers de fontes o implementam e, provavelmente, nenhum sistema de editoração eletrônica pode utilizá-lo no momento. Quando importante, a solução para um usuário é empregar kerning manual.

### Kerning de subscritos e sobrescritos

Enquanto o padrão matemático OpenType não inclui suporte para kerning de subscritos ou sobrescritos, a implementação da Microsoft adiciona extensões para oferecer suporte a esse recurso no Office 2007.

### Ferramentas Kerning

Os editores de fontes permitem que o usuário modifique as propriedades de uma fonte, incluindo sua tabela de kerning (se a licença da fonte permitir). Eles conseguem isso modificando a tabela encontrada no arquivo de fonte real. O usuário pode alterar o valor de kerning em pares existentes ou adicionar novos pares.
Alguns sistemas de editoração eletrônica permite que o usuário altere ou adicione pares de kerning sem modificar o próprio arquivo de fonte. O sistema apenas aplica ao documento do usuário os novos valores de kerning, no lugar dos valores encontrados no arquivo de fonte.
Seja modificando o arquivo de fonte com um editor de fontes ou substituindo-o em um sistema específico, o usuário é limitado aos recursos de kerning existentes. Portanto, se precisar de recursos como kerning óptico, ou kerning contextual ou kerning de um par de caracteres que pertençam a fontes diferentes, e se o sistema não tiver esses recursos, outros meios deverão ser empregados.
Alguns sistemas de editoração eletrônica permitem que os desenvolvedores criem plug-ins (extensões que executam uma variedade de funções que o próprio sistema não possui), e esse recurso também foi usado para kerning. Em geral, esses plug-ins permitem que o usuário aplique uma alteração de kerning automaticamente a um determinado par de caracteres em todo o documento, em vez de aplicá-la pesquisando manualmente esses pares. Até o momento, apenas os recursos básicos de kerning foram implementados por meio de plug-ins, e não está claro se os recursos mais avançados podem ser efetivamente implementados dessa maneira.
Em vez de adicionar funcionalidade a um sistema de editoração eletrônica, uma abordagem diferente é exportar o documento e processá-lo fora desse sistema. Quaisquer recursos de kerning podem ser aplicados ao documento usando ferramentas que variam de editores de texto comuns a programas especialmente desenvolvidos para esta tarefa. O documento modificado é então importado de volta para o sistema de editoração eletrônica. Muitos sistemas permitem essa operação, convertendo o documento com funções de importação e exportação ou tornando seu formato interno de documento um padrão aberto. O benefício dessa abordagem é que algumas funções complexas de digitação que podem ser difíceis de implementar por meio de plug-ins (kerning em particular) podem ser relativamente fáceis de implementar por meio de ferramentas separadas.

### Kerning em navegadores

A propriedade CSS text-rendering: optimizeLegibility; habilita o kerning no Firefox, Chrome, Safari, Opera e no Navegador Android . Outra propriedade CSS, font-feature-settings, também permite o kerning no Internet Explorer 10+, Chrome, Edge, Firefox e no Navegador Android . Também existe uma propriedade de CSS3 proposta, font-kerning, mas ela é suportada apenas no Firefox (prefixado com -moz-), Chrome e Opera (prefixado com -webkit- nos dois) e na Internet Explorer a partir da versão 10. O rascunho do CSS3 sugere que o kerning sempre deve ser ativado para fontes OpenType.

## Percepção

A percepção humana do kerning pode variar com o espaçamento entre palavras e entre palavras durante a leitura. Um resultado visualmente agradável, mesmo sem "controle de kerning", pode ser alcançado com algum controle do espaço entre as letras.
Por exemplo, em páginas com CSS1, um namoro padrão de volta a 1996, a propriedade letter-spacing (ilustrado) oferece algum controle para perdido ou reforçada "kerning percepção" — kerning podem ser simuladas com espaçamento não uniforme entre as letras. O CSS3 padrão (programado para 2014) inclui a propriedade kerning de fonte, que permite um controle completo do kerning.
Por razões um pouco mais técnicas, alguns propuseram substituir (pelo menos alguns) GPOS do estilo OpenType por glifos espaçadores usando a Tabela de Substituição de Glifos (GSUB) da OpenType.