代码

代码

我对 LaTeX 非常不熟悉。我有一个 tex 文件,它已经运行了很长时间,然后停止了,文件没有任何变化。

我们购买了 NeueHaasGrotDisp 字体。我有 OTF 格式的字体。

我收到以下错误:

(C:\myPath\Program\Binaries\miktex\tex\xelatex\fontspec\fontspec.cfg))Running miktex-makemf.exe...
miktex-makemf: The NeueHaasGrotDisp-55Roman source file could not be found.

Running hbf2gf.exe...
hbf2gf (CJK ver. 4.8.3)

Couldn't find `NeueHaasGrotDisp-55Rom.cfg'

miktex-maketfm: No creation rule for font NeueHaasGrotDisp-55Roman.

! Font \zf@basefont=NeueHaasGrotDisp-55Roman at 10.0pt not loadable: Metric(TFM) file or installed font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                              \unless \ifzf@icu \zf@set@...
l.151 {NeueHaasGrotDisp}

我的代码:

...
\usepackage{fontspec}

...
%Regular Font
\newfontfamily\nhg [
  Path = {/Program Files (x86)/program/fonts/},
  BoldFont = *-75Bold,
  UprightFont = *-55Roman,
  ItalicFont = *-36ThinItalic,
  Extension = .otf
]

{NeueHaasGrotDisp}
%Light Font
\newfontfamily\nhgl [
  Path = {/Program Files (x86)/program/fonts/}, 
  BoldFont = *-75Bold,
  UprightFont = *-45Light,
  Extension = .otf
]
{NeueHaasGrotDisp}

/Program Files (x86)/program/fonts/有以下文件:

  • NeueHaasGrotDisp-36ThinItalic.otf
  • NeueHaasGrotDisp-45Light.otf
  • NeueHaasGrotDisp-55Roman.otf
  • NeueHaasGrotDisp-75Bold.otf

如果我们的字体许可证已过期,会发生这种情况吗?加载字体时会检查这一点吗?

答案1

您的路径需要用括号括起来{}。我还用空格分隔结尾的逗号分隔符。

以下是我的做法。

我用了:

  1. 文件夹名称字体基本目录内(字体文件所在的位置)
  2. MinionPro*.otf(抓取所有变体,假设您的文件名方案是 fontname-type.otf,其中 -type 代表:-Bold、-Italic、-Regular 等)

(我有一个额外的半粗体文件,没有用 fontspec 加载。我通常通过创建另一个字体系列或根据情况替换粗体字体来克服这个限制。)

代码

\documentclass{article}
\usepackage{fontspec}

\newfontfamily\yourcustomnameforthisfont[%
    Path = {Fonts/} ,
    Extension = .otf ,
    UprightFont = *-Regular ,
    ItalicFont = *-It ,
    BoldFont = *-Bold ,
    BoldItalicFont = *-BoldIt
    ]{MinionPro}
\usepackage{lipsum}
\begin{document}
{\yourcustomnameforthisfont\lipsum}
\end{document}

输出

lipsum(请注意,屏幕截图和中缺少包。屏幕截图是为了显示代码和文件 \yourcustomnameforthisfont之间的关系。)\newfontfamily在此处输入图片描述

答案2

正如 @Will_Robertson 指出的那样,我安装了旧版本的 fontspec。实际上,我在 miktex 的不同文件夹中安装了多个版本的 fontspec。Miktex 正在查找旧版本并使用它。删除旧版本后,它开始工作。

相关内容