특정 newtx 글꼴을 트루타입 또는 오픈타입으로 변환

특정 newtx 글꼴을 트루타입 또는 오픈타입으로 변환

나는 산세리프 문자에 Helvetica 복제본을 사용하고 그리스 문자에 Times 복제본을 사용하기 때문에 newtx 패키지를 좋아한다는 것을 알았습니다. 이러한 복제 글꼴의 오픈타입 또는 트루타입 버전을 생성하려면 어떻게 해야 합니까? 다른 응용 프로그램에서 사용할 수 있도록 시스템 글꼴로 설치하고 싶습니다.

newtx 패키지로 설치된 글꼴 파일을 찾아보니 글꼴 정의 파일(.fd), 글꼴 메트릭 파일(.tfm, .afm)이 있는데 글꼴 개요 파일(.pfb)이 몇 개밖에 없습니다. . 'ntxmi'(기울임꼴 수학 글꼴), 'ntxmia'(직립 수학 글꼴) 또는 'ntxss'(sans-serif 글꼴)에 대한 글꼴 개요 파일을 찾을 수 없는 것 같습니다. pdfLaTeX는 이러한 글꼴 개요 파일을 어디에서 가져옵니까? 일단 갖고 나면 어떻게 해야 합니까?

중요한 경우에는 글꼴 포지(Font Forge)를 설치했지만 사용법에 대해서는 전문가가 아닙니다.

답변1

해당 글꼴에 대한 윤곽선 글꼴은 없으며 가상 글꼴입니다. 즉, 본질적으로 각 "문자"는 다른 글꼴의 문자를 결합하는 DVI 코드의 일부이며 일반적으로(반드시 그런 것은 아니지만) 각 글꼴은 다음 중 하나의 문자 모양을 사용합니다. 구성 글꼴. (특수한 경우 가상 글꼴의 단일 문자가 서로 다른 글꼴의 여러 문자로 구성될 수 있습니다.) vf 파일은 간격 및 위치 세부 정보도 인코딩합니다.

가상 글꼴을 사용하여 생성된 PDF 파일을 보면 사용 중인 가상 글꼴이 표시되지 않지만 대신 구성 글꼴(이 글꼴의 경우 일반적으로 일반 윤곽선 글꼴)이 표시됩니다.

vf 파일을 사람이 읽을 수 있는 속성 목록 형식으로 변환하고 다음을 사용하여 구성 글꼴을 볼 수 있습니다.

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

(또는 시스템의 동등한 경로)

물론 이론적으로는 Font Forge와 같은 글꼴 편집기를 사용하여 구성 요소를 결합하고 적절한 커닝을 모두 설정하여 실제로 글꼴을 만드는 것이 가능하지만 본질적으로 새로운 글꼴 생성 프로젝트가 될 것이며 기존 vf 파일은 아마도 그렇지 않을 것입니다. 그것에 많은 도움이 됩니다.

답변2

이것을 주석에 넣을 수는 없지만 다음은 ntxmia.vf에 대한 vftopl 출력의 일부입니다.

이러한 각 MAPFONT 명령은 다음 명령을 구성하는 데 사용되는 가상이 아닌 글꼴에 해당합니다.

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

따라서 여기에는 9개의 글꼴이 사용됩니다. 0으로 표시된 것이 주요 기본값입니다. 즉, 별도로 지정하지 않는 한 txmia에서 문자를 가져옵니다.

첫 번째 슬롯(슬롯 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)
      )
   )

이렇게 하면 원본 글꼴의 자연스러운 위치를 기준으로 문자의 위치가 조정됩니다. 즉, TeX는 캐릭터를 위한 공간을 만들기 전에 약간 움직이다가 다른 방향으로 약간 움직입니다. (TeX에 관한 한 모든 문자는 직사각형 상자입니다.)

이후 슬롯의 캐릭터는 다음과 같습니다.

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

SELECTFONT 명령어는 이 문자가 txmia가 아니라 txsyc에서 가져와야 한다고 말합니다.

이 캐릭터는 이전 두 가지 아이디어를 결합하여 만들어졌습니다.

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

이번에는 rtxmio에서 캐릭터를 가져왔지만, TeX도 설정 전후에 어느 정도 움직입니다(이번에는 같은 방향으로 2번).

David Carlisle이 설명했듯이 가상 글꼴은 완전히 새로운 문자를 만들 수도 있습니다. 예를 들어 글꼴에 fi ligature가 없으면 가상 글꼴의 적절한 슬롯에 f와 i를 결합하여 글꼴을 만들 수 있습니다. (물론, 실제 합자는 아닙니다. 단지 f 다음에 i가 오는 것일 뿐이지만 'fish'와 같은 단어를 쉽게 조판할 수 있습니다.)

관련 정보