Qual é a diferença prática entre um 'glifo' e um 'personagem'?

26

Vi essa pergunta na proposta do site Typography e me incomodou por não saber a resposta. Eu sempre tratei 'glifo' e 'caráter' como intercambiáveis.


Depois de ler uma explicação na página Modelo de codificação de caracteres Unicode , meu entendimento é aproximadamente o seguinte:

  • Os caracteres são definidos pelo seu significado na linguagem, glifos, pela aparência . Portanto, a ligadura para combinar esteticamente fi é um glifo, mas dois caracteres.

Então, minha crença é (por favor, corrija-me se estiver errado) que a diferença prática seria:

  • Analisadores de texto que não estão interessados ​​na estética do texto lerão glifos como seus respectivos caracteres. Tão:
    • Se você copiar e colar texto contendo glifos em um editor de texto sem formatação, os glifos serão convertidos em seus respectivos caracteres (um glifo de ligadura se tornará fe i)
    • Qualquer sistema automatizado bem elaborado com base na análise de texto (por exemplo, rastreadores de mecanismo de pesquisa, leitores de tela, corretores ortográficos) interpretaria os glifos como seus respectivos caracteres.
    • Um caractere pode ter muitos glifos ou conjuntos de glifos. Quero dizer que um glifo pode ter apenas um caractere, mas isso claramente não está certo, pois há um exemplo no artigo vinculado de 3 glifos e conjuntos de glifos que parecem corresponder a um caractere e a um conjunto de caracteres. Não vejo bem como isso poderia funcionar: certamente isso significa que haverá inconsistência ou ambiguidade na maneira como esses glifos são interpretados, variando de acordo com o interpretador. (ou varia por idioma ou fonte?)
    • Enquanto os navegadores de glifos (por exemplo, o do Illustrator) contêm o conjunto completo de fontes, os mapas de caracteres (por exemplo, o mapa de caracteres do Windows) contêm apenas caracteres, não glifos com vários caracteres, como ligaduras (algo que eu nunca havia notado antes)

Sinto que estou quase lá, mas claramente entendi mal algo em algum lugar ao longo da linha: não apenas a coisa "Um glifo com vários caracteres", mas também, copiar e colar o comportamento com ligaduras não é exatamente o que eu esperava:

  • Copie a ligadura do Illustrator para esta caixa de entrada: cola como fi(dois caracteres) conforme o esperado.
  • Cole o código HTML para it ( fi) - exibido como a ligadura quando não estiver em um bloco de código (fi - que nesta fonte não se parece muito com uma ligadura, mas você verá um se tentar selecionar apenas metade ) e o código quando em um bloco de código ( fi), conforme o esperado.
  • Copie e cole a ligadura renderizada sem bloco de código de volta na caixa de entrada: cola como o caractere da ligadura e renderiza como a ligadura, independentemente de estar ou não em um bloco de código (fi e ). Da mesma forma, as palavras que contêm: ajuste incorreto ( fit misfits) cola como ajuste incorreto ( fit misfits). Talvez dependa se o local em que está sendo colado compreende a codificação usada?

Quão errado está minha compreensão disso? Alguém pode me corrigir: declarando uma definição clara da diferença entre glifos e caracteres (se o meu está errado ou pode ser melhorado) e dar exemplos mais claros / precisos do que o meu do que isso significa na prática ?

user56reinstatemonica8
fonte
2
Torna-se muito mais complicado quando você tem scripts como árabe, onde você combina caracteres.
Reinstate Monica - M. Schröder
11
@ MartinSchröder +1 Soa como a frase de abertura de uma excelente resposta ... :)
user56reinstatemonica8

Respostas:

4

Os glifos se relacionam com a forma como o texto é renderizado, os caracteres com a forma como ele é interpretado. Quando você copia e cola, o aplicativo de origem geralmente oferece uma escolha de vários formatos. O texto sem formatação decomporá a ligadura em f e i, o formato HTML pode traduzi-lo para a entidade char que você citou ou também decompor em f e i.

Em geral, a relação entre caracteres e glifos é n: m. Nos idiomas índicos, alguns caracteres se dividem em dois glifos que são colocados em locais diferentes da palavra. Em latim, o mais próximo dessa situação seria render é como dois glifos (e e ´). Em árabe, cada caractere possui glifos diferentes, dependendo de sua posição em uma palavra: inicial, intermediária, final ou isolada.

A tradução de caracteres para glifos é específica para cada aplicativo e os recursos tipográficos que ele suporta. Para o texto em latim, essa tradução costumava ser simples, mas as fontes OpenType introduziam recursos adicionais como ligaduras, swashes, formas alternativas, letras maiúsculas etc.

Por motivos práticos, você só se preocupa com glifos quando implementa como um aplicativo renderiza texto, ou quando cria uma fonte ou quando deseja aplicar um recurso OpenType que substitui alguns glifos por outros (por exemplo, ligaduras). Caso contrário, os pontos de código Unicode são seus amigos.

user322483
fonte
Olá user322483, bem-vindo ao GDSE e obrigado pela sua resposta. Se você tiver alguma dúvida, consulte a Central de Ajuda ou envie um ping para um de nós no Chat de design gráfico quando sua reputação for suficiente (20). Continue contribuindo e aproveite o site!
Vincent
11
Você escreve "Em árabe, cada caractere possui glifos diferentes, dependendo de sua posição em uma palavra: inicial, intermediária, final ou isolada". <--- Eles não seriam personagens diferentes. O inglês tem A e a, mas na computação, A e a são caracteres diferentes. cada glifo é mapeado para um código diferente. O hebraico tem atrito e atrito final (a letra atrito no final de uma palavra parece diferente) e tenho certeza de que é denominada como um caractere diferente na computação.
barlop
14

Não acho que seu entendimento esteja incorreto, você está apenas vendo sistemas que tentam ajudar o usuário colando o que eles acham que desejam. Como algumas ligaduras ('fi', 'fl') são bastante comuns fora dos sistemas de digitação, o software reconhece que o usuário provavelmente não inseriu esse glifo, mas outro aplicativo transformou seus caracteres digitados.

Em resumo: caráter refere-se a uma unidade linguística. Glifo refere-se a uma instância projetada dessa unidade, seja em maiúsculas, minúsculas, letras minúsculas, histórico ou variante estilística.

roupas comuns
fonte
Na computação, A e a são caracteres diferentes. ASCII possui 128 caracteres e o termo caractere inclui A e a como caracteres distintos.
barlop
Os engenheiros usam muitas palavras que não se alinham com os precedentes em outros setores. O seu é um bom exemplo.
19415
quem criou o termo "caractere" e "glifo" primeiro? designers gráficos ou engenheiros de computação? eu teria pensado que os computadores vieram antes do design gráfico. Mas pode haver uma indústria de impressão que precedeu o design gráfico e, em alguns aspectos, precedeu computadores discutíveis ou antecedeu computadores modernos. Acho que as pessoas que poderiam responder melhor pelo que agora é design gráfico são a indústria gráfica, mas não há troca de pilhas na indústria gráfica. Mas seria interessante saber quem pegou emprestado de quem e de que maneira é o termo Personagem.
barlop
11
A tipografia veio muito antes da engenharia de software. Por favor, poste aqui se você realizar a pesquisa e encontrar as origens. Meu palpite é que será em algum momento do século XVII. Possivelmente desde os primeiros tipógrafos em meados do século XVI.
19415
6

Há algumas respostas aqui que fornecem boas informações sobre glifos x caracteres, mas elas realmente não tratam da fonte de sua confusão com relação a copiar e colar.

Primeiro de tudo, seu entendimento é fundamentalmente correto:

Os caracteres são definidos pelo seu significado na linguagem, glifos, pela aparência . Portanto, a ligadura para combinar esteticamente fi é um glifo, mas dois caracteres.

Vale ressaltar que a lista de caracteres é definida pelo padrão Unicode, que é publicado pelo Unicode Consortium, devido ao fato de serem a autoridade na codificação de texto em um formato legível por máquina. A definição acima é essencialmente a principal diretriz que os membros do Unicode Consortium usam para determinar se alguma adição proposta ao Unicode é ou não um caractere e, portanto, digna de inclusão, ou um glifo e deve ser tratada pelos representantes de fontes.

Menciono isso porque a confusão que você experimentou acima se deveu ao fato de existirem vários caracteres de ligadura (não glifos ) no Unicode. Por exemplo, U+FB01é o caractere para a fi latura: http://unicode.org/charts/PDF/UFB00.pdf

Ter caracteres de ligadura no Unicode não é realmente o espírito da definição acima, para que tipos de coisas devem ser incluídos no padrão Unicode como caracteres, pois as ligaduras não têm um significado independente da composição de dois outros caracteres. O pessoal do Unicode está naturalmente ciente disso, e as Perguntas frequentes do Unicode sobre ligaduras admitem o seguinte:

As ligaduras existentes existem basicamente para compatibilidade e deslocamento com conjuntos de caracteres não Unicode. Seu uso é desencorajado.

A existência desse personagem é, em última análise, a fonte de sua confusão.

No software implementado corretamente, a cópia de texto deve sempre copiar os caracteres especificados, não os glifos , e é exatamente isso que está acontecendo nos seus três exemplos.

1) No primeiro exemplo, você digitou fe ipara o Illustrator, o que tornou a única ligadura glifo . Quando você selecionou e copiou o glifo renderizado, o Illustrator copiou corretamente os caracteres f( U+0066) e i( U+0069) para a área de transferência.

2) No segundo exemplo, você digitou o código HTML do caractere de ligadura ( &#64257) na caixa de entrada e obteve corretamente o glifo de ligadura que representa o caractere de ligadura (. Como o caractere subjacente é realmente o caractere de ligadura obscuro e relativamente inútil que mencionei acima, selecionar esse glifo copiará um único caractere U+FB01.

3) No terceiro exemplo, você está copiando o caractere de ligadura renderizado U+FB01que foi renderizado na parte 2, que sempre será colado como esse caractere. Sua principal confusão parece estar relacionada à diferença entre códigos e caracteres de entidade HTML, principalmente no que diz respeito à maneira como eles são renderizados dentro e fora dos blocos de código.

O código da entidade HTML &#64257;é uma sequência de 8 caracteres distintos. O renderizador HTML do seu navegador substitui esses 8 caracteres U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023pelo único caractere Unicode U+FB01, que é renderizado adequadamente. No entanto, a <code>tag em HTML desativa esse comportamento, deixando esses 8 caracteres como estão.

Ao copiar o HTML renderizado, você copia os caracteres renderizados (que são diferentes dos glifos renderizados ). Assim, quando você copia sua entidade HTML renderizada, o U+FB01caractere único é copiado para a área de transferência.

Quando você cola o U+FB01caractere novamente no HTML, nenhuma substituição precisa ocorrer, o que significa que o caractere é renderizado como uma ligadura, independentemente de estar ou não dentro de um <code>bloco.

airfrog
fonte
1

Caracteres são os que são armazenados em arquivos de texto, processados ​​por aplicativos e movidos, enquanto os glifos são sua representação visual.

Para ter uma imagem clara, vamos ver o que acontece quando um aplicativo tenta renderizar uma sequência de texto na tela (de uma maneira um pouco simplificada):

  • O aplicativo primeiro lê a sequência de texto, que é a sequência de caracteres armazenados no disco ou na memória.
  • Em seguida, ele seria enviado para um mecanismo de layout de texto, entre algumas outras propriedades, como a fonte desejada, o idioma do texto e assim por diante:
    • O mecanismo de layout de texto basicamente abre o arquivo de fonte, solicita os glifos correspondentes a cada caractere e faz alguma substituição de glifos (como substituir o glifo por fe icom o glifo de ligadura de fi) e posicionamento (como kerning).
    • No final, o mecanismo de layout possui uma sequência de glifos, suas posições entre si e um mapeamento entre os caracteres de entrada e os glifos de saída. O caractere para o mapeamento do glifo é para que ele saiba que os dois primeiros caracteres da palavra filecorrespondem dois ao primeiro glifo (a filigadura), o terceiro caractere ao segundo glifo e o quarto caractere ao terceiro glifo.
  • Uma biblioteca de renderização gráfica é então usada para "desenhar" esses glifos na tela usando formas da fonte.
  • Quando o usuário seleciona "glifos" na tela, o aplicativo consultará o mapeamento de glifo para texto fornecido pelo mecanismo de layout para descobrir qual parte do texto de entrada corresponde ao que o usuário está selecionando e enviar esse texto para a área de transferência quando o usuário copia.
  • O mesmo acontece quando o usuário insere o cursor no meio do texto e começa a digitar, o mapeamento determina onde, no texto de entrada, os novos caracteres devem ser inseridos e o texto de atualização é enviado ao mecanismo de layout para processar e redesenhar e assim por diante.
Khaled Hosny
fonte