Generar automáticamente fuentes en cursiva a partir de una tipografía dada.
Actualmente estoy construyendo un script de FontForge que convierte el conjunto de fuentes Cantarell para su uso en webfonts. Sin embargo, Cantarell no tiene versiones oblicuas/itálicas de las fuentes, y prefiero generarlas automáticamente a través de FontForge. Intenté usar “foreach” para seleccionar todos los glifos y “Italic()” para generar versiones itálicas para cada uno de los glifos. Sin embargo, los resultados siguen siendo los mismos que las fuentes originales.
#!/usr/bin/fontforge
FONT_NAME = "Cantarell"
VARIANTS = ["Bold", "ExtraBold", "Light", "Regular", "Thin"]
i = 0
while (i < SizeOf(VARIANTS))
FILE_NAME = "fonts/" + FONT_NAME + "-" + VARIANTS[i] + ".otf"
FILE_NAME_ITALIC = "fonts/" + FONT_NAME + "-" + VARIANTS[i] + "Italic.otf"
Print(FILE_NAME)
Open(FILE_NAME)
Generate(FILE_NAME:r + ".svg")
Generate(FILE_NAME:r + ".eot")
Generate(FILE_NAME:r + ".ttf")
Generate(FILE_NAME:r + ".woff")
Generate(FILE_NAME:r + ".woff2")
foreach
Italic()
endloop
Generate(FILE_NAME_ITALIC)
Generate(FILE_NAME_ITALIC:r + ".svg")
Generate(FILE_NAME_ITALIC:r + ".eot")
Generate(FILE_NAME_ITALIC:r + ".ttf")
Generate(FILE_NAME_ITALIC:r + ".woff")
Generate(FILE_NAME_ITALIC:r + ".woff2")
i = i + 1
endloop
Notas:
- Sé que necesito cambiar los metadatos de las fuentes itálicas para usar en TrueType y OpenType. Sin embargo, aún necesito resolver este problema.
- Los archivos OTF originales no están disponibles directamente en https://gitlab.gnome.org/GNOME/cantarell-fonts/ (todavía debe compilarlos manualmente). Sin embargo, están fácilmente disponibles extrayendo los paquetes precompilados (por ejemplo, en el archivo DEB de Debian).
- Google Fonts distribuye una versión mucho más antigua de Cantarell y son feas, por lo que decidí hacer este script como una alternativa moderna.
davy.ai
El problema con la generación de versiones oblicuas/cursivas de las fuentes Cantarell utilizando la función
Italic()
de FontForge parece ser que solo aplica una inclinación a los glifos sin cambiar sus anchos. Esto resulta en un efecto oblicuo en lugar de un verdadero estilo cursiva. Para resolver este problema, puedes intentar usar la funciónSimplify()
de FontForge después de la funciónItalic()
para ajustar los anchos de los glifos y crear un estilo cursiva adecuado.Aquí tienes un ejemplo de cómo puedes modificar el script para generar versiones cursivas de las fuentes Cantarell utilizando las funciones
Italic()
ySimplify()
:La función
Simplify()
toma cuatro argumentos (todos números): el primero controla cuánto se reduce la dimensión x del glifo, el segundo controla cuánto se reduce la dimensión y, el tercero controla cuánto se reduce el ancho del trazo horizontal del glifo y el cuarto controla cuánto se reduce el ancho del trazo vertical del glifo. En el ejemplo anterior, solo estamos reduciendo el ancho del trazo horizontal (el tercer argumento) estableciéndolo en 1 y el resto en 0. Puedes experimentar con diferentes valores para encontrar el equilibrio correcto entre inclinación y ajuste de ancho.Recuerda que aún necesitarás actualizar los metadatos de las fuentes cursivas para usar en formatos TrueType y OpenType. Esto implica establecer los campos
post.italicAngle
ypost.italicAngle
en el diccionario Private de la fuente. Puedes usar las funciones incorporadas de FontForge o escribir un script para automatizar este proceso.