Cambia las formas
A veces, una forma necesita cambiar cuando se interpola de ligera a negrita. Glyphs ofrece dos soluciones.
Mantener la complejidad total de las formas que contienen muchos trazos puede ser difícil durante la interpolación. Por lo general, te encontrarás con problemas en algún punto cuando interpoles de ligera a negrita, o de expandida a condensada. Esto se debe a que, en pocas palabras, gradualmente te quedas sin espacio y, en algún momento, ya no podrás encajar todas las partes del glifo. Entre los glifos comunmente más sospechosos, encontrarás muchos signos monetarios, con sus trazos, barras oblicuas y barras que atraviesan toda la forma. Toma el signo de dólar como ejemplo:
Pero no se trata sólo de signos monetarios. A veces, también necesitarás cambiar la estructura de otros glifos, como las letras, a medida que se vuelven más negritas. En el sistema de escritura latina, ese suele ser el caso de letras estructuralmente densas como: a, e, g, w.
En todos estos casos, la interpolación lineal simple no será suficiente y tendrás que recurrir a cambiar el glifo estructuralmente. En otras palabras, harás que el glifo cambie a una interpolación diferente. En Glyphs, puedes lograr esto de dos formas: ya sea con capas alternativas en el mismo glifo, o con dos glifos alternativos. Ambas maneras tienen sus ventajas y desventajas.
1. Capas alternativas (‘capas de corchetes’)
El ‘enfoque de capas alternativas’ implica configurar capas adicionales especiales que contienen dos cosas: en primer lugar, los contornos de las formas alternativas, por supuesto, y en segundo lugar, información adicional que dice exactamente en qué parte del eje de diseño se utilizará la capa alternativa en lugar de la capa del máster. Tiene sentido, ¿no?
Configuración de las capas alternativas
Así es como se ve ahora nuestro signo de dólar
, con Vista > Mostrar compatibilidad de másteres (Ctl-Opt-Cmd-N) activado:
Verás que se interpola muy bien. El único problema que tenemos es que la forma se obstruye en el extremo negrita del eje del peso. Entonces, en este ejemplo, necesitamos agregar capas alternativas con una barra vertical ‘fracturada’, que encaja mejor en las interpolaciones de negrita.
Así que vamos a configurar capas alternativas para nuestro glifo dólar
:
-
Para cada máster, crea una capa duplicada: selecciona el máster en la paleta Capas y haz clic en el botón con el signo más (+) en la parte inferior izquierda de la paleta. La capa se duplica con la marca de tiempo actual como nombre.
-
Para cada una de las capas duplicadas, haz clic con el botón derecho en el nombre de la capa y selecciona Alternativa en el menú contextual:
Esto las convertirá oficialmente en capas alternativas con un par de corchetes vacíos
[]
en sus nombres. -
Para cada capa alternativa, define su alcance haciendo doble clic en su nombre y se abrirá una ventana de diálogo donde puedes elegir el alcance para las coordenadas de diseño. Asegúrate de que todas las capas alternativas correspondientes tengan el mismo valor. Por ejemplo, si deseas que el diseño alternativo se active con un valor de interpolación de 100, escribe
100
en el valor mínimo de alcance para el eje Peso de cada una de las capas alternativas:Cada eje tiene su rango indicado en el lado derecho de la configuración del mismo. Por supuesto, los límites que definas aquí deben permanecer dentro del rango. Por ejemplo, en la captura de pantalla anterior, el eje Peso varía de 85 a 175.
Si hemos hecho todo bien, nuestra paleta de Capas se verá así:
Cada una de las capas de los másteres se cambiará por una capa alternativa más allá del peso 100. Ahora, todo lo que tenemos que hacer es realizar los cambios necesarios en los contornos. En este caso, simplemente podemos usar la herramienta Cuchilla (Mayúsculas-E) para hacer dos cortes en la barra vertical y eliminar la parte central superflua haciendo doble clic en ella con la herramienta Seleccionar (V) y presionando la tecla Suprimir. Por supuesto, debemos mantener las capas alternativas compatibles entre sí, de lo contrario, la interpolación no funcionará. Una comprobación rápida con Vista > Mostrar compatibilidad de másteres (Ctrl-Opt-Cmd-N) nos da tranquilidad:
En la mitad izquierda, puedes ver la interpolación de las capas de los másteres entre sí, en este caso Regular en 85 y Negrita en 175. Sin embargo, en la mitad derecha, puedes ver las capas alternativas, que reemplazan sus respectivas capas alternativas en el valor de interpolación 100.
Bien, veamos si realmente funciona. Puedes enumerar todas las instancias en el área de Vista Previa eligiendo Mostrar todas las instancias en la ventana emergente, o exportar una fuente variable y usar una de las herramientas disponibles, como Samsa o Font Gauntlet, o lo que a mí me gusta hacer es ejecutar el mekkablue script Script > mekkablue > Test > Variable Font Test HTML justo después de la exportación:
¡Choca los cinco!
Nuevamente: lo que es importante tener en cuenta es que los valores que ingresas en la interfaz de usuario de la capa alternativa son coordenadas de diseño, los valores de interpolación reales que corresponden a los valores que estás utilizando para tus másteres e instancias en Archivo > Información de la fuente > Másteres y Instancias. Es decir, antes de la corrección con los parámetros Axis Position y/o Axis Mappings.
Capas de corchetes inversas
Hasta aquí todo bien. Has configurado tus capas alternativas, la exportación funciona. Todo está bien, y estamos felices. Luego cambias a la vista Fuente (Cmd-Opt-1) y te desplazas hasta el signo de dólar, aún es bonito. Pero luego, cambias a través de los másteres con Cmd-1, Cmd-2, etc., y te golpea en la cara: en los másteres en negrita, se muestra el signo de dólar ‘incorrecto’:
Esto se debe a que el signo de dólar en negrita con la barra fracturada es una capa alternativa en el segundo máster, no la capa del máster real. Y en la vista Fuente, solo verá la capa del máster que se muestra. Obvio. Hay dos enfoques posibles que puedes tomar para abordar este problema.
Primero, puedes seguir el enfoque de ‘a quién le importa’: todo funciona, ya terminé, no se necesita más trabajo, gracias y adiós. Si este enfoque tiene tu nombre escrito por todas partes, puedes omitir el resto de este capítulo.
Y luego, están las ‘capas de corchetes inversas’. En ese caso, abre el glifo en la vista Editar haciendo doble clic en él o seleccionándolo y eligiendo Vista > Nueva pestaña (Cmd-T). Cambia al máster en negrita. Echa un vistazo de cerca a la paleta Capas, busca la capa alternativa con el dibujo ‘correcto’, haz clic con el botón derecho y elige Usar como máster en el menú contextual:
El resultado: la capa del máster y la capa de corchetes intercambiaron lugares. La capa del máster ahora tiene el signo de dólar de barra fracturada y es una capa de corchetes al mismo tiempo. La capa sobrante con el signo de dólar de barra entera se convirtió en una mera capa de respaldo con la fecha actual como indicador:
Esta es la capa de respaldo que necesitamos convertir nuevamente en una capa alternativa. Ya conoces el ejercicio: haz clic con el botón derecho en él, elige el tipo de capa Alternativa en el menú contextual. Se representará nuevamente con corchetes en negrita:
Esta vez, sin embargo, dejas los valores en blanco. Debido a que su lógica funciona al revés con respecto a las otras capas de corchetes, nos referimos a ella como una capa de corchetes inversa. Y... el cambio de másteres en nuestra vista de Fuente acaba de tener una experiencia ligeramente mejor:
Sin embargo, debes decidir por tí mismo si valió la pena el esfuerzo o no.
Variaciones de Funciones
Cualquiera que sea la forma en que configures tus capas alternativas: lo que sucede detrás de la ingeniería de Glyphs, es que la aplicación analizará su estructura de capas alternativas y las convertirá en las llamadas ‘Variaciones de Funciones’. Esas Variaciones de Funciones son reglas de sustitución de OpenType que sustituyen algunos glifos por versiones alternativas en ciertas posiciones en el espacio de diseño, o en otras palabras, en ciertas posiciones del control deslizante.
De forma predeterminada, esas Variaciones de Funciones van a una función OpenType llamada rlig
Ligaduras Requeridas. Es una función que siempre está activa y, por lo general, incluso funciona en entornos que dificultan el acceso de los usuarios a las funciones de OpenType, como Microsoft Word (aunque esperamos que la próxima versión sea mucho mejor en ese sentido).
Sin embargo, nadie dice que las Variaciones de Funciones deban vincularse a rlig
. Si sabes lo que estás haciendo, también puedes agregarlos a una función OpenType diferente. Para este propósito, vamos a Archivo > Información de la fuente > Fuente > Parámetros personalizados y agregamos un nuevo parámetro llamado Feature for Feature Variations, en el que escribimos la etiqueta de cuatro letras para la función en la que queremos que acaben las Variaciones de Funciones:
En la captura de pantalla, puedes ver el uso de rclt
Required Contextual Alternates -Alternativas Contextuales Requeridas. Es solo un ejemplo aleatorio, pero podría tener sentido si tu fuente está diseñada para entornos que la admitan.
Nuevamente, cambia la característica Función de Variaciones solo si realmente tienes una buena razón y realmente sabes lo que estás haciendo. Y realiza pruebas exhaustivas en Windows, Mac y todo tipo de navegadores web. Ya has sido advertido.
El caso con rvrn
Es posible que hayas oído hablar de rvrn
Required Variation Alternates como un sitio mejor para las Variaciones de Funciones. ¿Es realmente así? En realidad no. A primera vista, la especificación parece estar destinada a ella, pero en realidad no lo es. Todavía podría argumentar que funciona en la mayoría de los casos, y tendría razón. Sin embargo, no todas las aplicaciones implementan la especificación correctamente, y odio ser yo quien te diga que las aplicaciones de Adobe se ven afectadas.
Ahora, ¿qué sale exactamente mal si sale mal? Bueno, la especificación rvrn
es bastante compleja, analiza la sustitución de los ‘glifos predeterminados’, y que solo los glifos predeterminados pueden sustituirse por rvrn
. Sin embargo, la especificación también dice cómo se supone que se procesan los glifos sustituidos (no predeterminados), pero ahí es donde algunas aplicaciones no siguen la especificación y, en efecto, las Variaciones de Funciones no funcionarán para los glifos no predeterminados.
En Glyphs, los glifos predeterminados generalmente tienen un valor Unicode asignado y no tienen punto ni guión bajo en su nombre, por ejemplo, eacute
o seen-ar
o alpha
o soSo-thai
. Mientras que los glifos sustituidos (no predeterminados) no necesitan un valor Unicode porque una función de sustitución de OpenType los cambiará. Los reconoce de un vistazo por el punto o el guión bajo en su nombre de glifo, por ejemplo, seen-ar.fina
o alpha_alpha
o soSo-thai.ss01
. En otras palabras, tus capas alternativas no funcionarán para glifos que requieran una función de sustitución. No funcionarán para versalitas, alternativas posicionales, ligaduras, conjuntos estilísticos, etc.
Para ser justos, cada vez menos aplicaciones se ven afectadas por esta mala implementación, pero sigue siendo un problema. Así que mejor elige rlig
.
2. Glifos alternativos
En este escenario, mantienes las dos interpolaciones en dos glifos separados, por ejemplo, dollar
y dollar.bold
. Y controla el cambio entre las dos formas en Archivo > Información de la fuente > Instancias para fuentes estáticas, y en Archivo > Información de la fuente > Funciones para fuentes variables.
Configuración de glifos alternativos
Esto es sencillo. Simplemente duplica tu glifo dollar
(Glifo > Duplicar glifo, Cmd-D) y cambia el nombre del duplicado resultante de dollar.001
a dollar.bold
.
Es una buena idea mantener los nombres de los glifos iguales hasta el punto del sufijo y elegir un sufijo razonable después del punto. Cualquier cosa que tenga sentido para ti estará bien. Sin embargo, ten en cuenta que puedes estar buscando o filtrando tus glifos alternativos en algún momento, por lo que puede ser una buena idea mantener los sufijos que usas cortos y consistentes. De esa forma, reduces el riesgo de errores de tipeo y puedes beneficiarte de las expresiones comodines en los parámetros personalizados (consulta a continuación).
En cualquier caso, una vez que dollar.bold
se establece como un glifo separado, puedes editarlo de la forma que lo necesites. Asegúrate de que sea compatible con todos los másteres que tienes en uso.
Configuración de fuentes estáticas
Para cada instancia en Archivo > Información de la fuente > Instancias, necesitamos:
-
determinar si necesitamos cambiar el glifo alternativo o no; y si lo hacemos, agregamos un parámetro Rename Glyphs con
dollar=dollar.bold
en su valor; los cambios de nombre adicionales van en líneas consecutivas, -
Evita siempre el glifo alternativo sobrante con un parámetro Remove Glyphs y
dollar.bold
en su valor; las eliminaciones adicionales se realizan en líneas consecutivas.
En otras palabras, todas las instancias tendrán el parámetro Remove Glyphs. Pero solo las instancias en negrita tienen el parámetro Rename Glyphs. Ten en cuenta que puedes agregar y editar parámetros por lotes para varias instancias a la vez si seleccionas las instancias respectivas en la barra lateral de la izquierda. También ten en cuenta que puedes agregar varias eliminaciones o cambios de nombre en varias líneas del mismo parámetro. Es decir, no necesitas agregar cinco parámetros para eliminar cinco glifos, sino que basta con un parámetro con cinco líneas de nombres de glifos.
Si haz hecho todo bien, los parámetros de una instancia en negrita pueden verse así:
Eso es todo. Ahora tus exportaciones de fuentes estáticas ya funcionan. Y tu conjunto de glifos será ‘limpio’, es decir, no habrá glifos alternativos perdidos sin usar en la fuente. Y ningún usuario desconcertado te preguntará para qué sirven estas celdas adicionales en la paleta de glifos.
Configuración de fuentes variables
En una fuente variable, tanto el glifo predeterminado como el alternativo deben estar presentes en la exportación. Por lo tanto, no elimines ni cambies el nombre de ningún glifo en la configuración de la fuente variable respectiva en Archivo > Información de la fuente > Instancias. Una función de OpenType cambiará los valores predeterminados a los alternativos una vez que un control deslizante cruce un valor de umbral especificado por ti. En el enfoque de ‘capas alternativas’ descrito más arriba, Glyphs derivó esa función OpenType para ti. Ahora, tu mismo crearás esa función para tus Variaciones de Funciones, escribiendo un código especial.
‘¡Oh, Dios mío!’, te escucho murmurar, ‘¿Escribir código?, ¿Yo?’. No te preocupes, es muy fácil y lógico.
Primero, agregamos una nueva función en Archivo > Información de la fuente > Funciones. ¿Cuál? La misma opción que más arriba: por lo general, querrás una función que esté siempre activada, recomendamos rlig
como la opción obvia. Por supuesto, puedes agregar Variaciones de Funciones a cualquier función, incluso a varias funciones al mismo tiempo. Lo que tenga más sentido para ti. Para este ejemplo, agregaré una función rlig
Ligaduras requeridas:
En el código, comenzaremos con algo llamado ‘código de preprocesador’:
#ifdef VARIABLE
#endif
Todo lo que se encuentre entre estas dos líneas se reservará para la exportación de OTVar y no afectará a las exportaciones estáticas. Lee ifdef VARIABLE
como ‘si la fuente está definida como fuente variable, entonces haz lo siguiente’. Comprendes la idea.
Sigamos. Ahora, necesitamos sustituir dollar
por dollar.bold
, pero solo bajo la condición de que el control deslizante del eje Peso esté en un área determinada. Y: sorpresa, es bastante fácil. A ver si puedes resolverlo tú mismo:
#ifdef VARIABLE
condition 127 < wght < 175;
sub dollar by dollar.bold;
#endif
En lenguaje sencillo, esto significa que una vez que el control deslizante pasa el valor de peso 127, se llevarán a cabo todas las sustituciones por debajo (o hasta la próxima condition
), en este caso solo incluimos el signo de dólar. Nuevamente, usaremos coordenadas de diseño, es decir, las coordenadas que usas en Glyphs antes de la corrección a través de los parámetros Axis Mappings y Axis Location. Una declaración de condition
debe mencionar la etiqueta del eje, wght
en este caso, entre dos valores del eje: 127 < wght < 175
. Si uno de ellos es el límite actual del eje, en este caso 175, también puedes omitirlo:
#ifdef VARIABLE
condition 127 < wght;
sub dollar by dollar.bold;
#endif
Si necesitas hacer que la condición dependa de varios ejes, concatena los mismos con comas. Veamos el segundo bloque aquí:
#ifdef VARIABLE
condition 127 < wght < 175;
sub dollar by dollar.bold;
sub naira by naira.bold;
sub won by won.bold;
sub colonsign by colonsign.bold;
condition 105 < wght < 175, 75 < wdth < 90;
sub dollar by dollar.bold;
sub naira by naira.bold;
sub won by won.bold;
sub colonsign by colonsign.bold;
#endif
Como arriba, las sustituciones ocurren una vez que el control deslizante Peso cruza el valor de 127. Solo que esta vez, el primer bloque de condition
cubre más signos de moneda que los sospechosos habituales, como naira
, won
o colonsign
.
El segundo bloque de condiciones dice que las sustituciones también ocurren a partir de 105, pero solo si el control deslizante Ancho está por debajo de 90. Este ejemplo asume que un valor de Ancho de 100 se refiere a un ancho ‘normal’; 75 se refiere al límite inferior, lo que indica un ancho condensado que producirá longitudes de línea de aproximadamente tres cuartas partes del ancho ‘normal’. Representadas visualmente, las sustituciones condicionales se ven así:
¿Ves? Si escribes tu propio código condicional, puedes tener configuraciones más complejas. Hasta cierto punto, puedes recrear esto con capas alternativas (corchetes), pero será más complicado y alcanzarás un límite en un punto. Es por eso que el control adicional en este enfoque puede valer oro. En cualquier caso, si has hecho todo bien, tu ventana Información de la fuente > Funciones puede verse así:
Snippets
Ah, y te espera un regalo: ¡snippets! Hay un fragmento predeterminado llamado ‘OTVAR Feature Variations’, que agregará un código de muestra para tu placer de editar:
Accede a ellos a través del menú de snippets en la parte inferior derecha de la ventana. Por supuesto, puedes agregar tus propios snippets.
¿Qué elegir entre: glifos alternativos o capas alternativas?
Supongo que depende del tipo de diseñador de tipografías que seas. Personalmente, prefiero el enfoque con glifos alternativos, porque tengo más control y es mucho más fácil cambiar los puntos de interrupción de muchos glifos a la vez en el código de funciones. Imagina tener que ir a las capas alternativas de cada glifo... uf. Pero, por otro lado, las capas alternativas son más fáciles de configurar en primer lugar.
Bueno, supongo que puedes elegir tu propio ganador. Aquí hay un resumen de los pros y los contras que pueden ayudarte en el camino:
Capas alternativas | Glifos alternativos | |
---|---|---|
Ventajas | 💚 rápidas para cambios simples 💚 no saturan la Vista de la fuente con alternativas 💚 funcionan tanto para exportaciones de fuentes estáticas como variables | 💚 todas las variantes son visibles y fácilmente manejables en la Vista de la fuente 💚 permiten cambios más complejos a lo largo de múltiples ejes 💚 mayor control sobre las variaciones de funciones 💚 puedes cambiar los límites de condición con mayor facilidad |
Desventajas | 😬 más difícil mantener la supervisión en la Vista de la fuente 😬 pueden ser demasiado difíciles de configurar para interpolaciones de ejes múltiples | 😬 necesitas administrar más glifos 😬 necesitas manejar instancias (para fuentes estáticas) y código de función (para fuentes variables) por separado |
Actualización 26/05/2021: se agregaron Capas de corchetes inversas; Correcciones de texto de capas alternativas.
Actualización 27/05/2021: coordenadas de usuario reemplazadas con coordenadas de diseño en todos los ejemplos, mejor explicación de rvrn.
Traducción al español de Sol Matas.