La maquetación de texto complejo ( CTL ) o representación de texto complejo es la composición tipográfica de los sistemas de escritura en los que la forma o la posición 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 .
Las escrituras que requieren CTL para una visualización adecuada pueden denominarse escrituras complejas . Algunos ejemplos son el alfabeto árabe y las escrituras de la familia Brahmic , como el devanagari , la escritura jemer o el alfabeto tailandés . Muchas escrituras no requieren CTL. Por ejemplo, el alfabeto latino o los caracteres chinos pueden componerse simplemente mostrando cada carácter uno tras otro en filas o columnas rectas. Sin embargo, incluso estas escrituras tienen formas alternativas o características opcionales (como la escritura cursiva ) que requieren CTL para su producción en computadoras.
Las principales características de la complejidad CTL son:
No todas las apariciones 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 el resto. Sin embargo, estas dos formas normalmente se almacenan como caracteres diferentes; por ejemplo, Unicode tiene U+03C2 ς LETRA GRIEGA MINÚSCULA SIGMA FINAL y U+03C3 σ LETRA GRIEGA MINÚSCULA SIGMA , y no las trata como equivalentes . Para fines de cotejo y comparación, el software debe 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.
La mayoría de los programas de renderización de texto que son capaces de CTL incluirán información sobre scripts específicos y, por lo tanto, podrán renderizarlos correctamente sin necesidad de que los archivos de fuentes proporcionen instrucciones sobre cómo diseñar los caracteres. Este tipo de programas se suelen proporcionar en una biblioteca ; algunos ejemplos son:
Sin embargo, este tipo de software no puede reproducir correctamente ningún código para el que no tenga instrucciones, lo que puede incluir muchos códigos minoritarios. El enfoque alternativo es incluir las instrucciones de reproducción en el propio archivo de fuente. El software de reproducción aún debe ser capaz de leer y seguir las instrucciones, pero esto es relativamente simple.
Algunos ejemplos de este último enfoque son Apple Advanced Typography (AAT) y Graphite . Ambos nombres abarcan 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 sistemas basados en Microsoft Windows y Linux .
El formato OpenType está pensado principalmente para sistemas que utilizan el primer enfoque (conocimiento del diseño en el renderizador, no en la fuente), pero tiene algunas características que ayudan con CTL, como las ligaduras contextuales. Las instrucciones AAT y Graphite se pueden incorporar en archivos de fuentes OpenType.
Es más fácil simplemente equiparar los dos códigos sigma para operaciones que se relacionan con el contenido de las palabras, por ejemplo.