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

Eu vi esta questão na proposta do site de tipografia e me incomodou que não “Não sei a resposta. Sempre tratei” glifo “e” caractere “como intercambiáveis.


Depois de ler uma explicação sobre o Unicode Página de modelo de codificação de caracteres , meu entendimento é aproximadamente o seguinte:

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

Então, acredito que (corrija-me se eu ” m errado) que a diferença prática seria:

  • Os analisadores de texto que não estão interessados na estética do texto lerão os glifos como seus respectivos caracteres. Portanto:
    • Se você copiar e colar texto contendo glifos em um editor de texto simples, os glifos serão convertidos em seus respectivos caracteres (a glifo de ligadura se tornaria f e i )
    • Qualquer sistema automatizado bem feito com base na análise de texto (por exemplo, rastreadores de mecanismos de pesquisa, leitores de tela, verificadores 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 um conjunto de caracteres. Não vejo como isso poderia funcionar: certamente isso significa que haverá inconsistência ou ambigüidade na forma como esses glifos são interpretados, variando por intérprete? (Ou varia por idioma ou por fonte?)
    • Embora os navegadores de glifos (por exemplo, o do Illustrator) contenham o conjunto completo de glifos de uma fonte, os mapas de caracteres (por exemplo, o mapa de caracteres do Windows) contêm apenas caracteres, e não glifos que são vários caracteres como ligaduras (algo que eu não percebi antes)

Eu sinto que estou quase lá, mas claramente não entendi algo em algum lugar ao longo da linha: não apenas a coisa “Um glifo, 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 esperado .
  • Cole o código HTML para ele () – é exibido como uma ligadura quando não está em um bloco de código (fi – que nesta fonte não se parece muito com uma ligadura, mas você” vai veja um se você tentar selecionar apenas metade), e o código quando em um bloco de código (fi), conforme o esperado.
  • Copie e cole a ligadura sem bloco de código renderizada de volta na caixa de entrada: cola como o caractere de ligadura e renderiza como a ligadura independentemente de estar em um bloco de código ou não (fi e ). Da mesma forma palavras que o contêm: fi t mis fi ts (fit misfits) cola como ajuste inadequados (fit misfits). Talvez dependa se o lugar em que está sendo colado compreende a codificação usada?

Até que ponto estou errado o meu entendimento sobre isso? Alguém pode me corrigir: afirmando um definição da diferença entre glifos e caracteres (se o meu estiver errado ou puder ser melhorado), e dar exemplos mais claros / precisos do que os meus do que isso significa na prática ?

Comentários

  • Torna-se muito mais complicado quando você tem scripts como o árabe, onde você combina caracteres.
  • @MartinSchr ö der +1 Parece a frase de abertura de uma resposta excelente … 🙂

Resposta

Glifos se relacionam a como o texto é renderizado, os caracteres a como ele é interpretado. Quando você copia & e cola, o aplicativo de origem geralmente oferece uma escolha de vários formatos. O texto simples irá decompor a fi ligatura em f e i, o formato HTML pode traduzi-la para a entidade char que você citou ou também decompor em fe 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 lugares diferentes da palavra. Em latim, o mais próximo dessa situação seria renderizar é como dois glifos (e e ´).Em árabe, cada caractere possui glifos diferentes, dependendo de sua posição dentro de uma palavra: inicial, intermediário, final ou isolado.

A tradução de caracteres para glifos é específica para cada aplicativo e os recursos tipográficos que ele suporta. Para texto em latim, esta tradução costumava ser direta, mas as fontes OpenType introduziam recursos adicionais como ligaduras, traços, formas alternativas, versaletes etc.

Por razões práticas, você só se preocupa com glifos ao implementar como um aplicativo renderiza texto ou quando você projeta 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.

Comentários

  • 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!
  • Você escreve ” Em árabe, cada caractere tem glifos diferentes dependendo de sua posição dentro de uma palavra: inicial, intermediário, final ou isolado . ” < — Não ‘ seriam caracteres diferentes. O inglês tem A e a, mas na fala de computação, A e a são personagens diferentes. cada glifo é mapeado para um código diferente. O hebraico tem chaf e chaf final (a letra chaf no final de uma palavra parece diferente) e eu ‘ tenho certeza que ‘ s denominado como um caractere diferente na computação.

Resposta

Não acho que seu entendimento esteja incorreto, você ” estamos apenas vendo sistemas que tentam ajudar o usuário colando o que ele pensa que ele quer. Como algumas ligaduras (“fi”, “fl”) são bastante comuns fora dos sistemas de composição, o software reconhece que o usuário provavelmente não inseriu esse glifo, em vez disso, outro aplicativo transformou seus caracteres digitados.

Em suma : Caractere refere-se a uma unidade linguística. Glifo refere-se a uma instância projetada dessa unidade, seja ela maiúscula, minúscula, versátil, histórica ou estilística.

Comentários

  • Na computação, A e a são caracteres diferentes. ASCII tem 128 caracteres e o termo caractere inclui A e a como caracteres distintos.
  • Os engenheiros usam muitas palavras que não ‘ t se alinhe com precedentes em outros setores. O seu é um bom exemplo.
  • quem inventou o termo ” caráter ” e ” glifo ” f primeiro? designers gráficos ou engenheiros de computação? i ‘ d pensei 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, provavelmente, precedeu os computadores de alguma forma ou antecedeu os computadores modernos. Acho que as pessoas que poderiam responder melhor pelo que agora é design gráfico são a indústria de impressão, mas não ‘ há nenhuma troca de pilha da indústria de impressão. Mas ‘ seria interessante saber quem emprestou de quem e de que forma o termo Personagem.
  • A tipografia veio muito antes 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 17. Possivelmente desde os primeiros tipógrafos em meados do século 16.

Resposta

Existem algumas respostas aqui que fornecem boas informações sobre glifos versus caracteres, mas não abordam realmente a fonte de sua confusão a respeito de copiar e colar.

Em primeiro lugar, seu entendimento é fundamentalmente correto:

Os caracteres são definidos por seu significado na linguagem, glifos, por sua aparência . Portanto, a ligadura para combinação estética fi é um glifo, mas dois caracteres.

Vale a pena enfatizar que a lista de caracteres é definida pelo Unicode padrão, que é publicado pelo Unicode Consortium, devido ao fato de que eles “são a autoridade na codificação de texto em um formato legível por máquina. A definição acima é essencialmente a orientação principal que os membros do Unicode Consortium usam para determinar se alguns adição íon para Unicode é um caractere e, portanto, digno de inclusão, ou um glifo e deve ser tratado por renderizadores de fonte.

Menciono isso devido à confusão que você experimentou acima foi devido ao fato de que existem vários caracteres de ligadura (não glifos ) em Unicode.Por exemplo, U+FB01 é o caractere da fi ligatura: http://unicode.org/charts/PDF/UFB00.pdf

Ter caracteres de ligadura em Unicode não está de acordo com a definição acima para que tipo de coisas devem ser incluídas no padrão Unicode como caracteres, uma vez que ligaduras não têm um significado independente de a composição de dois outros personagens. O pessoal do Unicode está naturalmente ciente disso, e as Perguntas frequentes do Unicode sobre ligaduras admitem isso:

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

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

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

1) No primeiro exemplo, você digitou f e i no Illustrator, que renderizou uma única ligadura glifo . Quando você selecionou e copiou aquele glifo renderizado, o Illustrator copiou corretamente o f (U+0066) e i (U+0069) caracteres em sua área de transferência.

2) No segundo exemplo, você digitou o código HTML para o 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 é na verdade o caractere de ligadura obscuro e relativamente inútil que mencionei acima, selecionando esse glifo copiará um único caractere U+FB01.

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

O código de entidade HTML &#64257; é uma string de 8 caracteres distintos. O renderizador de HTML do seu navegador substitui esses 8 caracteres U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023 com o único caractere Unicode U+FB01, que ele então renderiza apropriadamente. No entanto, a tag <code> no HTML desativa esse comportamento, deixando esses 8 caracteres como estão.

Quando você copia do HTML renderizado, copia o caracteres (que são diferentes dos glifos renderizados). Assim, quando você copia sua entidade HTML renderizada, o único U+FB01 caractere é copiado para sua área de transferência.

Quando você cola o U+FB01 caractere de volta ao 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.

Resposta

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 string de texto na tela (de forma um pouco simplificada):

  • O aplicativo primeiro lia a string de texto, ou seja, a string de caracteres armazenados no disco ou na memória.
  • Ele então a envia para um mecanismo de layout de texto, entre alguns outras propriedades, como a fonte desejada, o idioma do texto e assim por diante:
    • T O mecanismo de layout de texto basicamente abre o arquivo de fonte, pede o (s) glifo (s) correspondente (s) a cada caractere e faz alguma substituição de glifo (como substituir o glifo por f e i com o glifo de ligadura de fi) e posicionamento (como kerning).
    • No final, o mecanismo de layout tem uma sequência de glifos, suas posições em relação umas às outras e um mapeamento entre os caracteres de entrada e os glifos de saída. O mapeamento de caractere para glifo é para que ele saiba que os dois primeiros caracteres na palavra file correspondem ao primeiro glifo (a ligadura fi ), o terceiro caractere para o segundo glifo e o quarto caractere para o terceiro glifo.
  • Uma biblioteca de renderização de gráficos é então usada para “desenhar” esses glifos na tela usando formas da fonte.
  • Quando o usuário seleciona “glifos” na tela, o aplicativo consulta o mapeamento de glifo para texto fornecido pelo mecanismo de layout para encontrar que parte do texto de entrada corresponde ao que o o usuário seleciona e envia o texto para a área de transferência quando o 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 inserir os novos caracteres e o texto de atualização é enviado ao mecanismo de layout para processar e redesenhar e assim por diante.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *