fontmake
compila fuentes de varias fuentes ( .glyphs
, .ufo
, designspace
) en binarios ( .otf
, .ttf
). Puede usarlo para crear instancias estáticas y fuentes variables.
Fontmake requiere Python 3.8 o posterior.
Las versiones están disponibles en PyPI y se pueden instalar con pip.
pip3 install fontmake
Utilice la opción -U
, --upgrade
para actualizar fontmake y sus dependencias a la versión más reciente disponible:
pip3 install -U fontmake
Después de la instalación, podrá utilizar el ejecutable fontmake
.
Por ejemplo, para compilar una fuente variable a partir de un archivo fuente de Glyphs, utilice:
fontmake MyFont.glyphs -o variable
Los argumentos de línea de comando más importantes para el ejecutable fontmake
son la entrada requerida, especificada como argumento posicional o usando uno de los indicadores -g
/ -u
/ -m
, y el indicador opcional -o
, que elige el formato del archivo de salida.
Hay dos formas de especificar el archivo o archivos de origen:
Se pueden utilizar las siguientes banderas, mutuamente excluyentes:
-g filename.glyphs
: convierte un archivo fuente de Glifos a binario.-u filename.ufo ...
: convierte uno o más archivos UFO(Z) a binarios.-m filename.designspace
: convierte un archivo Designspace a binario. (El -m
es para mutatormath
, una antigua biblioteca de Python para manejar espacios de diseño). Alternativamente, se pueden especificar las entradas como argumentos posicionales sin la bandera, permitiendo que fontmake infiera el formato fuente a partir de la extensión del archivo: por ejemplo, fontmake MyFont.designspace
, etc.
Nota: si los argumentos posicionales están precedidos por una opción que toma uno o más argumentos, debe usar el separador especial --
para marcar todos los argumentos siguientes como posicionales (sin opciones); de lo contrario, el analizador se confunde. Por ejemplo, la opción -i
toma cero o un argumento (ver más abajo para más detalles); sin --
, argparse cree que no proporcionaste ninguna entrada:
fontmake -i -- MyFont.designspace
Se puede/debe especificar exactamente un tipo de entrada, utilizando cualquiera de los dos enfoques.
Puede proporcionar uno o más formatos de archivo de salida después de la opción -o
. Por ejemplo, -o otf ttf
crea archivos de fuentes binarias OTF y TTF para cada maestro en su archivo de entrada.
Están disponibles los siguientes formatos de archivos de salida:
otf
: binarios OTF (esquema CFF) por maestro. Ubicado en el directorio master_otf/
.ttf
: binarios TTF (esquema TrueType) por maestro. Ubicado en el directorio master_ttf/
.otf-cff2
: binarios OTF por maestro con esquemas CFF2. Ubicado en el directorio master_otf/
.variable
: una fuente variable TrueType. Colocado en el directorio variable_ttf/
.variable-cff2
: una fuente variable con contornos CFF2. Colocado en el directorio variable_otf/
.Los siguientes formatos de archivos de salida también están disponibles, pero fontmake generalmente los usa internamente como un paso intermedio para una de las salidas anteriores:
otf-interpolatable
: binarios OTF adecuados para fusionarse en una fuente variable. Colocado en el directorio master_otf_interpolatable/
. (Estos se diferencian de otf
en que los contornos no están optimizados).ttf-interpolatable
: binarios TTF adecuados para fusionarse en una fuente variable. Colocado en el directorio master_ttf_interpolatable/
. (Los contornos se convierten en curvas cuadráticas de una manera compatible con la interpolación).ufo
: Las fuentes de glifos se pueden convertir a UFO o al formato UFO zip ( .ufoz
) con la bandera --save-ufo-as-zip
. Colocado en el directorio master_ufo/
. Si no se especifica ninguna opción de formato, el valor predeterminado es -o otf ttf
.
-i
(Interpolar instancias): Tener archivos binarios por maestro no siempre es lo que se espera; Si ha definido instancias ("exportaciones") en su archivo Glyphs, no se generarán de forma predeterminada. Para generarlos, pase el indicador -i
, que interpola instancias estáticas y las coloca en el directorio instance_ttf/
o instance_otf/
según corresponda.
--output-dir <some_directory>
: coloca todos los resultados en el directorio dado, en lugar de los directorios por formato mencionados anteriormente.
--output-path <filename>
>: esto solo es válido si la salida es un único archivo binario y escribe la salida en el nombre de archivo dado.
-f
(Aplanar componentes): garantiza que cualquier glifo que contenga componentes que a su vez contenga componentes se descomponga en un solo nivel. Esto se recomienda ya que ciertos entornos de renderizado no manejan correctamente los componentes anidados; consulte este enlace para obtener más detalles.
Consulte USAGE.md
Consulte TROUBLESHOOTING.md
.
Los desarrolladores pueden obtener la última versión de fontmake
clonando el repositorio de git:
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Los desarrolladores que quieran probar rápidamente los cambios en el código fuente sin reinstalarlo pueden usar la opción "--editable" al instalar desde una fuente local:
pip install -e .
Se recomienda instalar fontmake dentro de un entorno virtual para evitar conflictos entre sus dependencias y otros módulos instalados globalmente.
También puede utilizar la herramienta pipx para automatizar la instalación/actualización de aplicaciones de Python como fontmake en entornos aislados.
git tag -a v3.1.1
git push origin v3.1.1
, donde origin
es el nombre del control remoto habitual al que desea enviar la versión.