After I updated MiKTeX (on Windows 10) im am no longer able to process a LaTeX file with a custom font that I had installed myself. I receive the infamous "Font ... not found" error. In my case:
!pdfTeX error: pdflatex.exe (file NeoSansStd-Bold--base): Font NeoSansStd-Bold--base at 480 not found
Up to now everything has run smoothly after previous updates, but not after this one.
I read about similar problems here on stackexchanged for hours and checked the usual suspects:
I refreshed both the file name database and the font map files. I tried this from the MiKTeX Console as well as from the command line. I tried it as Admin and for the local user. I tried updmap.exe
, updmap.exe --admin
and updmap.exe --force
. I checked initexmf --edit-config-file updmap
, first only with Admin, than both with Admin and the local user; always followed by initexmf --mkmaps
. I tried miktex fontmaps configure
. I re-checked for typos.
When tracking down the error throught the logs I end up at miktex-makemf.log
, which showed a "source file could not be found" error:
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
However, pdftex.map
seems to be ok. It starts with the line (after the initial comments):
NeoSansStd-Bold--base NeoSansStd-Bold " AutoEnc_jiru4vhj66oz3izelvwqyw7peb ReEncodeFont " <[a_jiru4v.enc <NeoSansStd-Bold.pfb
I checked that the font directory is known to MikTeX, which is the case: In the MiKTeX Console the directory is set to a folder NeoSansStd_font_for_MiKTeX
that includes the NeoSansStd-Bold.pfb
in its subfolder fonts\type1\Monotype\NeoSansStd
. The whole directory remained (and worked) unchanged in the last ten years.
I also tried
miktex-makepk --enable-installer --verbose NeoSansStd-Regular--base 600 600 magstep(0.0)
directly from the command line, both as Admin and as user, but it did not work.
I tried lualatex
instead of pdflatex
, but the same error appeared.
The installation and all of its packages are up-to-date. The system is configured so that missing packages are installed on the fly.
What else should I try?
EDIT:
A typical entry in miktex-makepk.log
looks like this:
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
The pdflatex log includes the lines:
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
)
which is the correct path.
SOLUTION:
The solution for the problem was pointed out by Ulrike Fischer below in the comments. The directory structure of the font to be installed had changed. My old folder structure was:
NeoSansStd_font_for_MiKTeX
├── dvips/
│ └── Monotype/
│ ├── a_jiru4v.enc
│ └── Monotype.map
├── fonts/
│ ├── tfm/
│ │ └── ...
│ ├── type1/
│ │ └── ...
│ └── vf/
│ └── ...
└── tex/
└── ...
which had to be changed into:
NeoSansStd_font_for_MiKTeX
├── fonts/
│ ├── enc/
│ │ └── a_jiru4v.enc
│ ├── map/
│ │ └── dvips/
│ │ └── Monotype/
│ │ └── Monotype.map
│ ├── tfm/
│ │ └── ...
│ ├── type1/
│ │ └── ...
│ └── vf/
│ └── ...
└── tex/
└── ...
Monotype.map
anda_jiru4v.enc
are indvips\Monotype
;LY1NeoSansStd.fd
is intex\latex\NeoSansStd
. Nothing changed since 2011, according to their time-stamps. The folders are accessible to any user of the computer.fonts/map/dvips/Monotype
and then callupdmap
again. The enc file should go intofonts/enc/dvips
(update the filename database after the move).