

La maquetación de texto complejo ( CTL , por sus siglas en inglés) o representación de texto complejo es la composición tipográfica de sistemas de escritura en la que la forma o el posicionamiento de un grafema depende de su relación con otros grafemas. El término se utiliza en el campo de la internacionalización de software , donde cada grafema es un carácter .
Los alfabetos que requieren CTL para su correcta visualización se conocen como alfabetos complejos . Algunos ejemplos son el árabe y los alfabetos de la familia bráhmica , como el devanagari , el jemer o el tailandés . Muchos alfabetos no requieren CTL. Por ejemplo, el alfabeto latino o los caracteres chinos se pueden componer simplemente mostrando cada carácter uno tras otro en filas o columnas rectas. Sin embargo, incluso estos alfabetos tienen formas alternativas o características opcionales (como la escritura cursiva ) que requieren CTL para su visualización en ordenadores.
Características que requieren CTL
Las principales características de la complejidad de CTL son:
- Texto bidireccional , donde los caracteres pueden escribirse de derecha a izquierda o de izquierda a derecha.
- La forma y las ligaduras sensibles al contexto permiten que un carácter cambie de forma según su ubicación o los caracteres que lo rodean. Por ejemplo, un carácter en escritura árabe puede tener hasta cuatro formas diferentes, dependiendo del contexto.
- Ordenación, donde el orden mostrado de los caracteres no es el mismo que el orden lógico. Por ejemplo, en Devanagari, que se escribe de izquierda a derecha, el grafema para "i corta" aparece a la izquierda de ("antes") de la consonante que le sigue: en कि ki , la ि -i debería representarse a la izquierda, extendiéndose su arco hasta por encima de la क k- a la derecha.
No todas las ocurrencias de estas características requieren CTL. Por ejemplo, el alfabeto griego tiene una forma sensible al contexto de la letra sigma , que aparece como ς al final de una palabra y σ en otros lugares. Sin embargo, estas dos formas normalmente se almacenan como caracteres diferentes; por ejemplo, Unicode tiene tanto U+03C2 ς GREEK SMALL LETTER SIGMA FINAL como U+03C3 σ GREEK SMALL LETTER SIGMA , y no las trata como equivalentes . Para fines de cotejo y comparación, el software debería considerar la cadena "δῖος Ἀχιλλεύς" equivalente a "δῖοσ Ἀχιλλεύσ", [ 1 ] pero para fines de composición tipográfica son distintas y no se requiere CTL para elegir la forma correcta.
Implementaciones
La mayoría del software de renderizado de texto compatible con CTL incluye información sobre escrituras específicas, por lo que puede renderizarlas correctamente sin necesidad de que los archivos de fuente proporcionen instrucciones sobre cómo distribuir los caracteres. Este tipo de software suele estar disponible en una biblioteca ; algunos ejemplos son:
- Core Text para macOS
- Uniscribe (con Universal Shaping Engine) y DirectWrite para Microsoft Windows
- HarfBuzz , una biblioteca multiplataforma
- Pango , una biblioteca multiplataforma que actualmente incorpora HarfBuzz.
Sin embargo, este tipo de software no puede renderizar correctamente ningún alfabeto para el que carezca de instrucciones, lo que incluye muchos alfabetos minoritarios. La alternativa consiste en incluir las instrucciones de renderizado en el propio archivo de fuente. El software de renderizado aún necesita ser capaz de leer y seguir las instrucciones, pero esto es relativamente sencillo.
Ejemplos de este último enfoque incluyen Apple Advanced Typography (AAT) y Graphite . Ambos nombres engloban tanto el formato de instrucciones como el software que lo respalda; AAT está incluido en los sistemas operativos de Apple , mientras que Graphite está disponible para Microsoft Windows y sistemas basados en Linux .
El formato OpenType está pensado principalmente para sistemas que utilizan el primer enfoque (conocimiento de la maquetación en el motor de renderizado, no en la fuente), pero incluye algunas características que facilitan el uso de CTL, como las ligaduras contextuales. Las instrucciones AAT y Graphite pueden integrarse en archivos de fuentes OpenType.
Véase también
- Tipografía
- Unicode
- Sistemas de escritura que requieren un diseño de texto complejo:
- alfabeto árabe
- La mayoría de las escrituras de la familia bráhmica
- Guion de N'Ko
- Tengwar (diacríticos y números)
Referencias
- ↑ "Preguntas frecuentes - Idioma y escritura griegos" . Consorcio Unicode. 3 de diciembre de 2012. Consultado el 13 de septiembre de 2013. Es
más sencillo equiparar los dos códigos sigma para operaciones relacionadas con el contenido de las palabras, por ejemplo.
Enlaces externos
- Ejemplos de representación compleja : ejemplos de sistemas de escritura complejos de todo el mundo, según SIL International.
- Diseño de texto complejo : las tecnologías de escritorio de The Open Group
- Compatibilidad con alfabetos índicos en Mozilla — y también con otros alfabetos CTL
- Proyecto SILA : proyecto de integración de Graphite y Mozilla
- Arquitectura CTL en Solaris — Documentos técnicos sobre la globalización de Solaris
- Scripts complejos : portal global de desarrollo e informática de Microsoft
- Página principal de Theppitak : información sobre el procesamiento del idioma tailandés.
- Página de HarfBuzz en Freedesktop.org
- Módulo de texto Unicode tipo D: biblioteca de software portátil para texto complejo.
- BidiRenderer : una aplicación que ilustra la forma y el diseño de texto complejo en párrafos bidireccionales utilizando FriBidi, FreeType y HarfBuzz.
- Tehreer-Android : una biblioteca que proporciona control total sobre tecnologías relacionadas con el texto, como algoritmos bidireccionales, modelado de tipos abiertos, composición tipográfica y renderizado de texto.
- Tehreer-Cocoa — Motor de fuentes/texto independiente para iOS
- Casos de prueba de MediaWiki para la representación de scripts complejos
- Tipografía
- computación índica
- Lenguaje natural e informática