LaTeX - Fazer com que o MetaFont faça o que você quer
LaTeX.net.br > LaTeX FAQ > Fontes > Fontes MetaFont > Fazer com que o MetaFont faça o que você quer
Fazer com que o MetaFont faça o que você quer
O MetaFont permite que você crie suas próprias fontes, e a maioria dos usuários do TeX nunca vai precisar usá-lo — os sistemas (La)TeX modernos possuem muito poucas fontes significativas do MetaFont e, quando a saída do MetaFont é necessária, a geração da fonte é feita automaticamente, "on the fly".
Se você precisar de algum requisito especial que o sistema não satisfaça, você vai precisar conhecer mais detalhadamente o MetaFont. O MetaFont, diferentemente do TeX, requer customização para cada dispositivo de saída: tal customização é convencionalmente feita em um "modo" associado ao dispositivo. Modos são comumente definidos usando a convenção mode_def descrita na página 94 do The MetaFontbook (veja [[[Qref]]][question][[[LBRACE]]]TeX[[[RBRACE]]] Sua distribuição deveria fornecer um arquivo, convencionalmente chamado de local.mf, contendo todas as mode_def que você vai usar. No improvável evento em que o local.mf ainda não exista, a coleção de modos de Karl Berry (modes.mf) é um bom ponto de partida (ela pode ser usada como um 'local.mf' sem modificação em uma implementação moderna do MetaFont). Configurações para novos dispositivos de saída são adicionadas ao modes.mf à medida que elas se tornam disponíveis.
Agora, crie um arquivo base plain usando mf (no modo "initialization"), plain.mf, e local.mf:
Este é o METAFONT...
**plain # você digita plain
*input local # você digita isto
*dump # você digita isto
Isto criará um arquivo base chamado plain.base ((ou algo parecido; por exemplo, será PLAIN.BAS em sistemas MSDOS). systems). Mova o arquivo para o diretório que contém os arquivos base em seu sistema e execute o texhash conforme necessário. Agora você precisa se certificar de que o MetaFont carregue esta nova base quando for iniciado. Se o MetaFont carregar a base plain por padrão no seu sistema, então você estará pronto para continuar. No Unix (usando as distribuições padrão do texlive e anteriores), isso de fato acontece, mas nós podemos, por exemplo, definir um comando plainmf †† Já que um comando plain poderia ser mal interpretado como uma referência ao Plain TeX que execute 'mf -base=plain' (ou, em estilo mais tradicional, 'mf &plain') que carrega o arquivo base plain.
A maneira usual de criar uma fonte com o MetaFont (com um arquivo base apropriado carregado) é iniciar a entrada do MetaFont com a linha line
\mode=; mag=; input
em resposta ao prompt '**' ou na linha de comando do MetaFont. (Se for desconhecido ou omitido, o modo é revertido para o modo 'proof' e o MetaFont produzirá um arquivo de saída chamado .2602gf) A é um número de ponto flutuante ou um "magstep" (magsteps definem tamanhos, indicando quantas vezes você precisa multiplicar um tamanho base por 1,2, ou seja, para um tamanho base de 1.2, ou seja, para um tamanho base de 10, magstep 1 é 12, magstep 2 é 14.4 Se mag= for omitido, então o padrão é 1 (magstep 0). Por exemplo, para gerar cmr10 de 12pt para uma impressora Epson, você deve digitar
Observe que, no Unix, os caracteres \ e ; geralmente têm que estar entre aspas ou escapados, o que resulta em algo tipicamente parecido com
mf '\mode=epson; mag=magstep 1; input cmr10'
Se você precisar de um modo especial que não esteja na base, você pode colocar os comandos dele em um arquivo (por exemplo, ln03.mf) e requisitá-lo on the fly com o comando \smode. Por exemplo, para criar cmr10.300gf para uma impressora LN03 usando o arquivo
pixels_per_inch:=300;
(note a ausência dos comandos mode_def e enddef), você digitaria
Esta não é uma técnica que você deva usar regularmente, mas ela pode ser útil se você adquirir uma nova impressora e quiser experimentar parâmetros ou se, por algum outro motivo, você estiver regularmente editando os parâmetros que está usando. Uma vez estabelecido um conjunto apropriado de parâmetros, você deve usá-los para reconstruir o arquivo base que você usa.