我正在尝试在我的 latex 文档中使用 GARA.TFF (Garamond)。当我尝试从当前目录加载字体时,\setmainfont 找不到该字体。以下是文档:
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\setmainfont{GARA.TTF}
Testfont
\end{document}
目录内容:
drwxr-xr-x 2 reuter ids_s 4096 2011-06-09 16:39 .
drwxr-xr-x 4 reuter ids_s 4096 2011-06-09 16:38 ..
-rw-r--r-- 1 reuter ids_s 198072 2004-04-02 21:06 GARA.TTF
-rw-r--r-- 1 reuter ids_s 115 2011-06-09 16:39 test.tex
输出xelatex test.tex
:
[...]
fontspec.cfg loaded.
(/usr/share/texmf-texlive/tex/xelatex/fontspec/fontspec.cfg))
No file test.aux.
kpathsea: Running mktextfm GARA
/usr/share/texmf/web2c/mktexnam: Could not map source abbreviation G for GARA.
/usr/share/texmf/web2c/mktexnam: Need to update /usr/share/texmf-texlive/fonts/map/fontname/special.map?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input GARA
This is METAFONT, Version 2.718281 (TeX Live 2009/Debian)
kpathsea: Running mktexmf GARA
! I can't find file `GARA'.
<*> \mode:=ljfour; mag:=1; nonstopmode; input GARA
Please type another input file name
! Emergency stop.
<*> \mode:=ljfour; mag:=1; nonstopmode; input GARA
Transcript written on mfput.log.
grep: GARA.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input GARA' failed to make GARA.tfm.
kpathsea: Appending font creation commands to missfont.log.
! Font \zf@basefont=GARA.TTF at 10.0pt not loadable: Metric (TFM) file or insta
lled font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt
\unless \ifzf@icu \zf@set@...
l.7 \setmainfont{GARA.TTF}
?
我不知所措。它应该删除扩展吗?我可以成功加载已安装的字体。\setmainfont{Arial}
效果很好。
顺便说一下,这是在 Kubuntu 上。
答案1
看来您使用的版本有点旧fontspec
。然后尝试
\setmainfont{"[GARA.TTF]"} % with brackets, with or without quotes
括号表示“使用字体文件名”。这应该可以工作,就像 XeTeX 原语一样
\font\1="[GARA.TTF]" \1
在旧版本中fontspec
,必须使用ExternalLocation
选项来指定带有文件名的字体:
\setmainfont[ExternalLocation]{GARA.TTF}
% or something like \setmainfont[ExternalLocation=/usr/share/fonts/]{GARA.TTF}
该选项在较新版本中也可以使用Path
,如果没有指定路径则不需要。
答案2
您必须在系统中安装字体:
$ sudo mkdir -p /usr/local/share/fonts # Create directory if it doesn't exist
$ sudo cp GARA.TTF /usr/local/share/fonts/ # Copy the font there
$ sudo fc-cache /usr/local/share/fonts/ # Update font cache
$ fc-list | grep -i garamond # Check it's there
并且它应该可以工作,使用 中给出的字体名称fc-list
。例如,如果fc-list
说:
$ fc-list | grep -i garamond
Garamond LT:style=Italic
Garamond LT:style=Regular
然后使用:
\setmainfont{Garamond LT}
答案3
对于每个 Overleaf 用户来说 - 如果你有一个本地字体目录,可以这样做:
\setmainfont[Path=fonts/]{myfont.ttf}
因为我花了太多时间才发现这个问题:请注意/
路径末尾是必要的(但不是开头)!