我编写了一个脚本,反复运行lualatex file.tex
以安装缺失的软件包,但对于缺失的字体,我却很难做到这一点。当出现类似
! 9pt 处的字体 \OT1/ppl/m/n/9=pplr7t 无法加载:未找到度量数据或度量数据错误。
出现,我想确定包含 的包ppl
。有没有办法通过算法做到这一点?
(例如,当缺少x.sty
或x.cls
文件时,我能够运行tlmgr search --file x.sty
并解析出它所在的包。如果ppl.some_extension
每个字体都有一个文件并且 tlmgr 可以搜索,那就太完美了。)
该脚本可以找到这里。
答案1
嗯,您的消息说 pplr7t.tfm 丢失,所以如果 tlmgr 能够在包中找到单个文件tlmgr search --file pplr7t.tfm
就应该可以工作(我有 miktex 所以我不知道)。
答案2
该消息与特定品牌、样式、字体和字体大小有关,但字体度量信息不可用。名称(在本例中为 pplr7t)是较长名称的缩写,称为“Berry 名称”。您可以在fontname.pdf' (
TeX Live 系统上的文件 texdoc fontname.pdf 中找到名称的构造方式)。在本例中,请求的是 Adobe Palatino 字体(“p”=adobe,“pl”=Palatino,“r”=regular Roman)。
Berry 这个名字的由来是(引自fontname.pdf
这是基本方案(这里的空格只是为了方便阅读):
S TT W [V...] [N] [E] [DD] 其中
S代表字体的供应商。
TT 代表字体名称。
W代表权重。
V... 表示变体,如果其和宽度均为正常,则省略。许多字体都有多个变体。
N 表示编码,如果编码是非标准的,则省略。编码包含在变体部分中(参见第 2.4 节 [变体],第 20 页)。
E 代表宽度(“扩展”),如果是正常的话则省略。
DD 代表设计尺寸(十进制),如果字体是线性缩放的,则省略。
缺少字体可能是因为您的系统上未安装字体但是需要该字体(通过软件包或您自己的命令),或者因为已安装字体但是没有特定的字型、粗细、大小等组合(例如,许多字体不支持半粗体并且几乎不支持斜体小写字母),或者因为已安装了所查找的字体但是 TeX 字体度量文件(.tfm)或字体映射文件(.map)存在问题,或者因为安装字体时命令mktexlsr
(texhash
)和updmap-sys
未运行或运行不正确(这些命令是正确设置 updmap.cfg 文件所必需的,该文件列出了用户或系统上可用的所有字体映射)。网站上有许多问题和答案,详细介绍了这些具体要点。
答案3
ppl
是 Palatino 的缩写。我想你漏掉了这些行
\usepackage{tgpagella}
\usepackage{fontspec}
或者选择 LuaLaTeX(更好的选择)
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\begin{document}
Text in Palatino
\end{document}