刚刚更新了 MikTeX 中的 ConTeXt,版本是 2005-07-12,发现了一些问题。
首先是 fmt 文件无法生成了,似乎是 ConTeXt 需求的容量超过了 TeX 原本配置可以提供的。解决方法是修改 `localtexmf/miktex/config/miktex.ini` 文件,把
`trie_op_size=2048` 增大一些,比如 `trie_op_size=4096` 即可。
然后用 `texexec –make en` 重新生成 fmt 文件。
然后是用 `texfont` 安装字体的问题。原本 `afm2tfm` 编译时应该加入了 Kpathsea 库支持的,也就是能够自动找到 texmf 下的文件,但 MikTeX 下现在这个 `afm2tfm` 并没有加入 Kpathsea 库,一旦使用 `-p` 参数就会崩溃。
幸好 `texfont` 不需要真的使用 `afm2tfm` 生成的文件,它只需要从 `afm2tfm` 的输出内容中截取一个字体的名称就可以了,所以可以对 `texmf/scripts/context/perl/texfont.pl` 作如下修改:
my $command = “afm2tfm “$file” texfont.tfm”;
print “$command\n” if $trace;
$font = `$command`;
UnLink “texfont.tfm”;
# ($rawfont,$cleanfont,$restfont) = split(/\s/,$font)
($rawfont,$cleanfont) = split(/\s/,$font)
(注释掉的内容为原来的代码,可以依此找到应该修改的位置)
`texfont` 的另一个问题是不能自动刷新文件名数据库,原因是 `mktexlsr` 给加上了目录参数,而 MikTeX 下的 `mktexlsr` 其实是 `initexmf` 的一个别名,不支持目录参数的。可以简单的去掉 `texfont.pl` 中 `mktexlsr` 出现后的参数,也可以不管,安装字体后手动刷新文件名数据库。
另外,texfont 其实是一个很方便的工具,就算不用 ConTeXt,用这个工具来安装 Type 1 和 Open Type 字体也比 fontinst 方便得多,就是目前用得人不多,遇到问题的时候需要自己调整一下。