2

For my thesis, I really like to use the modified Garamond fonts by Gaël Varoquaux, because I think they are exceptionally pleasing visually. While Gael does not support the fonts any more, he suggests a local placement of all files in the local document folder. This works fine for pdfLaTeX.

At the same time, I want to use psfrag. This requires latex (it is not working with pdflatex). This in turn appears to require a font map file, which is supplied with the fonts, but I think is what is giving me trouble. [For the record, I looked at pstools, but this does not circumvent the problem (only automates it); and overpic does not work for psfrag-style substitutions which I need].

A third wish-list item would be that the solution does not require any root access at all. This is somewhat optional, but would be a huge benefit.

I'm currently stuck at an error

kpathsea: Running mktexpk --mfmode ljfour --bdpi 600 --mag 1+120/600 --dpi 720 ggmr8r
mktexpk: don't know how to create bitmap font for ggmr8r.
mktexpk: perhaps ggmr8r is missing from the map file.
dvips: Font ggmr8r not found; using cmr10
</usr/share/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk>
dvips: Checksum mismatch in font ggmr8r
dvips: ! invalid char 228 from font ggmr8r

But it does not seem to be missing from the map file, which has these contents:

ggmr8r GaramondNo8-Reg " TeXBase1Encoding ReEncodeFont " <8r.enc <ggmr8a.pfb
ggmm8r GaramondNo8-Med " TeXBase1Encoding ReEncodeFont " <8r.enc <ggmm8a.pfb
ggmri8r GaramondNo8-Ita " TeXBase1Encoding ReEncodeFont " <8r.enc <ggmri8a.pfb
ggmmi8r GaramondNo8-MedIta " TeXBase1Encoding ReEncodeFont " <8r.enc <ggmmi8a.pfb

This is what I tried so far: My ~/texmf tree looks like this:

(user@host): /home/user/texmf $
 > ls -R
.:
doc  fonts  source  tex

./doc:
latex

./doc/latex:

./fonts:
afm  enc  map  sfd  tfm  truetype  type1  vf

./fonts/afm:
urw

./fonts/afm/urw:
garamond

./fonts/afm/urw/garamond:
ggmm8a.afm  ggmmi8a.afm  ggmr8a.afm  ggmri8a.afm

./fonts/enc:

./fonts/map:
dvips

./fonts/map/dvips:
garamond 

./fonts/map/dvips/garamond:
ggm.map


./fonts/sfd:
urw

./fonts/sfd/urw:
garamond

./fonts/sfd/urw/garamond:
GaramondNo8-Ita.sfd  GaramondNo8-MedIta.sfd  GaramondNo8-Med.sfd  GaramondNo8-Reg.sfd

./fonts/tfm:
urw

./fonts/tfm/urw:
garamond

./fonts/tfm/urw/garamond:
ggmm8a.tfm  ggmm8r.tfm  ggmmi8a.tfm  ggmmi8r.tfm  ggmr8a.tfm  ggmr8r.tfm  ggmrc8r.tfm  ggmri8a.tfm  ggmri8r.tfm
ggmm8c.tfm  ggmm8t.tfm  ggmmi8c.tfm  ggmmi8t.tfm  ggmr8c.tfm  ggmr8t.tfm  ggmrc8t.tfm  ggmri8c.tfm  ggmri8t.tfm

./fonts/truetype:

./fonts/type1:
urw

./fonts/type1/urw:
garamond

./fonts/type1/urw/garamond:
ggmm8a.pfb  ggmmi8a.pfb  ggmr8a.pfb  ggmri8a.pfb

./fonts/vf:
urw

./fonts/vf/urw:
garamond

./fonts/vf/urw/garamond:
ggmm8t.vf  ggmmi8t.vf  ggmr8t.vf  ggmrc8t.vf  ggmri8t.vf

./source:
latex

./source/latex:

./tex:
latex

./tex/latex:
garamond  picins 

./tex/latex/garamond:
garamond.sty  t1ggm.fd  ts1ggm.fd

./tex/latex/picins:
extpic.sty  LIES.MICH  mandel.msp  mexhat1.msp  mexhat2.msp  mpic.dvi  picins.alt  picins.doc  picins.sty  picins.txt  README.1st

That is, I put all files in what I gathered from online docs to be their correct spots. Also, I ran the commands as e.g. listed in steps 2 and 3 in this question (update database, tend to map files, update database again).

locate updmap.cfg gives me:

/etc/texmf/web2c/updmap.cfg
/home/user/.texlive/texmf-config/web2c/updmap.cfg
/usr/share/man/man5/updmap.cfg.5.gz

The one in .texlive is from a local font install I omitted for privacy reasons from the texmf local tree (that installations works fine, by the way.). I tried both adding and not adding a manual line of Map ggm.map there, neither works.

I'd be extremely thankful for any pointers. As alternatives, I'd next consider dropping the psfrag requirement. Other possible alternatives, like using another Garamond, are either ugly visually to my eye (in text and/or math mode), require XeTeX, or have no bold face (EB Garamond).

I'm on up-to-date arch linux with:

This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/Arch Linux) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./main.tex
LaTeX2e <2014/05/01>
  • You are my hero! You have no idea how long I tried the most different things on this, and now you solve that in 3min.. So, the trick was to remove the line "Map ggm.map" I had added by hand to ~/.texlive/texmf-config/web2c/updmap.cfg , and then run updmap-sys afterwards. Thanks a ton! [For the record, there is no ls-R dir, it's just a 2-line shell prompt; also, the system where I don't have root is Mint-based, I think. On arch, I do have root. But as I sync all files to Mint and also work there, this would be very helpful. So I will try the same thing on Mint as well. Thanks again!! – la_guentse Mar 26 '15 at 0:21
  • Done! Re. the ls -R: sorry. I completely missed the space. Some people end up with ls-R there because they create a texmf database for their personal tree, which is not necessary and only confuses things, at best. Since you mentioned updating the database, I thought that you had done this. – cfr Mar 26 '15 at 0:38
  • Did you think of using the more recent garamondx, by Michael Sharpe, which uses certain elements of this package, and extends it to true small caps, old style numbers and superior/inferior numbers? Also, did you try psfragx, which has a mechanism for overpic objects? – Bernard Mar 26 '15 at 0:51
  • Bernard, thanks - I'm not sure about psfragx, because I need true replacements and not just overpic. Garamondx needs root privileges for the install, it told me here tex.stackexchange.com/questions/110057/… . – la_guentse Mar 26 '15 at 11:02
  • If anyone else attempts this setup: with the map file now in place and recognized, it is possible to use pstools. This will enable you to use both microtype for nicer typesetting, which needs pdflatex, and psfrag, because pstools only uses latex in lieu of pdflatex where needed (i.e. with psfrag). To get best of both worlds, you only need to remove the first line "\pdfmapfile{=ggm.map}" in garamond.sty. Because of my setup, I needed to alias pdflatex to "openout_any=a pdflatex -shell-escape", and give full relative paths in the psfragfig commands. Then, everything works like a charm now! – la_guentse Mar 26 '15 at 20:50
2

Don't run texhash or mktexlsr on your personal texmf tree. If you just run them without any argument, they won't do any harm but they won't do any good either.

You do need to enable the map file.

Unprivileged method: updmap

Use this only if you really need to avoid updmap-sys AND you understand the implications AND you accept the consequences.

updmap --enable Map=ggm.map

Recommended method: updmap-sys (may require privileges)

The majority of users should install the fonts into $(kpsewhich -var TEXMFLOCAL), should then run

mktexlsr $(kpsewhich -var TEXMFLOCAL)

and should then use

updmap-sys --enable Map=ggm.map

[Ideally without root privileges because ideally your TeX installation is managed by an unprivileged user. But most people will need root privileges.]

Why not updmap?

If you use updmap, every time TeX Live is updated by your package manager (e.g. pacman on Arch) or tlmgr (for an upstream installation), you need to update your personal font map files in order to get the latest changes. Otherwise, you will be using stale mapping information which no longer matches the fonts installed in the main texmf tree.

If you use updmap-sys instead and if you delete any stale files from ~/.texlive2014, this ongoing maintenance is not necessary. But, if you installed TeX Live using pacman, it will require root.

An alternative (and my favoured option) is to install vanilla TeX Live as an unprivileged user. Then you don't need root to install into $(kpsewhich -var TEXMFLOCAL), to run mktexlsr or to use updmap-sys.

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.