Esta herramienta fue creada para diseñar el espaciado de una fuente tipográfica. La desarrolló Andrés Torresi y es de distribución libre.
Aunque corre como un macro en el editor de fuentes Glyphs, el método de espaciado que propone puede ser adaptado a otros editores o lenguajes de programación.
HT Letterspacer puede ser utilizado en:
- Fuentes de un solo máster.
- Fuentes múltiple máster o superfamilias.
- Diferentes sistemas de escritura.
- Aplicado durante la etapa de diseño o en fuentes ya terminadas.
No está desarrollado para hacer el kerning de una fuente.
HT Letterspacer funciona de manera diferente en las versiones 2 y 3 de Glyphs. El archivo de configuración utilizado en Glyphs 2 no es válido en Glyphs 3, y viceversa.
Por tal motivo, recomendamos realizar una migración de datos de una versión a otra del editor atendiendo a las diferencias de categorización de los glifos propuestas con la actualización del programa, y con la precaución de que los resultados no serán idénticos.
Prólogo · La magia no existe, son horas de trabajo
Lo primero que deberías saber es que HT Letterspacer no es una «varita mágica», no reemplaza al diseñador. Es una herramienta y como tal debes aprender a utilizarla, a pensar el espaciado a través de esta nueva perspectiva. Estás frente a un cambio de paradigma que propone un camino alternativo para diseñar y definir el espacio a la izquierda y a la derecha de un signo.
Al diseñar una letra, diseñas el negro y el blanco, el trazo y el espacio que lo rodea. Por lo tanto, el espaciado es una cuestión de diseño: los diseñadores de tipografía diseñamos el blanco que rodea a un signo. Esas decisiones son afectadas por la forma y contraforma, el dibujo, las proporciones, el estilo, la función, el soporte y los demás ítems descritos en el brief del proyecto tipográfico.
Paso 01
Instalación · Plugin Manager
Para instalar HT Letterspacer en Glyphs 3 puedes seguir los siguientes pasos:
- Abrir el editor de tipografía Glyphs 3.
- Ir a Window > Plugin Manager. Se abrirá una nueva ventana de diálogo donde podrás ver los plugins, scripts y modules que puedes agregar a este programa.
- En la ventana Plugin Manager tildar los títulos All y Scripts.
- Escribir Letterspacer en el espacio de búsqueda.
- Hacer click en INSTALL.
- Cerrar esta ventana.
- Volver a Glyphs e ir al menú Script presionando la tecla ⌥ Opt: en lugar de abrir ventana de scripts verás al final la opción Reload Scripts. Esta acción actualizará los scripts y podrás ver entre las opciones HTLetterspacer.
Shortcut: puedes actualizar la carpeta de script presionando ⌘ Cmd ⌥ Opt ⇧ Shift Y.
A continuación
- Definir los parámetros generales.
- Pasar esos parámetros generales a cada máster.
- Desarrollar los parámetros particulares para categorías o subcategorías específicas.
El uso de esta herramienta tiene 3 instancias:
- Ensayos para definir los parámetros generales.
- Definir los parámetros generales y asociarlos a cada máster.
- Definir los parámetros particulares en el archivo de configuración.
Paso 02
Utilización inicial
Has empezado a diseñar tu fuente tipográfica, ya tienes algunos signos —por ejemplo una n, una o, una v, una c. Ahora debes diseñar el blanco que los rodea, o sea, el espaciado. Aquí comienzas a utilizar esta herramienta.
La primera vez que accedas al menú Script > HTLetterspacer y se desplieguen las 2 opciones: HTLetterspacer UI y HTLetterspacer, se abrirá esta ventana de diálogo:
Paso 03
Aproximación al diseño de espaciado
En esta sección hablaré de diseño de espaciado propiamente dicho y de cómo utilizar el HT Letterspacer para espaciar una fuente tipográfica. Pero antes quisiera hacer una breve introducción para ponernos a todos en el mismo punto de partida y evitar malentendidos semánticos. (Si esto no te interesa, puedes saltar al próximo título.)
Puntos a definir
- ¿Qué es espaciado?
- ¿Qué factores podríamos considerar relevantes en la toma de decisiones del diseño del espaciado de una fuente?
- ¿Qué actores intervienen durante el proceso de espaciado?
- ¿Cómo estos actores están reflejados en los parámetros que propone HT Letterspacer?
La novedad de esta herramienta es que nos desafía a pensar y analizar el espaciado de una forma diferente. Tal vez esto es lo que nos desorienta un poco en los primeros momentos. No es un botón que arregla todo.
Espaciar es determinar cuánto espacio hay a la derecha y a la izquierda de un signo, cuánto aire lo rodea, es diseñar el blanco que nos deja leer el negro.
Espaciar es equilibrar el espacio que hay dentro de la letra con el espacio que hay fuera de ella. En este punto estamos todos más o menos de acuerdo: la idea de igualar blancos internos y externos es recurrente. La imagen utilizada es similar: si para llenar el interior de una n necesito 1 litro de agua, también necesitaré 1 litro para llenar el espacio entre esa n y la letra que sigue. La gran pregunta es: ¿es un litro, 0,8 o 1,2?
Los métodos de espaciado propuestos por Walter Tracy, Thomas Phinney y Frank E. Blokland ponen el foco en las formas, agrupándolas y clasificándolas en rectas, curvas, diagonales, bastones, etcétera.
Andrés Torresi propone observar el blanco. No se basa en la forma: la atención apunta al espacio y nos anima a mirarlo como un algo que podemos modelar, pues tenemos que determinar dónde empieza y termina ese blanco que dará lugar al negro.
Sub-sección
Criterios de diseño
Al empezar a pensar en rasgos generales cómo será el espaciado de una fuente, hay algunos datos que van a ir perfilando ese blanco. Estos ítems influyen en la toma de cualquier decisión. Por ejemplo, si tengo dos tipografías sans serif para cuerpo de lectura, una en papel y otra en pantalla, la segunda tendrá un espaciado más generoso. O si tengo una tipografía para títulos y su variante de texto, la primera tendrá un espaciado más apretado.
Algunos factores que pueden transformarse en un criterio de diseño de espaciado:
- Diseño de los signos, su forma.
- Proporciones.
- Color.
- Función.
- Soporte.
- Etc.
Sub-sección
Elementos técnicos
Cuando ya sabes qué tipo de espaciado necesita tu tipografía y quieres utilizar el espaciador, hay cuatro conceptos que necesitas conocer, de la misma manera que para dibujar un signo en un editor de tipografía sabes cómo funcionan las curvas de Bézier, los manejadores y los nodos. En el diseño de espaciado, los actores principales son:
- Sidebearings (izquierdo y derecho).
- Contorno del glifo.
- Bounding box.
- Ancho de caja.
Sub-sección
Glosario general
«El espacio es lo que ocurre entre el límite de la caja y el contorno.»
El punto de origen [1] es el punto cero en el eje x.
El ancho de la caja [2] —Advance width— es el ancho que avanza el signo. El límite izquierdo es el punto de origen (que coincide con el sidebearing izquierdo) y el límite derecho es el sidebearing derecho. El ancho de caja está delimitado por los laterales izquierdo [8] y derecho [10]. Lo que ocurre entre estos laterales es el ancho [2]. El ancho de caja siempre es mayor o igual que cero.
Cuando hablo de glifo [3], hago referencia al dibujo (a la forma, al negro) y al espacio que lo rodea.
Cuando hablo del contorno [4] hago referencia a la línea que dibuja la forma y contraforma, a la línea que dibuja el negro.
Los puntos extremos del contorno [5] determinan el Bounding Box [6] (BBox). Dicho de otro modo, el BBox es el rectángulo que circunscribe al contorno.
Sidebearing es el componente esencial del espaciado: es el espacio a la izquierda y a la derecha. Cada glifo tiene un sidebearing izquierdo llamado Left Side Bearing — LSB [7] y un sidebearing derecho, Right Side Bearing — RSB [9]:
- LSB [7] es la distancia entre el punto de origen [1] y el lado izquierdo del BBox [6].
- RSB [9] es la distancia entre el lado derecho del BBox [6] y el lateral derecho de la caja [10].
Paso 04
Definición de los parámetros generales
Para definir los parámetros es recomendable utilizar primero la ventana emergente HT Letterspacer UI (User Interface). Allí están los parámetros que debes definir para diseñar el espaciado de una tipografía.
1 · LSB / RSB
Sidebearings izquierdo y derecho. Con este parámetro indicas si quieres aplicar los valores a uno o a ambos lados del signo.
2 · Tabular
Este parámetro calcula los valores de espaciado pero los aplica de forma relativa (proporcional) sin modificar el ancho de la caja. Se puede utilizar para figuras tabulares, fuentes monoespaciadas o para recalcular la posición de un glifo dentro de su caja.
3 · Area paramArea
Este parámetro define el valor de área de espacio que se quiere lograr. Se mide en miles de UPM.
Por ejemplo: en una figura rectangular (donde el lado es recto y vertical) de 500UPM de altura, cada unidad de sidebearing equivale a 500 de área. Es decir, un área de 500000 (500) equivale a un sidebearing de 100 unidades. Para una tipografía de texto en 1000UPM, el valor suele establecerse entre 200 y 400 (no es una regla, depende de lo que quieras hacer).
4 · Depth paramDepth (profundidad)
Si todos los signos fueran rectos como el lado izquierdo de la n sans serif geométrica, el asunto del espaciado estaría resuelto y no estaríamos aquí discutiendo esto. ¿Qué ocurre con las contraformas abiertas, con las zonas blancas que están dentro del BBox y por lo tanto no son tomadas en cuenta en el parámetro área? ¿Cómo definimos las superficies blancas en una c, en una v o una T? ¿Cuál es la línea de frontera entre contraforma y espaciado?
Hay una gran cantidad de blanco dentro del BBox que incide en la ecualización del espacio. Para definir este parámetro es imprescindible un ojo bien entrenado: necesitamos determinar una frontera visual. No hay ningún punto o línea que nos indique en qué momento el blanco interno de una c deja de ser espacio interior para ser espacio exterior.
El número que utilizamos aquí es un porcentaje de la altura de equis (un valor entre 0 y 100), e indica cuánto blanco debe medir hacia adentro del BBox, entre los límites verticales establecidos. Para una tipografía de texto estándar puede ser entre 10 y 25 (nuevamente, estos números son solo una referencia para tener un punto de partida).
5 · Overshoot paramOver
En los dos parámetros anteriores (área y depth) el cálculo es dentro de la altura establecida del glifo (altura de equis). Este parámetro expande el espacio medible hacia arriba y hacia abajo de esa altura.
Al incluir el espacio más allá de esos límites verticales podemos considerar diferentes espaciados para una i sans, una l y una j; para una a de anillo, una d y una q.
En las minúsculas, de forma predeterminada, la zona de medición se corresponde a la altura del glifo x, nuestro glifo de referencia. Puedes reemplazar ese signo de referencia para cualquier grupo de glifos en el archivo de configuración (lo vemos más adelante). El overshoot extiende estos valores para producir una diferencia en glifos con ascendentes y descendentes.
Una vez que sabes qué parámetro calcula qué blanco, puedes ir probando y experimentando rápidamente desde esta ventana diferentes valores hasta lograr el espaciado que quieres para tu tipografía.
Se recomienda comenzar con una secuencia de n para definir el parámetro área, luego incorporar la o y evaluar qué ocurre con el valor del parámetro depth agregando la c, la v y otros signos con contraformas abiertas. Por último, revisar qué ocurre con i, j y l para definir el parámetro overshoot. Pronto la secuencia se va transformando en palabras y frases que te permiten revisar los detalles y observar el resultado de las decisiones tomadas.
Como ya te habrás dado cuenta, cuando crees haber encontrado el valor de paramArea agregas una v a la secuencia y todo se desacomoda. Logras hallar el valor de paramDepth pero al agregar una f vuelve a desajustarse. En este punto es importante saber qué modificas con cada parámetro, sino todo se vuelve una lotería.
Del testeo preliminar de minúsculas, mayúsculas, figuras y símbolos obtendrás un espaciado parejo y armónico pero no óptimo. Más adelante, con los parámetros particulares, podrás resolver esto.
Los valores en la ventana HT Letterspacer UI no quedan guardados, es una instancia de prueba. Si trabajas en una fuente multiple master y cargas los valores para el máster light, luego vas al bold y cambias los valores, al volver al light verás los valores del bold. Trabaja un máster a la vez e ve pasando los parámetros de la ventana UI al máster correspondiente en el master info.
Paso 05
Cómo pasar los valores a cada máster
Una vez definidos los valores en la ventana emergente, debes cargarlos en el máster correspondiente. Esto es bastante simple.
Resumen
- Es importante recordar que para aplicar el espaciador los glifos deben estar seleccionados.
- Saber qué parámetro corresponde a cada blanco te evitará trabajar a ciegas y jugar a la lotería.
- La ventana UI no guarda los valores. Pasa los parámetros generales a la información de cada máster.
- Los parámetros generales se calculan contrastando minúsculas. El resto de los signos tendrán un espaciado parejo o constante. Podrás ajustar esto con los parámetros particulares.
Función rápida de teclado
Puedes establecer un acceso a través del teclado para esta herramienta yendo a Preferencias del Sistema > Teclado. Selecciona "Funciones rápidas de apps" a la izquierda, haz clic en el botón Añadir +, haz clic en el menú desplegable Aplicaciones y selecciona la app Glyphs. Si no está en la lista, selecciona Otra y busca las apps mediante el cuadro de diálogo Abrir.
En el campo "Título del menú", escribe el comando del menú Script→HT_LetterSpacerUI. Haz clic en el campo "Función rápida de teclado", pulsa la combinación que quieras usar y haz clic en Añadir.
Paso 06
Aplicar el HT Letterspacer a toda la fuente
Ahora que ya están los parámetros de espaciado copiados en cada máster, puedes hacer correr el macro en toda la fuente:
- Seleccionas todos los glifos.
- Vas al menú Script > HTLetterspacer > HTLetterspacer.
Paso 07
Archivo de configuración y parámetros particulares
Como ya has leído, los parámetros generales realizan el espaciado contrastando minúsculas. Por tal motivo, las otras categorías o subcategorías de signos deben ser ajustadas: el resultado será correcto en las lowercase pero es muy probable que en uppercase esté apretado.
En los pasos iniciales se generó un archivo de configuración. Este archivo contiene las instrucciones para resolver este problema y ajustar los parámetros generales a las necesidades particulares de cada grupo de signos.
Encontrarás este archivo en la misma carpeta donde está guardado el archivo de la fuente, se llama igual a ella más la extensión _autospace.py. Al abrirlo con un editor de texto (Sublime Text, Visual Studio Code, etc.) encontrarás lo siguiente:
# Reference
# Script, Category, Subcategory, case, value, referenceGlyph, filter
# Letters
*,Letter,*,upper,2,H,*,
*,Letter,*,smallCaps,1.4,h.sc,*,
*,Letter,*,lower,1,x,*,
*,Letter,*,minor,0.7,m.sups,.sups,
# Numbers
*,Number,Decimal Digit,*,1.5,one,*,
*,Number,Decimal Digit,*,1.2,zero.osf,.osf,
*,Number,Fraction,minor,1.3,*,*,
*,Number,*,*,0.8,*,.dnom,
*,Number,*,*,0.8,*,.numr,
*,Number,*,*,0.8,*,.inferior,
*,Number,*,*,0.8,*,superior,
# Punctuation
*,Punctuation,Other,*,1.5,*,*,
*,Punctuation,Parenthesis,*,1.8,*,*,
*,Punctuation,Quote,*,3,*,*,
*,Punctuation,Dash,*,1.5,*,*,
*,Punctuation,*,*,1,*,slash,
*,Punctuation,*,*,1.2,*,*,
# Symbols
*,Symbol,Currency,*,1.6,*,*,
*,Symbol,*,*,1.5,*,*,
*,Mark,*,*,1,*,*,
# Devanagari
devanagari,Letter,Other,*,1,devaHeight,*,
devanagari,Letter,Ligature,*,1,devaHeight,*,
Es importante prestar atención a este archivo: aquí se encuentra la principal diferencia entre el uso de HT Letterspacer en Glyphs 2 y en Glyphs 3.
En Glyphs 3 se incorpora el parámetro case que solo aplica a la categoría letters. El resto de las categorías siguen el mismo criterio que en Glyphs 2.
Al abrir el archivo elnombredetufuente_autospace.py con un editor de texto, encontrarás una serie de valores estándar que son solo un punto de partida. La idea es que puedas personalizarlo y ajustarlo a las necesidades específicas de tu fuente.
De la misma manera que para ajustar los parámetros generales fueron definidos los actores que intervienen (LSB, RSB, ancho de caja, etc.), aquí lo que debes aprender es a leer e interpretar este archivo para poder modificarlo.
En las primeras dos líneas se presenta comentado el esqueleto del documento (el # introduce un comentario sin valor de instrucción). Esta secuencia se repite en los siguientes párrafos del archivo.
Los parámetros que declara son los siguientes:
- Script: indica el sistema de escritura que afecta —latin, devanagari, cirílico, etc.— si usas * indicas que afecta a todos los scripts.
- Category: indica qué categoría de signos —letters, numbers, punctuation, symbols— o * que incluye a todas las categorías.
- Subcategory: este parámetro no aplica a la categoría letras (lo vemos en el ejemplo siguiente).
- case: describe la caja afectada de la categoría letters. Podría ser upper, smallCaps, lower, minor o * que incluye a todas.
- value: es el coeficiente por el cual se multiplica el espacio definido en los parámetros generales. Si utilizas 1, los valores se aplican sin modificación. Por lo tanto, para la categoría letters, case lower el valor que corresponde es 1; para upper y smallCaps, como el espaciado debe ser más amplio, será un valor mayor a 1; y para minor, menor a 1.
- referenceGlyph: este signo de referencia determina la altura de equis, el límite vertical de los parámetros generales. En las minúsculas sería una x, en las mayúsculas una H (digo sería porque aquí podemos reemplazarlo por otro signo). Es importante tenerlo en cuenta para las letras o números volados, pues estos signos se desarrollan casi en su totalidad fuera de la altura de x: en la subcategoría Superscript el signo de referencia debería ser x.sups.
- filter: aquí puedes especificar una cadena de texto para agrupar glifos y reducir el alcance de la clasificación. Por ejemplo .ss01, ord o sencillamente *.
Por lo tanto esto se leería: A todas las letras Uppercase del script Latin se multiplicará el valor asignado en los parámetros generales × 1.25, tomando como referencia de altura el glifo H.
- Script: * indica que afecta a todos los scripts.
- Category: Punctuation.
- Subcategory: en este caso Dash. Podría ser Parenthesis, Quote, Other, Fullwidth, o *.
- case: * afecta a todas.
- value: multiplico por 1.5 el valor declarado en los parámetros generales.
- referenceGlyph: no se declara, por lo tanto la altura de referencia es el glifo x.
- filter: no se declara ningún filtro de búsqueda.
Por lo tanto esto se leería: A todos los signos de puntuación dentro de la subcategoría Dash multiplicar × 1.5 el valor de espaciado resultante en los parámetros generales.
Esta lista de parámetros —Script, Category, Subcategory, case— podemos reconocerla en la columna de la izquierda de la ventana principal de Glyphs. También podemos investigar un poco más sus posibilidades en el Glyph info: seleccionando uno o varios glifos y luego yendo a Edit > Info for Selection o presionando ⌥ Alt ⌘ Cmd I.
Paso 08
Ejemplos
Ejemplo 1: no puedes establecer excepciones.
Es importante mencionar que no es posible excluir signos. Una solución posible a esta situación es no seleccionar los glifos que deseas que no sean afectados por este método al hacer correr el script por la fuente.
Otra opción podría ser no pensarlo desde la excepción, o sea, incluir esa situación a través de un filtro y transformar la excepción en una particularidad dentro de una categoría/subcategoría.
# Numeros Romanos
Latin,Letter,*,lower,1.5,RomanNumbersHeight,.ss02,
- Latin sistema de escritura.
- Letter categoría.
- * todas las subcategorías.
- case lower, o sea la caja baja.
- 1 valor.
- RomanNumbersHeight glifo de referencia: redefine la altura de x medible.
- ss02 filtro: la excepción es incluida como particularidad dentro de un grupo.
Ejemplo 2:
Latin,Letter,*,Uppercase,1.25,H,*,
Latin,Letter,*,Uppercase,1.4,H,E,
Observa la primera línea, donde el valor del parámetro filter es *, y en la segunda línea el valor E. Esto se lee: todas las mayúsculas usarán la letra H como referencia, y aplicará a todas las mayúsculas el coeficiente 1.25; pero en la segunda línea hay una nueva regla que indica que para el filtro E el coeficiente será 1.4. (Al igual que OpenType, se va sobreescribiendo.)
Comprender y asimilar este paso es fundamental para lograr explotar al máximo la posibilidad de esta herramienta. Aquí la importancia del sistema, las categorías y subcategorías, o la definición de filtros y glifos de referencias son un factor importante para diseñar ajustes que identifican y resuelven los detalles.
El archivo de configuración no es una fórmula rígida y está abierto a la creatividad de cada diseñador. Multiplicar los parámetros no siempre da los resultados esperados, pero puedes volver al comienzo, redefinir los parámetros, declarar nuevas categorías o subcategorías, determinar glifos de referencias o filtros, y de esta manera llegar al espaciado que estás buscando.
Es una herramienta que propone pensar el espacio desde el blanco, partiendo de lo general para luego profundizar en las particularidades.
Paso 09
Preguntas frecuentes
¿Es necesario tener un archivo de configuración por cada máster?
El archivo de configuración presenta como valor el coeficiente por el cual se multiplicará el valor de los parámetros generales de cada máster. Necesitas tener los parámetros generales copiados en cada máster y un solo archivo de configuración.
¿Es necesario tener los sidebearings en cero?
No necesitas que los sidebearings estén en cero para utilizar HT Letterspacer. Esta herramienta reemplaza los valores que hayas puesto manualmente.
¿Qué ocurre con las reglas de espaciado?
¿Qué ocurre con el kerning?
HT Letterspacer no es una herramienta para desarrollar el kerning de una fuente tipográfica. Se recomienda enfáticamente realizar la revisión del kerning una vez que la instancia del espaciado está resuelta.
Paso 10
Links relacionados
Paso 11
Bibliografía
- El trazo. Teoría de la escritura. Gerrit Noordzij. Traducción Carlos García Aranda. 2009. Campgràfic Editors.
- Espaçamento de fontes, Eduardo Novais
- FreeType Glyph Conventions: I Basic Typographic Concepts
- FreeType Glyph Conventions: II Glyph Outlines
- FreeType Glyph Conventions: III Glyph Metrics
- Hacer y Componer, Francisco Gálvez Pizarro, Ediciones UC, Chile, 2018.
- How to Space a Font. FontLab Studio 5 tutorial with Thomas Phinney.
- I Love Typography, Typography Terms (S)
- Los elementos del estilo tipográfico, versión 3.1, Robert Bringhurst, primera edición en español 2008.
- LS Cadencer Tools, Frank E. Blokland
- On the Origin of Patterning in Movable Latin Type
- Stan Nelson: Making Type
Crédito
Por Carolina Giovagnoli — Revisión Sep. 2021
Update 2019-06-07: corregidas algunas erratas reportadas por Yolmar Campos.
Update 2026-05-21: rediseño y algunas correcciones.
Si quieres ayudar a sostener este proyecto, puedes donar lo que quieras.