TFM 파일을 읽는 정확한 규칙은 무엇입니까?

TFM 파일을 읽는 정확한 규칙은 무엇입니까?

이 질문은 다음 질문에 대한 답변과 연결됩니다.TeX가 TFM 파일을 읽지 않고 어떻게 DVI를 생성합니까?

cmr10에 대한 TFM 파일만 수정하고(물론 글꼴 이름도 변경) 나머지 글꼴 관련 파일은 모두 변경하지 않고 그대로 두겠습니다.

tftopl cmr10.tfm > mycmr10.vpl
patch <<EOF
--- mycmr10.vpl
+++ mycmr10.vpl
@@ -1,3 +1,4 @@
+(MAPFONT D 0 (FONTNAME cmr10))
 (FAMILY CMR)
 (FACE O 352)
 (CODINGSCHEME TEX TEXT)
@@ -466,7 +467,7 @@
    (CHARHT R 0.694445)
    )
 (CHARACTER C A
-   (CHARWD R 0.750002)
+   (CHARWD R 0.4)
    (CHARHT R 0.683332)
    (COMMENT
       (KRN C t R -0.027779)
EOF
vptovf mycmr10.vpl

새 측정항목을 테스트합니다.

\setbox0=\hbox{A}
\showbox0
\font\myfont=mycmr10\myfont
\setbox0=\hbox{A}
\showbox0

출력에서는 새 측정항목이 작동함을 확인합니다.

\hbox(6.83331+0.0)x7.50002
\hbox(6.83331+0.0)x3.99998

이제 이 test.tex를 컴파일하세요.

\font\myfont=mycmr10\myfont
Ab
\bye

xdvi 출력에서 ​​dvips와 dvipdfmx 문자가 겹칩니다. 그럼에도 불구하고 그들 모두는 TFM 파일을 읽었습니까? dvips 출력은 이를 나타내지 않지만 xdvi는 이를 수행해서는 안 됩니다.

답변1

파일 mycmr10.vf에는 새 문자 너비가 포함됩니다. 따라서 xdvi이 소스에서 이를 알 수 있으며 문자가 겹칩니다. 그러나 이전 스레드에서 언급한 대로 파일을 xdvi읽지 않습니다 .cmr10.tfm

작업 디렉터리에서 다음을 시도해 볼 수 있습니다.

tftopl cmr10.tfm > cmr10.pl

문자 A의 너비가 달라지도록 cmr10.pl을 편집합니다.

pltotf cmr10.pl

cmr10.tfm이제 작업 디렉토리에 "잘못된 측정항목"이 있습니다 . 생성 형식:

tex -ini plain
\dump

사용 형식:

tex -fmt plain \\relax Ab\\end

그런 다음 xdvi texput겹치지 않는 문자를 표시 cmr10.pfb하지만(에서 읽은 문자 너비로 문자를 넣기 때문에) 변경된 측정항목을 dvips읽고 dvipdfmx문자를 수정합니다. 즉, 겹쳐집니다.

관련 정보