我有一个目录,其中包含我想在 Xelatex 中使用的 Type 1 Sabon 字体。我想通过使用包指定文件名来使用该字体fontspec
。我按照 fontspec 手册中的建议专门定义了粗体和斜体字体。\setmainfont
可以采用与相同的选项\fontspec
,因此我写道:
\documentclass[11pt, BCOR=0mm, DIV=default]{scrartcl}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont[Path=C:/fonts/, BoldFont=LTe50385.pfb ,ItalicFont=LTe50383.pfb]
{LTe50383.pfb}
\begin{document}
etc
\end{document}
尝试编译后,我收到以下错误
Font \zf@basefont="[C:/fonts/LTe50383.pfb ]/IC
U" at 10.0pt not loadable: Metric (TFM) file or installed font n
ot found.
<to be read again>
\scan_stop:
l.7 ..., ItalicFont = LTe50383.pfm]{LTe50383.pfm }
I wasn't able to read the size data for this font,
so I will ignore the font specification.
[Wizards can fix TFM files using TFtoPL/PLtoTF.]
You might try inserting a different font spec;
由于上述错误,我想知道是否可以通过这种方式加载 Type 1 (Postscript) 字体,或者是否仅限于 OpenType 和其他字体。因为它不断要求 TFM 度量文件。Type 1 度量文件 (.pfm) 放在同一个目录中,但 fontspec 如何知道如何使用这些文件?
或者我做错了什么事?
非常感谢所有帮助!
编辑1
在 Windows 机器上安装字体后,我可以使用我想要的字体。然而,这不是我喜欢的,因为在我的工作电脑上我无法正确安装字体。所以这个问题与通过加载磁盘文件使用字体直接相关。
编辑2
以下测试没有返回任何错误:
\begin{document}
\font\test="[C:/fonts/LTe50383.pfb]" \test abc \par
\font\test="[C:/fonts/LTe50384.pfb]" \test abc \par
\font\test="[C:/fonts/LTe50385.pfb]" \test abc \par
\end{document}
编辑3
Xelatex 似乎会自动尝试为机器上已加载的无法加载的字体找到最佳替代品,因此在尝试使用以下命令直接从磁盘文件加载字体时会出现一些令人困惑的假阳性结果:
\setmainfont[Path=C:/fonts/, BoldFont=LTe50385.pfb ,ItalicFont=LTe50383.pfb]
{LTe50383.pfb}
编辑4
Owhman,这让人很困惑 :) 似乎与语法有关,就像编辑 2 中的测试一样,这意味着可以使用磁盘文件加载 Type 1 字体。谁能帮我纠正语法?
编辑5
以下工作正常
\setmainfont[Path=C:/fonts/]{LTe50383.pfb}
并且使用磁盘文件设置字体系列也没有问题:
\newfontfamily\scfont[Path=C:/fonts/]{SARSC___.PFB}
意思是我似乎做错了什么,我不应该将诸如 BoldFont = 和 ItalicFont = 之类的字体功能添加到 \setmainfont 选项中。或者这应该是可能的,这是 fontspec 中的一个错误吗?
答案1
有一种解决方法可以解决无法在 Windows 上安装字体的问题:如果你在字体查看器中加载字体,其他应用程序也可以使用它们,直到你关闭字体查看器。我刚刚检查了一下,它是使用 Type 1 字体可以做到这一点:只需双击 .pfm 文件(与 .pfb 文件不同,它将有一个漂亮的字体图标)。