将 Gael Varoquaux 的 garamond 字体与 psfrag 结合使用(理想情况下:非根解决方案)

将 Gael Varoquaux 的 garamond 字体与 psfrag 结合使用(理想情况下:非根解决方案)

对于我的论文,我非常喜欢使用由 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或。如果你只是在没有任何争论的情况下运行它们,它们不会造成任何伤害,但也不会带来任何好处。mktexlsrtexmf

您确实需要启用地图文件。

非特权方法: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

相关内容