Converta certas fontes newtx para truetype ou opentype

Converta certas fontes newtx para truetype ou opentype

Descobri que gosto do pacote newtx porque ele usa um clone Helvetica para caracteres sem serifa e um clone do Times para letras gregas. Como posso gerar versões opentype ou truetype dessas fontes clones? Quero instalá-los como fontes do sistema para que outros aplicativos possam usá-los.

Quando procuro arquivos de fontes instalados com o pacote newtx, vejo que existem arquivos de definição de fonte (.fd), arquivos de métrica de fonte (.tfm e .afm), mas existem apenas alguns arquivos de contorno de fonte (.pfb) . Não consigo localizar os arquivos de contorno de fonte para 'ntxmi' (fonte matemática em itálico), 'ntxmia' (fonte matemática vertical) ou 'ntxss' (fonte sem serifa). Onde o pdfLaTeX está capturando esses arquivos de contorno de fonte? Depois de tê-los, o que faço com eles?

Caso seja importante, tenho o Font Forge instalado, mas não sou especialista em seu uso.

Responder1

Não há fonte de contorno para essa fonte, é uma fonte virtual, o que significa que essencialmente cada "caractere" é um fragmento de código DVI que combina caracteres de outras fontes, normalmente (embora não necessariamente) cada um usa um glifo de uma das fontes. fontes constituintes. (Em casos especiais, um único caractere na fonte virtual pode ser construído a partir de vários caracteres de fontes possivelmente diferentes) O arquivo vf também codifica detalhes de espaçamento e posicionamento.

Se você olhar em um arquivo pdf gerado usando a fonte virtual, você não verá a fonte virtual sendo usada, mas verá as fontes constituintes (que para esta fonte, e normalmente, são fontes de contorno normais).

Você pode converter o arquivo vf em um formato de lista de propriedades legível por humanos e ver as fontes constituintes com

vftovp /usr/local/texlive/2013/texmf-dist/fonts/vf/public/newtx/ntxmia.vf

(Ou qualquer caminho equivalente no seu sistema)

É claro que seria em teoria possível criar a fonte usando um editor de fontes como o font forge para combinar os constituintes e definir todo o kerning apropriado, mas seria essencialmente um novo projeto de criação de fonte, o arquivo vf existente provavelmente não é muita ajuda nisso.

Responder2

Não posso comentar, mas aqui está parte da saída do vftopl para ntxmia.vf:

Cada um destes comandos MAPFONT corresponde a uma fonte não virtual usada para construir este:

(MAPFONT D 0
   (FONTNAME txmia)
   (FONTCHECKSUM O 4141071701)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 1
   (FONTNAME txsyc)
   (FONTCHECKSUM O 2224045220)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 2
   (FONTNAME txr)
   (FONTCHECKSUM O 32212676346)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 3
   (FONTNAME ntxexb)
   (FONTCHECKSUM O 624127613)
   (FONTAT R 0.833)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 4
   (FONTNAME rtxmio)
   (FONTCHECKSUM O 2235410564)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 5
   (FONTNAME ntxsyralt)
   (FONTCHECKSUM O 20635152700)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 6
   (FONTNAME txsyb)
   (FONTCHECKSUM O 24667272411)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 7
   (FONTNAME ptmr8r)
   (FONTCHECKSUM O 4767720433)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )
(MAPFONT D 8
   (FONTNAME zxxrl7z)
   (FONTCHECKSUM O 36463136262)
   (FONTAT R 1.0)
   (FONTDSIZE R 10.0)
   )

Portanto, existem 9 fontes em uso aqui. Aquele rotulado com 0 é o principal e padrão. Ou seja, a menos que especificado de outra forma, os caracteres são retirados de txmia.

Aqui está o personagem atribuído ao primeiro slot (slot 0):

(CHARACTER O 0
   (CHARWD R 0.546)
   (CHARHT R 0.667999)
   (CHARIC R 0.05)
   (COMMENT
      (KRN O 177 R 0.035)
      )
   (MAP
      (MOVERIGHT R 0.02)
      (SETCHAR O 0)
      (MOVERIGHT R -0.03)
      )
   )

Isto ajusta a posição do caractere em relação à sua posição natural na fonte original. Ou seja, o TeX se moverá um pouco antes de abrir espaço para o personagem e então se moverá ligeiramente na outra direção. (No que diz respeito ao TeX, todos os caracteres são caixas retangulares.)

Aqui está um personagem de um slot posterior:

(CHARACTER C 6
   (CHARWD R 0.636)
   (CHARHT R 0.615)
   (CHARDP R 0.102)
   (MAP
      (SELECTFONT D 1)
      (SETCHAR C 1)
      )
   )

A instrução SELECTFONT diz que este caractere não deve ser obtido de txmia, mas sim de txsyc.

Este personagem é criado combinando as duas ideias anteriores:

(CHARACTER O 100
   (CHARWD R 0.482)
   (CHARHT R 0.6925)
   (CHARDP R 0.013499)
   (CHARIC R -0.01)
   (COMMENT
      (KRN O 177 R 0.025)
      )
   (MAP
      (MOVERIGHT R -0.01)
      (SELECTFONT D 4)
      (SETCHAR O 100)
      (MOVERIGHT R -0.02)
      )
   )

O personagem é retirado do rtxmio desta vez, mas o TeX também se moverá um pouco antes e depois de defini-lo (duas vezes na mesma direção desta vez).

As fontes virtuais também podem criar caracteres inteiramente novos, como explicou David Carlisle. Por exemplo, se uma fonte não tiver a ligadura fi, você poderá criar uma combinando seu f e seu i no slot apropriado na fonte virtual. (Claro, não será uma ligadura real - será apenas um f seguido por um i - mas permitirá que palavras como 'peixe' sejam facilmente compostas.)

informação relacionada