fontmake
compila fontes de várias fontes ( .glyphs
, .ufo
, designspace
) em binários ( .otf
, .ttf
). Você pode usá-lo para criar instâncias estáticas e fontes variáveis.
Fontmake requer Python 3.8 ou posterior.
As versões estão disponíveis no PyPI e podem ser instaladas com pip.
pip3 install fontmake
Use a opção -U
, --upgrade
para atualizar o fontmake e suas dependências para a versão mais recente disponível:
pip3 install -U fontmake
Após a instalação, você poderá usar o executável fontmake
.
Por exemplo, para compilar uma fonte variável de um arquivo fonte Glyphs, use:
fontmake MyFont.glyphs -o variable
Os argumentos de linha de comando mais importantes para o executável fontmake
são a entrada necessária, especificada como argumento posicional ou usando um dos sinalizadores -g
/ -u
/ -m
, e o sinalizador opcional -o
, que escolhe o formato do arquivo de saída.
Existem duas maneiras de especificar o arquivo ou arquivos de origem:
Pode-se usar os seguintes sinalizadores, mutuamente exclusivos:
-g filename.glyphs
: converte um arquivo de origem Glyphs em binário.-u filename.ufo ...
: Converte um ou mais arquivos UFO(Z) em binário.-m filename.designspace
: converte um arquivo Designspace em binário. (O -m
é para mutatormath
, uma antiga biblioteca Python para lidar com designspaces.) Alternativamente, pode-se especificar a(s) entrada(s) como argumentos posicionais sem o sinalizador, permitindo que fontmake infira o formato de origem a partir da extensão do arquivo: por exemplo, fontmake MyFont.designspace
, etc.
Nota: se os argumentos posicionais forem precedidos por uma opção que recebe um ou mais argumentos, você precisará usar o separador especial --
para marcar todos os argumentos seguintes como posicionais (não opções), caso contrário o analisador ficará confuso. Por exemplo, a opção -i
aceita zero ou um argumento (veja mais detalhes abaixo); sem --
, argparse acha que você não forneceu nenhuma entrada:
fontmake -i -- MyFont.designspace
Exatamente um tipo de entrada pode/deve ser especificado, usando qualquer uma das abordagens.
Você pode fornecer um ou mais formatos de arquivo de saída após a opção -o
. Por exemplo, -o otf ttf
cria arquivos de fontes binárias OTF e TTF para cada mestre em seu arquivo de entrada.
Os seguintes formatos de arquivo de saída estão disponíveis:
otf
: binários OTF por mestre (contorno CFF). Colocado no diretório master_otf/
.ttf
: Binários TTF (TrueType-outline) por mestre. Colocado no diretório master_ttf/
.otf-cff2
: Binários OTF por mestre com contornos CFF2. Colocado no diretório master_otf/
.variable
: uma fonte variável TrueType. Colocado no diretório variable_ttf/
.variable-cff2
: Uma fonte variável com contornos CFF2. Colocado no diretório variable_otf/
.Os seguintes formatos de arquivo de saída também estão disponíveis, mas geralmente são usados internamente pelo fontmake como uma etapa intermediária para uma das saídas acima:
otf-interpolatable
: binários OTF adequados para mesclar em uma fonte variável. Colocado no diretório master_otf_interpolatable/
. (Eles diferem do otf
porque os contornos não são otimizados.)ttf-interpolatable
: binários TTF adequados para mesclar em uma fonte variável. Colocado no diretório master_ttf_interpolatable/
. (Os contornos são convertidos em curvas quadráticas de forma compatível com interpolação.)ufo
: As fontes dos glifos podem ser convertidas para o formato UFO ou para o formato UFO zip ( .ufoz
) com o sinalizador --save-ufo-as-zip
. Colocado no diretório master_ufo/
. Se nenhuma opção de formato for especificada, o padrão será -o otf ttf
.
-i
(Interpolar instâncias): Ter binários por mestre nem sempre é o que você espera; se você definiu instâncias ("exportações") em seu arquivo Glyphs, elas não serão geradas por padrão. Para gerá-los, passe o sinalizador -i
, que interpola instâncias estáticas e as coloca no diretório instance_ttf/
ou instance_otf/
conforme apropriado.
--output-dir <some_directory>
: Coloca todas as saídas no diretório fornecido, em vez dos diretórios por formato mencionados acima.
--output-path <filename>
: Isso só é válido se a saída for um único arquivo binário e grava a saída no nome de arquivo fornecido.
-f
(Achatar componentes): Garante que quaisquer glifos que contenham componentes que contenham componentes sejam decompostos em um único nível. Isso é recomendado porque certos ambientes de renderização não lidam corretamente com componentes aninhados - consulte este link para obter mais detalhes.
Consulte USAGE.md
.
Consulte TROUBLESHOOTING.md
.
Os desenvolvedores podem obter a versão mais recente do fontmake
clonando o repositório git:
git clone https://github.com/googlefonts/fontmake
cd fontmake
pip install .
Os desenvolvedores que desejam testar rapidamente as alterações no código-fonte sem reinstalar podem usar a opção "--editable" ao instalar a partir de um checkout de origem local:
pip install -e .
Recomenda-se instalar o fontmake dentro de um ambiente virtual para evitar conflitos entre suas dependências e outros módulos instalados globalmente.
Você também pode usar a ferramenta pipx para automatizar a instalação/atualização de aplicativos python como fontmake em ambientes isolados.
git tag -a v3.1.1
git push origin v3.1.1
, onde origin
é o nome do controle remoto normal para o qual você deseja enviar a versão.