![DVI 驱动程序无法访问自定义 PK 文件](https://linux22.com/image/439795/DVI%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E8%87%AA%E5%AE%9A%E4%B9%89%20PK%20%E6%96%87%E4%BB%B6.png)
我尝试去理解新字体是如何被创建的。
- 我画了我风格的字母“L”。
- 然后我用 Metafont (MyL.mf) 对其进行了编程。
mode_setup;
fontmaking:=1;
pixels_per_inch:=600;
beginchar("L", 10pt#, 10pt#, 0);
"A stylized letter L";
z1 = (3/8 w, 7/8 h);
z2 = (1/8 w, 1/8 h);
z3 = (5/8 w, 1/8 h);
z4 = (4/8 w, 2/8 h);
pickup pencircle scaled 0.15w;
draw z1--z2--z3--z4;
penlabels(1, 2, 3, 4);
endchar;
end
- 之后我用 mf.exe (
mf MyL.mf
) 处理了 MyL.mf,得到了文件 MyL.2602gf 和 MyL.tfm。 - 然后我将 gftopk.exe 应用于 MyL.2602gf,得到了 MyL.2602pk (
gftopk MyL.2602gf MyL.2602pk
)。 - 我将 MyL.tfm 复制到了包含 sample.tex 的文件夹中。
- 我在那里写道
\documentclass{article}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\newfont{\letterL}{MyL}
\newcommand{\otherL}{{\letterL L}}
\font\myfont=MyL
\begin{document}
{\myfont L}
\otherL
\end{document}
- 我使用 latex.exe 编译了 sample.tex。然后我得到了 sample.dvi,我用 yap.exe 打开了它。
- 然后我转到 C:\Users\Vladimir\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\public\latex-fonts,在那里创建一个文件夹 dpi2602 并将 MyL.2602pk 放在那里。我以为 DVI 驱动程序会将 PK 文件带到那里的某个地方……
- 打开 DVI 文件时,Yap 生成了一条错误消息,称无法创建所有字体位图。结果,两个字母 L 都打印成了普通字母 L,而不是我所设计的样式。
我有一些疑问:
- 总体来说,我的行为顺序正确吗?
- 运行 mf.exe 和 gftopk.exe 而不使用任何选项就足够了吗?我只是将这些可执行文件应用到我的文件中。
- 我应该将 PK 文件放在哪里以便 Yap 之类的 DVI 驱动程序可以获取它?
- 所有其他 PK 文件的扩展名都是 *.pk,但我的文件是 *.2602pk。如何获取 *.pk 文件?
答案1
所以我用自己的字体成功了。感谢回答者。自上述第 3 点以来,我做了一些更改。
我创建了一个批处理文件
mf.exe "\mode=ljfour; input myL" gftopk.exe MyL.600gf myL.pk gftodvi myL.600gf
然后我复制了两个都将 MyL.tfm 和 MyL.pk 复制到我使用字体的 .tex 文件的文件夹中。.tex 文件如下:
\documentclass{article} \usepackage[cp1251]{inputenc} \usepackage[russian]{babel} \newfont{\lfont}{myL} \begin{document} {\lfont L} L \end{document}
第一个 L 是我的字体,第二个 L 是默认字体(cmr10)。
.tfm 文件对于 LaTeX 是必需的,而 .pk 文件则是用于 DVI 驱动程序的。