我正在尝试使用 pigpen 字体https://ctan.org/tex-archive/fonts/pigpen作者:奥利弗·科夫(Oliver Corff)。
pigpen.tex 文件是真的小,似乎相当于以下内容:
\font\pp=pigpen
但以下内容不会使用 xetex 生成有效的 PDF
\font\pp=pigpen
{\pp HELLO WORLD}
\bye
Sorry, pfa format not supported
我错过了什么?
答案1
如果我在 texlive 2022 中运行你的例子
xdvipdfmx:fatal: Sorry, pfa format not supported; please convert the font to pfb, e.g., with t1binary.
而 texlive 确实只有一个pfa
版本,而不是压缩pfb
形式。
所以...
t1binary /usr/local/texlive/2022/texmf-dist/fonts/type1/public/pigpen/pigpen.pfa pigpen.pfb
pigpen.pfb
在当前目录中创建一个
cp /usr/local/texlive/2022/texmf-dist/fonts/map/dvips/pigpen/pigpen.map .
使得pigpen.map
看起来像
pigpen <<pigpen.pfa
编辑它,所以它说
pigpen <<pigpen.pfb
然后
xetex --no-pdf yourfile
如果你提供修改后的地图,将制作yourfile.xdv
并xdvipdfmx
制作 pdf
xdvipdfmx -f pigpen.map yourfile.xdv
生成具有上述输出的 PDF。
答案2
我做了一个实验。我pigpen.pfa
从
/usr/local/texlive/2022/texmf-dist/fonts/type1/public/pigpen/pigpen.pfa
到名为的工作目录originalpigpen.pfa
并运行
t1binary originalpigpen.pfa -o pigpen.pfa
(是的,生成的 PFB 文件扩展名为.pfa
)。现在可以成功运行您的示例文件。
现在您可以使用个人树
mkdir -p $(kpsewhich -var-value=TEXMFHOME)/fonts/type1/public/pigpen
mv pigpen.pfa $(kpsewhich -var-value=TEXMFHOME)/fonts/type1/public/pigpen
并且伪装成 PFA 的 PFB 文件将优先于分发的文件被发现。
我制造了一个在 TeX Live 列表上查询,让我们看看会发生什么。当文件格式在分发级别发生更改时,上面建议的黑客攻击应该是无害的。