Konvertieren Sie bestimmte Newtx-Schriftarten in TrueType oder OpenType

Konvertieren Sie bestimmte Newtx-Schriftarten in TrueType oder OpenType

Mir gefällt das Paket newtx, weil es einen Helvetica-Klon für serifenlose Zeichen und einen Times-Klon für griechische Buchstaben verwendet. Wie kann ich OpenType- oder TrueType-Versionen dieser Klonschriften generieren? Ich möchte sie als Systemschriften installieren, damit andere Anwendungen sie verwenden können.

Wenn ich nach Schriftdateien suche, die mit dem Paket newtx installiert wurden, sehe ich, dass es Schriftdefinitionsdateien (.fd), Schriftmetrikdateien (.tfm und .afm) gibt, aber nur wenige Schriftumrissdateien (.pfb). Ich kann die Schriftumrissdateien für „ntxmi“ (mathematische Kursivschrift), „ntxmia“ (mathematische Aufrechtschrift) oder „ntxss“ (serifenlose Schrift) nicht finden. Woher bezieht pdfLaTeX diese Schriftumrissdateien? Was mache ich mit ihnen, wenn ich sie habe?

Falls es wichtig ist: Ich habe Font Forge installiert, bin aber kein Experte in seiner Verwendung.

Antwort1

Für diese Schriftart gibt es keine Umrissschriftart, es handelt sich um eine virtuelle Schriftart, was bedeutet, dass jedes „Zeichen“ im Wesentlichen ein Fragment eines DVI-Codes ist, der Zeichen aus anderen Schriftarten kombiniert. Normalerweise (aber nicht notwendigerweise) verwendet jedes Zeichen eine Glyphe aus einer der Bestandteilsschriftarten. (In besonderen Fällen kann ein einzelnes Zeichen in der virtuellen Schriftart aus mehreren Zeichen aus möglicherweise unterschiedlichen Schriftarten bestehen.) Die VF-Datei codiert auch Angaben zu Abstand und Positionierung.

Wenn Sie sich eine PDF-Datei ansehen, die mit der virtuellen Schriftart erstellt wurde, sehen Sie nicht die verwendete virtuelle Schriftart, sondern die enthaltenen Schriftarten (bei dieser Schriftart handelt es sich typischerweise um normale Konturschriftarten).

Sie können die vf-Datei in eine menschenlesbare Eigenschaftsliste konvertieren und die enthaltenen Schriftarten anzeigen mit

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

(Oder welcher entsprechende Pfad auch immer auf Ihrem System ist)

Theoretisch wäre es natürlich möglich, die Schriftart mit einem Schriftarteneditor wie Font Forge zu erstellen, die Bestandteile zu kombinieren und das entsprechende Kerning festzulegen. Im Grunde wäre das aber ein neues Schriftartenerstellungsprojekt und die vorhandene VF-Datei ist dabei wahrscheinlich keine große Hilfe.

Antwort2

Ich kann das nicht in einen Kommentar einfügen, aber hier ist ein Teil der Ausgabe von vftopl für ntxmia.vf:

Jeder dieser MAPFONT-Befehle entspricht einer nicht virtuellen Schriftart, die zum Erstellen dieser verwendet wurde:

(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)
   )

Hier werden also 9 Schriftarten verwendet. Die mit 0 gekennzeichnete ist die wichtigste, standardmäßige Schriftart. Das heißt, wenn nicht anders angegeben, werden die Zeichen aus txmia übernommen.

Hier ist das dem ersten Slot (Slot 0) zugewiesene Zeichen:

(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)
      )
   )

Dadurch wird die Position des Zeichens relativ zu seiner natürlichen Position in der Originalschriftart angepasst. Das heißt, TeX bewegt sich leicht, bevor es Platz für das Zeichen schafft, und bewegt sich dann leicht in die andere Richtung. (Soweit es TeX betrifft, sind alle Zeichen rechteckige Kästen.)

Hier ist ein Charakter aus einem späteren Slot:

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

Der SELECTFONT-Befehl besagt, dass dieses Zeichen nicht aus txmia, sondern aus txsyc übernommen werden soll.

Dieser Charakter entsteht durch die Kombination der beiden vorherigen Ideen:

(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)
      )
   )

Das Zeichen wird dieses Mal von rtxmio übernommen, aber TeX wird sich vor und nach dem Setzen auch etwas bewegen (dieses Mal zweimal in die gleiche Richtung).

Virtuelle Schriftarten können auch völlig neue Zeichen erstellen, wie David Carlisle erklärte. Wenn einer Schriftart beispielsweise die Ligatur fi fehlt, können Sie eine erstellen, indem Sie das f und das i im entsprechenden Slot der virtuellen Schriftart kombinieren. (Natürlich ist das keine echte Ligatur, sondern nur ein f gefolgt von einem i, aber Wörter wie „fish“ lassen sich damit problemlos setzen.)

verwandte Informationen