对于我的论文,我非常喜欢使用由 Gaël Varoquaux 修改的 Garamond 字体,因为我认为它们在视觉上非常令人愉悦。虽然 Gael 不再支持这些字体,但他建议将所有文件放在本地文档文件夹中。这对 pdfLaTeX 来说很好。
同时,我想使用psfrag
。这需要latex
(它不能与 一起使用pdflatex
)。这反过来似乎需要一个字体映射文件,该文件随字体提供,但我认为这就是给我带来麻烦的原因。[据记录,我查看了pstools
,但这并不能解决问题(只能自动化);并且overpic
不适用于psfrag
我需要的 -style 替换]。
第三个愿望是解决方案根本不需要任何 root 访问权限。这在某种程度上是可选的,但会带来巨大的好处。
我目前陷入了错误
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
但它似乎并没有从地图文件中丢失,其中包含以下内容:
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
这是我迄今为止尝试过的:我的~/texmf
树看起来像这样:
(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
也就是说,我把所有文件放在了从在线文档中收集到的正确位置。此外,我运行了步骤 2 和 3 中列出的命令这个问题(更新数据库、倾向于地图文件、再次更新数据库)。
locate updmap.cfg
给我:
/etc/texmf/web2c/updmap.cfg
/home/user/.texlive/texmf-config/web2c/updmap.cfg
/usr/share/man/man5/updmap.cfg.5.gz
其中的一个.texlive
来自本地字体安装,出于隐私原因,我从texmf
本地树中省略了该安装(顺便说一下,该安装工作正常)。我尝试添加和不添加手动行Map ggm.map
,但都不起作用。
我将非常感谢任何指点。作为替代方案,我接下来会考虑放弃这个psfrag
要求。其他可能的替代方案,比如使用另一个 Garamond,在我看来要么视觉上丑陋(在文本和/或数学模式下),要么需要 XeTeX,要么没有粗体(EB Garamond)。
我使用的是最新的 Arch Linux:
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>
答案1
不要在你的个人树上运行texhash
或。如果你只是在没有任何争论的情况下运行它们,它们不会造成任何伤害,但也不会带来任何好处。mktexlsr
texmf
您确实需要启用地图文件。
非特权方法:updmap
用这个只有当你真的需要避免updmap-sys
并且你理解其含义并且接受后果时。
updmap --enable Map=ggm.map
推荐方法:(updmap-sys
可能需要权限)
大多数用户应该将字体安装$(kpsewhich -var TEXMFLOCAL)
到
mktexlsr $(kpsewhich -var TEXMFLOCAL)
然后应该使用
updmap-sys --enable Map=ggm.map
[最好没有 root 权限,因为理想情况下您的 TeX 安装由非特权用户管理。但大多数人都需要 root 权限。]
为什么不updmap
?
如果您使用updmap
,每次您的包管理器更新 TeX Live(例如pacman
在 Arch 上)或tlmgr
(对于上游安装)时,您都需要更新您的个人字体映射文件以获取最新更改。否则,您将使用不再与主树中安装的字体匹配的过时映射信息texmf
。
如果您改用updmap-sys
并且从 中删除任何过时的文件~/.texlive2014
,则无需进行持续维护。但是,如果您使用 安装了 TeX Live pacman
,则需要 root 权限。
另一种选择(也是我最喜欢的选择)是以非特权用户身份安装 vanilla TeX Live。这样,您无需 root 身份即可安装$(kpsewhich -var TEXMFLOCAL)
、运行mktexlsr
或使用updmap-sys
。