Apple Advanced Typography ( AAT ) es la tecnología informática de Apple Inc. para la representación avanzada de fuentes , que admite la internacionalización y funciones complejas para tipógrafos , un sucesor de la poco utilizada tecnología de fuentes QuickDraw GX de Apple de mediados de la década de 1990.
Se trata de un conjunto de extensiones del estándar de fuentes TrueType , con características de fuentes inteligentes similares al formato de fuentes OpenType desarrollado por Adobe y Microsoft, y a Graphite . Incorpora conceptos del formato de fuentes " multiple master " de Adobe, lo que permite definir ejes de rasgos y la transformación de un glifo de forma independiente a lo largo de cada uno de estos ejes. Las características de las fuentes AAT no alteran el texto mecanografiado subyacente; solo afectan la representación de los caracteres durante la conversión de glifos.
Las características importantes de AAT incluyen:
Las características de las fuentes AAT son compatibles con Mac OS 8.5 y versiones posteriores y todas las versiones de macOS. La biblioteca multiplataforma ICU proporcionó compatibilidad básica con AAT para escrituras de izquierda a derecha. [1] La versión 2 de HarfBuzz agregó compatibilidad con modelado AAT, una implementación de código abierto de la tecnología [2] que Chrome / Chromium en su versión 72 y LibreOffice en su versión 6.3 usan en lugar de CoreText para representar fuentes AAT de macOS de manera multiplataforma.
A partir de OS X Yosemite y iOS 8 , AAT admite la configuración específica del idioma, es decir, cambia la forma en que se procesan los glifos según el idioma humano que se esté utilizando para representar. Esta compatibilidad está disponible mediante el uso de etiquetas de idioma en Core Text . [3] Al mismo tiempo, se agregó la disposición para el posicionamiento relativo de dos glifos a través de puntos de anclaje mediante las tablas 'kerx' y 'ankr'. [4]
A partir de Mac OS X 10.5 Leopard , está disponible una compatibilidad parcial con OpenType . A partir de 2011, la compatibilidad está limitada a los alfabetos occidentales y árabes. Si una fuente tiene tablas AAT, se utilizarán para tipografía. Si la fuente no tiene tablas AAT pero sí tablas OpenType, se utilizarán en la medida en que el sistema las admita.
Esto significa que muchas fuentes OpenType para alfabetos occidentales o de Oriente Medio se pueden utilizar sin modificaciones en Mac OS X 10.5, pero no así los alfabetos del sur de Asia, como el tailandés y el devanagari , que requieren tablas AAT para un diseño adecuado.
AAT requiere que el texto se convierta completamente en glifos antes de que se realice el diseño del texto. Las operaciones en el texto se realizan completamente dentro de la capa de glifos.
La tabla principal que se utiliza en el proceso de diseño de AAT es la tabla "morx". Esta tabla se divide en una serie de cadenas, cada una de las cuales se divide a su vez en subtablas. Las cadenas y subtablas se procesan en orden. Cuando se encuentra cada subtabla, el motor de diseño compara los indicadores de la subtabla con los indicadores de control, generalmente derivados de las configuraciones del usuario. Esto determina si se procesa o no la subtabla.
El conjunto de características disponibles en la fuente se pone a disposición del usuario a través de la tabla "feat". Esta tabla proporciona indicadores a las cadenas localizables que se pueden utilizar para describir una característica al usuario final y los indicadores apropiados para enviar al motor de texto si se selecciona la característica. Las características se pueden hacer invisibles para el usuario con el simple recurso de no incluir entradas en la tabla "feat". Apple utiliza este enfoque, por ejemplo, para admitir ligaduras obligatorias.
Las subtablas pueden realizar sustituciones de glifos no contextuales, sustituciones de glifos contextuales, reordenamientos de glifos, inserciones de glifos y formación de ligaduras. [5] Las acciones contextuales son sensibles al texto circundante. Se pueden utilizar, por ejemplo, para convertir automáticamente una s en una s medial en cualquier parte de una palabra excepto al final.
Las subtablas "morx" para sustituciones de glifos no contextuales son tablas de mapeo simples entre el glifo sustituido y su sustituto. Las demás implican el uso de máquinas de estados finitos .
Para procesar la máquina de estados finitos, los glifos se organizan en clases. Una clase puede ser pequeña y contener un solo glifo (para algo como la formación de ligaduras), o puede incluir docenas de glifos o incluso más. Se define automáticamente una clase especial para cualquier glifo que no esté incluido en ninguna de las clases explícitas. También hay clases especiales disponibles para el final del flujo de glifos y los glifos eliminados del flujo de glifos.
El motor de diseño comienza con un estado de inicio de texto y analiza el texto, glifo por glifo. Según su estado actual y la clase de glifo que encuentre, cambiará a un nuevo estado y posiblemente realizará una acción adecuada. El proceso continúa hasta que se agote el flujo de glifos.
El uso de máquinas de estados finitos permite que las tablas "morx" sean relativamente pequeñas y se procesen con relativa rapidez. También proporcionan una flexibilidad considerable. Sin embargo, dado que las herramientas de fuentes de Apple requieren la generación de tablas "morx" a partir de información de tablas de estados sin procesar, pueden resultar difíciles de producir y depurar. El diseñador de fuentes también es responsable de asegurarse de que las subtablas "morx" estén ordenadas correctamente para obtener el efecto deseado.
AAT funciona completamente con glifos y nunca con caracteres, por lo que toda la información de diseño necesaria para producir la visualización adecuada reside dentro de la propia fuente. Esto permite agregar fuentes para nuevas escrituras sin requerir ningún soporte específico del sistema operativo. Terceros pueden producir fuentes para escrituras que no son oficialmente compatibles con Apple y funcionarán con macOS. Por otro lado, esto también significa que cada fuente para una escritura determinada requiere su propia copia de la información de forma de la escritura en sus propias tablas "morx".
Otras tablas AAT (o extensiones específicas de AAT para las tablas TrueType estándar) permiten el kerning, la justificación y la división de ligaduras sensibles al contexto. AAT también admite fuentes de variación, [6] en las que la forma de una fuente puede variar según un valor escalado proporcionado por el usuario. Las fuentes de variación son similares a las extintas fuentes Multiple master de Adobe , donde los puntos finales están definidos y cualquier valor medio es válido. Con esto, el usuario puede arrastrar controles deslizantes en la interfaz de usuario para hacer que los glifos sean más altos o más cortos, para hacerlos más gruesos o más delgados, para aumentar o disminuir el tamaño de las serifas y similares, todo independientemente uno del otro. Los glifos pueden incluso tener sus formas fundamentales alteradas radicalmente. [7] Antes de que OpenType introdujera Font Variation en septiembre de 2016, no había nada parecido en OpenType.
Otras tablas AAT también pueden tener efectos dependientes del tamaño de los puntos; [6] por ejemplo, con 12 puntos, los trazos horizontales y verticales pueden tener un ancho similar, pero con 300 puntos, la variación del ancho del trazo podría ser bastante grande.
En la práctica, pocas fuentes AAT utilizan funciones de la tecnología además de las disponibles a través de la tabla "morx". Zapfino , Hoefler Text y Skia son fuentes que se incluyen con macOS y que ilustran una variedad de capacidades de AAT.
Para las escrituras índicas , las únicas funciones necesarias son la reordenación y sustitución de glifos; AAT admite ambas. Como se indicó anteriormente, las fuentes OpenType para escrituras índicas requieren que se agreguen tablas AAT antes de que funcionen correctamente en macOS. Sin embargo, esto se aplica solo al software que depende de la compatibilidad del sistema con OpenType. Los programas que proporcionan su propia implementación de OpenType reproducirán correctamente las fuentes índicas con las fuentes OpenType. (Sin embargo, es posible que no reproduzcan correctamente las fuentes índicas con las tablas AAT).
Mac OS X 10.5 se entregó con fuentes para devanagari , gurmukhi , gujarati , tailandés , tibetano y tamil . Las fuentes para otros alfabetos índicos se incluyeron en versiones posteriores de macOS e iOS, y también estaban disponibles a través de terceros.