Vi esta pregunta en la propuesta del sitio de Typography y me molestó que no supiera la respuesta. Siempre traté 'glifo' y 'personaje' como intercambiables.
Después de leer una explicación en la página Modelo de codificación de caracteres Unicode , entiendo más o menos esto:
- Los caracteres se definen por su significado en el lenguaje, glifos, por su apariencia . Entonces, la ligadura para la combinación estética
fi
es un glifo, pero dos caracteres.
Entonces, mi creencia es (corríjame si me equivoco) que la diferencia práctica sería:
- Los analizadores de texto que no están interesados en la estética del texto leerán los glifos como sus respectivos caracteres. Asi que:
- Si tuviera que copiar y pegar texto que contenga glifos en un editor de texto sin formato, los glifos se convertirían a sus respectivos caracteres (
fi
se convertiría en un glifo de ligaduraf
yi
) - Cualquier sistema automatizado bien hecho basado en el análisis de texto (por ejemplo, rastreadores de motores de búsqueda, lectores de pantalla, correctores ortográficos) interpretaría los glifos como sus respectivos caracteres.
- Un personaje puede tener muchos glifos o conjuntos de glifos. Quiero decir que un glifo solo puede tener un carácter, pero esto claramente no es correcto, ya que hay un ejemplo en el artículo vinculado de 3 glifos y conjuntos de glifos que parecen corresponder a un carácter y a un conjunto de caracteres. No entiendo cómo podría funcionar esto: ¿seguramente eso significa que habrá inconsistencia o ambigüedad en la forma en que se interpretan esos glifos, que varían según el intérprete? (¿o varía según el idioma o la fuente?)
- Mientras que los navegadores de glifos (por ejemplo, el de Illustrator) contienen el conjunto completo de glifos de una fuente, los mapas de caracteres (por ejemplo, el mapa de caracteres de Windows) solo contienen caracteres, no glifos que son múltiples caracteres como ligaduras (algo que no había notado antes)
- Si tuviera que copiar y pegar texto que contenga glifos en un editor de texto sin formato, los glifos se convertirían a sus respectivos caracteres (
Siento que estoy a punto de llegar, pero claramente he entendido mal algo en algún punto: no solo lo de "Un glifo de múltiples caracteres", sino también, copiar y pegar el comportamiento con ligaduras no es exactamente lo que esperaba:
- Copie la ligadura
fi
de Illustrator en este cuadro de entrada: pega comofi
(dos caracteres) como se esperaba. - Pegue el código HTML para ello (
fi
): se muestra como la ligadura cuando no está en un bloque de código (fi - que en esta fuente no se parece mucho a una ligadura, pero verá que es una si intenta seleccionar solo la mitad de él), y el código cuando está en un bloque de código (fi
), como se esperaba. - Copie y pegue la ligadura representada sin bloque de código en el cuadro de entrada: se pega como el carácter de ligadura y se representa como la ligadura independientemente de si está en un bloque de código o no (fi y
fi
). Del mismo modo, las palabras que lo contienen: fit tt mistits (fit misfits
) se pegan como tt mistiets (fit misfits
). ¿Quizás depende de si el lugar donde se está pegando comprende la codificación utilizada?
¿Cuán equivocado está mi entendimiento de esto? ¿Alguien puede corregirme: establecer una definición clara de la diferencia entre los glifos y los caracteres (si el mío es incorrecto o puede mejorarse), y dar ejemplos más claros / precisos que el mío de lo que eso significa en la práctica ?
fuente
Respuestas:
Los glifos se relacionan con la forma en que se representa el texto, los caracteres con la forma en que se interpreta. Cuando copia y pega, la aplicación de origen generalmente ofrece varios formatos. El texto sin formato descompondrá la ligadura de fi en f e i, el formato HTML puede traducirlo a la entidad char que ha citado o también descomponerlo en f e i.
En general, la relación entre caracteres y glifos es n: m. En los idiomas índicos, algunos caracteres se dividen en dos glifos que se colocan en diferentes lugares de la palabra. En latín, lo más cercano a esa situación sería representar é como dos glifos (e y ´). En árabe, cada carácter tiene diferentes glifos dependiendo de su posición dentro de una palabra: inicial, media, final o aislada.
La traducción de caracteres a glifos es específica para cada aplicación y las características tipográficas que admite. Para el texto latino, esta traducción solía ser sencilla, pero las fuentes OpenType introdujeron características adicionales como ligaduras, caracteres decorativos, formas alternativas, mayúsculas, etc.
Por razones prácticas, solo te preocupas por los glifos cuando implementas cómo una aplicación renderiza texto, o cuando diseñas una fuente, o cuando quieres aplicar una función OpenType que reemplaza algunos glifos por otros (por ejemplo, ligaduras). De lo contrario, los puntos de código Unicode son tus amigos.
fuente
No creo que su comprensión sea incorrecta, solo está viendo sistemas que intentan ayudar al usuario pegando lo que cree que quiere. Dado que algunas ligaduras ('fi', 'fl') son bastante comunes fuera de los sistemas de composición tipográfica, el software reconoce que el usuario probablemente no ingresó ese glifo, sino que otra aplicación transformó sus caracteres mecanografiados.
En resumen: el carácter se refiere a una unidad lingüística. Glifo se refiere a una instancia diseñada de esa unidad, ya sea mayúscula, minúscula, minúscula, variante histórica o estilística.
fuente
Aquí hay un par de respuestas que brindan buena información sobre los glifos y los caracteres, pero en realidad no abordan la fuente de su confusión con respecto a copiar y pegar.
En primer lugar, su comprensión es fundamentalmente correcta:
Vale la pena enfatizar que la lista de caracteres está definida por el estándar Unicode, que es publicado por el Consorcio Unicode, debido al hecho de que son la autoridad para codificar texto en un formato legible por máquina. La definición anterior es esencialmente la directriz principal que usan los miembros del Consorcio Unicode para determinar si alguna adición propuesta a Unicode es un carácter y, por lo tanto, digno de inclusión, o un glifo y debe ser manejado por los renderizadores de fuentes.
Menciono esto porque la confusión que experimentó anteriormente se debió al hecho de que existen varios caracteres de ligadura (no glifos ) en Unicode. Por ejemplo,
U+FB01
es el personaje de la fi bratura: http://unicode.org/charts/PDF/UFB00.pdfTener caracteres de ligadura en Unicode no está realmente en el espíritu de la definición anterior de qué tipo de cosas deberían incluirse en el estándar Unicode como caracteres, ya que las ligaduras realmente no tienen un significado independiente de la composición de otros dos caracteres. La gente de Unicode es naturalmente consciente de esto, y las Preguntas frecuentes de Unicode sobre ligaduras admiten lo mismo:
La existencia de este personaje es, en última instancia, la fuente de tu confusión.
En el software implementado correctamente, la copia de texto siempre debe copiar los caracteres que se especificaron, no los glifos , y eso es exactamente lo que sucede en los tres ejemplos.
1) En el primer ejemplo, escribió
f
yi
en Illustrator, que generó un solo glifo de ligadura . Cuando seleccionó y copió ese glifo representado, Illustrator copió correctamente los caracteresf
(U+0066
) yi
(U+0069
) en su portapapeles.2) En el segundo ejemplo, escribió el código HTML para el carácter de ligadura (
fi
) en el cuadro de entrada y obtuvo correctamente el glifo de ligadura que representa el carácter de ligadura (. Dado que el carácter subyacente es en realidad el carácter de ligadura oscuro y relativamente inútil que mencioné arriba, al seleccionar ese glifo se copiará un solo carácterU+FB01
.3) En el tercer ejemplo, está copiando el carácter de ligadura representado
U+FB01
que se representó en la parte 2, que siempre se pegará como ese carácter. Su principal confusión parece estar relacionada con la diferencia entre los códigos de entidad HTML y los caracteres, particularmente con respecto a cómo se representan dentro y fuera de los bloques de código.El código de entidad HTML
fi
es una cadena de 8 caracteres distintos. El renderizador HTML de su navegador web sustituye esos 8 caracteresU+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023
con el único carácter UnicodeU+FB01
, que luego representa adecuadamente. Sin embargo, la<code>
etiqueta en HTML deshabilita este comportamiento, dejando esos 8 caracteres como están.Cuando copia de HTML renderizado, copia los caracteres renderizados (que son diferentes de los glifos renderizados ). Por lo tanto, cuando copia su entidad HTML representada, el
U+FB01
carácter único se copia en su portapapeles.Cuando
fi
U+FB01
vuelve a pegar el carácter en el HTML, no es necesario realizar ninguna sustitución, lo que significa que el carácter se representa como una ligadura independientemente de si se encuentra o no dentro de un<code>
bloque.fuente
Los caracteres son los que se almacenan en archivos de texto, procesados por aplicaciones y movidos, mientras que los glifos son su representación visual.
Para tener una imagen clara, veamos qué sucede cuando una aplicación intenta representar una cadena de texto en la pantalla (de una manera un poco simplificada):
f
yi
con el glifo de ligadurafi
) y posicionamiento (como interletraje).file
corresponden a dos el primer glifo (lafi
ligadura), el tercer carácter al segundo glifo y el cuarto carácter al tercer glifo.fuente