3

Yesterday I attempted to compile a document that uses the math font MathTime Professional 2. A few months ago I compiled using this font without issue, but this time I got an error message:

kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+360/600 --dpi 360 mt2syf
mktexpk: don't know how to create bitmap font for mt2syf.
mktexpk: perhaps mt2syf is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.
!pdfTeX error: pdflatex (file mt2syf): Font mt2syf at 360 not found
==> Fatal error occurred, no output PDF file produced!

I tried a few things, including reinstalling the fonts using the instructions in this Stack Exchange question, but nothing worked. However when I put

\pdfmapfile{=mtpro2.map}

into my Latex file, everything worked fine and the document compiled with the font.

Does anyone know what is happening here?

  • Are you sure the file is found? pdftex only issues a warning (you find it in the log file) if it's not able to find the requested map file. – egreg Jan 21 '14 at 17:00
  • Yes, the output pdf is definitely typeset in MathTime Pro 2. – James Fennell Jan 21 '14 at 17:07
  • Where did you install the MT2Pro fonts? – egreg Jan 21 '14 at 17:09
  • What tex system are you using? – Ulrike Fischer Jan 21 '14 at 17:34
  • 1
    It probably means that the map file fragment was not correctly added to the file pdftex uses. Did you use updmap or updmap-sys to --enable mtpro2.map? If you used updmap-sys, you may have a stale configuration file in your home directory. Removing ~/.texliveYYYY may solve this problem if you are using TeX Live YYYY. I don't know what the equivalent is for MiKTeX. If it works with the addition of the map file (but it is better to use + than =), then the files themselves are found - only the update to pdftex's map file is wanting. – cfr Jan 22 '14 at 0:39
5

Since the file compiles when you use \pdfmapfile, the map file fragment and the fonts themselves are being found correctly by pdfTeX. The problem lies rather with the updating of the mappings pdfTeX uses to match font names to font files.

[But note that it would be better to use + rather than = to supplement the existing mappings rather than overriding all of them.]

The problem can be caused if either the map file fragment was not correctly added to the file pdftex uses or if a stale configuration is overriding the updated configuration.

In the first case, it is a matter of enabling the map file fragment using updmap or updmap-sys with --enable mtpro2.map.

Assuming this has been done correctly, if the problem persists it is probably due to a stale configuration file in your home directory. Removing this file should resolve the problem in this case.

To do this for TeX Live, remove ${HOME}/.texliveYYYY where ${HOME} is your home directory and .texliveYYYY is the subdirectory corresponding to the release of TeX Live you are using. For example .texlive2013 for the current version. On Linux or OS X, you could do this by running rm -r ~/.texlive2013. Removing this directory is generally safe because it should only hold files which can be easily regenerated. However, to be 100% safe, you could just rename the directory to see if it solves the problem and remove it later if everything works. On Linux or OS X, you could do something like mv ~/.texlive2013 ~/texlive2013.justincase.

By way of explanation, this problem can be caused if you use updmap rather than updmap-sys to configure font map files. The problem is that if you later use updmap-sys - or if tlmgr uses it when you update your installation - the now stale configuration in your home directory continues to override the newer settings installed system wide. This is why it is generally better to use updmap-sys rather than updmap unless you are working on a system where you do not have the permission to do so.

| improve this answer | |
  • I am facing the same problem as the OP (only works with \pdfmapfile{=mtpro2.map}) but your solution did not work: I don't have any ~/.tex* directory. However I did use updmap instead of updmap-sys by mistake. Any ideas? – anderstood Oct 29 '16 at 19:43
  • @anderstood Take a look at my question/answer at tex.stackexchange.com/questions/255709/…. The part at the bottom in the section about what to do if you read it too late explains how to undo the effects of updmap. ~/.texliveYYYY is the default directory on Linux. However, you might have changed it, your Linux distro might have changed it, or you might be using another OS. The instructions under If you read this too late don't make assumptions about the correct directory so they should work (for TeX Live). – cfr Oct 29 '16 at 22:48
  • Very very nice post you're referring to. Renaming my TEXMFHOME (given by kpsewhich -var TEXMFHOME --- for future users) did not help. My problem was I thought that updmap-sys --enable Map=mtpro2.map would add the map to the updmap.cfg while it did not. Manually adding Map mtpro2.map made it work. It's pretty basic but it becomes hard to sort everything hard when you started messing things up! Thank you for your help, problem solved. – anderstood Oct 29 '16 at 23:03
  • 1
    @anderstood You shouldn't really need to move TEXMFHOME unless you've installed the fonts there and want to move them. Even then, only do it if they're the only thing in it. --enable Map should work. However, it may fail if things have become confused. And it is no longer the recommended way to add local fonts as you have to redo it when you install a new distribution of TL (e.g. 2015 -> 2016). Glad you sorted it. I wrote the Q&A originally because a moderator asked a couple of us to and when I was done, the other person didn't think there was much to add ;). I'm glad when it is useful! – cfr Oct 29 '16 at 23:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.