我从一位教授那里得到了一个自定义字体,其中包含我需要的字符。我得到了以下文件:crystp.pfb、crystp.afm 和 crystp.tmf。
我还收到了有关如何安装该字体的以下说明。
- 将 .tfm 文件复制到 $miktexroot\fonts\ftm\public\cryst1
- 将 .afm 文件复制到 $miktexroot\fonts\afm\public\cryst1
- 将 .pfb 文件复制到 $miktexroot\fonts\type1\public\cryst1
- 将“p +cryst1.map”附加到 $miktex\dvips\config\config.ps
- 在 $miktexroot\dvips\cryst1 中创建文件 cryst1.map 并附加行“cryst cryst1
- 执行 initexmf -u
- 在 tex 文件中我使用:
\DeclareFontFamily{U}{cry}{\hyphenchar\font=-1} \DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{} \newcommand{\cry}1{{\usefont{U}{cry}{m}{n} \symbol{#1}}}
- 使用我使用的字符
\cry{167}
- 要创建 pdf 文件,我运行
pdflatex test.tex
唉,这不管用。字符没有打印出来。日志文件告诉我缺少这个字符:
缺少字符:字体 crystal 中没有 §!
我使用 fontforge 程序查看了 .pfb 文件,在那里我可以看到我的角色位于 § 位置。
不幸的是,教授退休了,不再工作了。他几年前也用过这个字体,只是安装了它。所以他已经告诉我,他根本帮不上我。我知道已经有一个名为 crystal 的字体,但它不包含我的字符。
我错过了什么?
@更新:文件
答案1
地图文件不在您上传的文件中。但这里有一个没有它的安装/使用说明:
- 撤销你所做的事情
- 如果你还没有 localtexmf-tree,那么请创建一个:创建一个名为的文件夹(在 miktex 之外)例如
localtexmf
- 把 tfm 放进去
localtexmf/fonts/tfm/crystp
- 把 pfb 放进去
localtexmf/fonts/type1/crystp
- 在 miktex 设置中将这些附加
localtexmf
为新根,或者如果你使用了现有的localtexmf
更新其 FNDBinitexmf -u
然后使用 pdflatex 运行该文档(它不适用于 latex + dvips):
\documentclass{article}
\usepackage{fonttable}
\pdfmapline{=crystp crystp <crystp.pfb}
\DeclareFontFamily{U}{cry}{\hyphenchar\font=-1}
\DeclareFontShape{U}{cry}{m}{n}{ <-> crystp}{}
\newcommand{\cry}[1]{{\usefont{U}{cry}{m}{n} \symbol{#1}}}
\begin{document}
\cry{167}
\xfonttable{U}{cry}{m}{n}
\end{document}
它应该给出一个带有 p 和一个字体表的文档。
您稍后可以将 map-file 行移动crystp crystp <crystp.pfb
到地图crystp.map
并将该地图添加到地图initexmf --edit-config-file updmap
中updmap.cfg
,然后运行 updmap。