miktex-makemf 错误:找不到源文件

miktex-makemf 错误:找不到源文件

在我更新 MiKTeX(在 Windows 10 上)后,我无法再处理带有我自己安装的自定义字体的 LaTeX 文件。我收到了臭名昭著的“未找到字体”错误。就我而言:

!pdfTeX error: pdflatex.exe (file NeoSansStd-Bold--base): Font NeoSansStd-Bold--base at 480 not found

到目前为止,之前的更新之后一切都运行顺利,但这次更新之后就不行了。

我在 stackexchanged 上花了几个小时阅读有关类似问题的文章,并检查了常见的嫌疑人:

我刷新了文件名数据库和字体映射文件。我从 MiKTeX 控制台和命令行尝试了此操作。我以管理员和本地用户身份尝试了此操作。我尝试了updmap.exeupdmap.exe --adminupdmap.exe --force我检查了initexmf --edit-config-file updmap,首先仅使用管理员,然后使用管理员和本地用户;始终后跟initexmf --mkmaps。我试过了miktex fontmaps configure。我重新检查了拼写错误。

当我通过日志追踪错误时miktex-makemf.log,我发现出现了“找不到源文件”的错误:

2022-02-21 15:44:52,202+0100 INFO  miktex-makemf - this process (2924) started by miktex-makepk in directory C:\Users\geodev\AppData\Local\Temp\mik60 with command line: miktex-makemf.exe --miktex-enable-installer --miktex-disable-maintenance --miktex-disable-diagnose --verbose NeoSansStd-Regular--base
2022-02-21 15:44:52,213+0100 FATAL miktex-makemf - The NeoSansStd-Regular--base source file could not be found.
2022-02-21 15:44:52,214+0100 FATAL miktex-makemf - The NeoSansStd-Regular--base source file could not be found.
2022-02-21 15:44:52,214+0100 FATAL miktex-makemf - Info: 
2022-02-21 15:44:52,214+0100 FATAL miktex-makemf - Source: 
2022-02-21 15:44:52,214+0100 FATAL miktex-makemf - Line: 0
2022-02-21 15:44:52,229+0100 INFO  miktex-makemf - this process (2924) finishes with exit code 1

不过,pdftex.map似乎还行。它以以下行开头(在初始注释之后):

NeoSansStd-Bold--base NeoSansStd-Bold " AutoEnc_jiru4vhj66oz3izelvwqyw7peb ReEncodeFont " <[a_jiru4v.enc <NeoSansStd-Bold.pfb

我检查了 MikTeX 是否知道该字体目录,情况确实如此:在 MiKTeX 控制台中,该目录设置为一个文件夹,该文件夹的子文件夹中NeoSansStd_font_for_MiKTeX包含。整个目录在过去十年中保持不变(并正常工作)。NeoSansStd-Bold.pfbfonts\type1\Monotype\NeoSansStd

我也试过

  miktex-makepk --enable-installer --verbose NeoSansStd-Regular--base 600 600 magstep(0.0)

直接从命令行,作为管理员和用户,但它不起作用。

我尝试了lualatexpdflatex但是出现了同样的错误。

安装及其所有软件包都是最新的。系统已配置,因此可以即时安装缺失的软件包。

我还应该尝试什么?

编辑:

典型的条目miktex-makepk.log如下所示:

2022-02-21 15:02:18,884+0100 INFO  miktex-makepk - this process (13060) started by pdflatex in directory [... omitted ...] with command line: miktex-makepk --enable-installer --verbose NeoSansStd-Bold--base 480 600 0+480/600
2022-02-21 15:02:18,892+0100 INFO  makepk - Trying to make PK font NeoSansStd-Bold--base at 480 DPI...
2022-02-21 15:02:18,910+0100 INFO  makepk - The METFAONT mode is: ljfour
2022-02-21 15:02:18,926+0100 INFO  makepk - Running miktex-makemf.exe...
2022-02-21 15:02:18,926+0100 INFO  makepk - running: miktex-makemf.exe --miktex-enable-installer --miktex-disable-maintenance --miktex-disable-diagnose --verbose NeoSansStd-Bold--base
2022-02-21 15:02:18,927+0100 INFO  miktex-makepk.core - start process: miktex-makemf.exe --miktex-enable-installer --miktex-disable-maintenance --miktex-disable-diagnose --verbose NeoSansStd-Bold--base
2022-02-21 15:02:20,253+0100 INFO  makepk - Running miktex-ttf2pk.exe...
2022-02-21 15:02:20,253+0100 INFO  makepk - running: miktex-ttf2pk.exe --miktex-enable-installer --miktex-disable-maintenance --miktex-disable-diagnose -q -t NeoSansStd-Bold--base
2022-02-21 15:02:20,253+0100 INFO  miktex-makepk.core - start process: miktex-ttf2pk.exe --miktex-enable-installer --miktex-disable-maintenance --miktex-disable-diagnose -q -t NeoSansStd-Bold--base
2022-02-21 15:02:21,771+0100 FATAL miktex-makepk - PK font NeoSansStd-Bold--base could not be created.
2022-02-21 15:02:21,771+0100 FATAL miktex-makepk - PK font NeoSansStd-Bold--base could not be created.
2022-02-21 15:02:21,772+0100 FATAL miktex-makepk - Info: 
2022-02-21 15:02:21,772+0100 FATAL miktex-makepk - Source: 
2022-02-21 15:02:21,772+0100 FATAL miktex-makepk - Line: 0
2022-02-21 15:02:21,802+0100 INFO  miktex-makepk - this process (13060) finishes with exit code 1

pdflatex 日志包含以下行:

LaTeX Font Info:    Trying to load font information for LY1+NeoSansStd on input
 line 53.
 
(C:\Users\Public\NeoSansStd_font_for_MiKTeX\tex/latex/NeoSansStd\ly1neosansstd.
fd
File: LY1NeoSansStd.fd Monotype NeoSansStd font definitions
)

这是正确的路径。

解决方案:

Ulrike Fischer 在下面的评论中指出了该问题的解决方案。要安装的字体的目录结构已更改。我的旧文件夹结构是:

   NeoSansStd_font_for_MiKTeX
   ├── dvips/
   │   └── Monotype/
   │       ├── a_jiru4v.enc
   │       └── Monotype.map
   ├── fonts/
   │   ├── tfm/
   │   │   └── ...
   │   ├── type1/
   │   │   └── ...
   │   └── vf/
   │       └── ...
   └── tex/
       └── ...

必须将其更改为:

   NeoSansStd_font_for_MiKTeX
   ├── fonts/
   │   ├── enc/
   │   │   └── a_jiru4v.enc
   │   ├── map/
   │   │   └── dvips/
   │   │       └── Monotype/
   │   │           └── Monotype.map
   │   ├── tfm/
   │   │   └── ...
   │   ├── type1/
   │   │   └── ...
   │   └── vf/
   │       └── ...
   └── tex/
       └── ...

答案1

与字体安装相关的一些位置已经发生了变化:

最重要的是map文件应该从 到dvips并且fonts/map/dvips文件enc应该进入fonts/enc/dvips

相关内容