![加载 mathb 字体指标文件时出现问题(在 Linux 中)](https://linux22.com/image/313892/%E5%8A%A0%E8%BD%BD%20mathb%20%E5%AD%97%E4%BD%93%E6%8C%87%E6%A0%87%E6%96%87%E4%BB%B6%E6%97%B6%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%EF%BC%88%E5%9C%A8%20Linux%20%E4%B8%AD%EF%BC%89.png)
我有一个 .tex 文件,它在 Windows/MikTeX 下运行良好,但无法在 Linux Mint 17/TeXLive 2013 中生成 PDF。
我浏览了该网站上发布的各种类似的问题,但似乎没有一个适合我的情况:
我是 Linux 新手,所以如果答案不明确,请原谅。我尝试了上述链接中的以下建议:
- 运行“udpmap”:没有帮助。
- 运行命令“kpsewhich mathb.tfm”、“kpsewhich mathb9.tfm”、“kpsewhich mathabx”、“kpsewhich mathabx”:没有结果。
给我带来问题的最小例子:
\documentclass[11pt,a4paper]{amsart}
\pagestyle{plain}
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
<-6> mathb5 <6-7> mathb6 <7-8> mathb7
<8-9> mathb8 <9-10> mathb9
<10-12> mathb10 <12-> mathb12
}{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareMathSymbol{\llcurly}{\mathrel}{mathb}{"CE}
\DeclareMathSymbol{\ggcurly}{\mathrel}{mathb}{"CF}
\begin{document}
\[ a \llcurly b \quad a \ggcurly b \]
\end{document}
错误:
$ pdflatex test.tex
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian)
restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2011/06/27>
Babel <3.9h> and hyphenation patterns for 2 languages loaded.
(/usr/share/texlive/texmf-dist/tex/latex/amscls/amsart.cls
Document Class: amsart 2009/07/02 v2.20.1
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty))
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (./test.aux)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd)
kpathsea: Running mktextfm mathb9
/usr/share/texlive/texmf-dist/web2c/mktexnam: Could not map source abbreviation for mathb9.
/usr/share/texlive/texmf-dist/web2c/mktexnam: Need to update ?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input mathb9
This is METAFONT, Version 2.718281 (TeX Live 2013/Debian)
kpathsea: Running mktexmf mathb9
! I can't find file `mathb9'.
<*> ...:=ljfour; mag:=1; nonstopmode; input mathb9
Please type another input file name
! Emergency stop.
<*> ...:=ljfour; mag:=1; nonstopmode; input mathb9
Transcript written on mfput.log.
grep: mathb9.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input mathb9' failed to make mathb9.tfm.
kpathsea: Appending font creation commands to missfont.log.
! Font U/mathb/m/n/9=mathb9 at 9.0pt not loadable: Metric (TFM) file not found.
<to be read again>
relax
l.16 \begin{document}
系统背景:
- Linux Mint 17
- TeX Live 2013(全新安装,之前从未在此系统上安装过)
PS. 几年前我在 Windows/MikTex 平台上遇到过类似的问题:当文档类别为 amsart 时,无法从 mathb 字体加载符号
然后错误就出现在 .tex 代码中;现在错误似乎出现在我的平台上(因为相同的 .tex 文件在其他平台和计算机上可以运行)。
答案1
不要运行updmap
。如果您已经运行,请从您的主目录中删除名为(例如)的updmap
目录。请注意,目录名称以点开头。为了安全起见,请重命名它而不是删除它。(删除目录是安全的,但删除您认为属于此目录的其他目录可能根本不安全。).texliveYYYY
.texlive2013
更新 TeX 发行版时,请始终使用updmap-sys
而不是updmap
以避免出现问题。仅updmap
在别无选择时使用(例如,您不管理机器,只能写入主目录等)。在这种情况下,updmap
每次管理员更新 TeX Live 安装时,您都需要重新运行。
听起来好像你没有安装相关的包。它是 TeX Live 的一部分。如果你想使用你的发行版的 TL 包,你需要弄清楚你的发行版把它打包在哪里。我建议放弃你的发行版的 TL 并从上游安装 vanilla 版本。但如果你不想这样做,你必须弄清楚他们把你想要的包放在哪里了。
有关如何从上游安装 vanilla TeX Live 的说明,请参阅如何在 Debian 或 Ubuntu 上安装“原始” TeXLive?。虽然这些说明适用于 Debian 或 Ubuntu,但它们也可以适用于其他 GNU/Linux 发行版。由于 Mint 是基于 apt 的,因此只需进行少量修改。
以下是使用 GNU/Linux 上当前版本的上游 TeX Live 编译 MWE 的结果: