在 miktex 2.9 中加载自定义字体

在 miktex 2.9 中加载自定义字体

我从一位教授那里得到了一个自定义字体,其中包含我需要的字符。我得到了以下文件:crystp.pfb、crystp.afm 和 crystp.tmf。

我还收到了有关如何安装该字体的以下说明。

  1. 将 .tfm 文件复制到 $miktexroot\fonts\ftm\public\cryst1
  2. 将 .afm 文件复制到 $miktexroot\fonts\afm\public\cryst1
  3. 将 .pfb 文件复制到 $miktexroot\fonts\type1\public\cryst1
  4. 将“p +cryst1.map”附加到 $miktex\dvips\config\config.ps
  5. 在 $miktexroot\dvips\cryst1 中创建文件 cryst1.map 并附加行“cryst cryst1
  6. 执行 initexmf -u
  7. 在 tex 文件中我使用: \DeclareFontFamily{U}{cry}{\hyphenchar\font=-1} \DeclareFontShape{U}{cry}{m}{n}{ <-> cryst}{} \newcommand{\cry}1{{\usefont{U}{cry}{m}{n} \symbol{#1}}}
  8. 使用我使用的字符\cry{167}
  9. 要创建 pdf 文件,我运行pdflatex test.tex

唉,这不管用。字符没有打印出来。日志文件告诉我缺少这个字符:

缺少字符:字体 crystal 中没有 §!

我使用 fontforge 程序查看了 .pfb 文件,在那里我可以看到我的角色位于 § 位置。

不幸的是,教授退休了,不再工作了。他几年前也用过这个字体,只是安装了它。所以他已经告诉我,他根本帮不上我。我知道已经有一个名为 crystal 的字体,但它不包含我的字符。

我错过了什么?

@更新:文件

答案1

地图文件不在您上传的文件中。但这里有一个没有它的安装/使用说明:

  1. 撤销你所做的事情
  2. 如果你还没有 localtexmf-tree,那么请创建一个:创建一个名为的文件夹(在 miktex 之外)例如localtexmf
  3. 把 tfm 放进去localtexmf/fonts/tfm/crystp
  4. 把 pfb 放进去localtexmf/fonts/type1/crystp
  5. 在 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 updmapupdmap.cfg,然后运行 ​​updmap。

相关内容