我从https://www.tug.org/texlive/quickinstall.html
考虑这个脚本:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Tex Gyre Termes}
\begin{document}
\end{document}
当我用它编译时,xelatex
我得到:
(/usr/local/texlive/2018/texmf-dist/tex/latex/fontspec/fontspec.cfg)))kpathsea:make_tex: Invalid filename `Tex Gyre Termes', contains ' '
! Package fontspec Error: The font "Tex Gyre Termes" cannot be found.
我尝试tex-gyre
在 Ubuntu 中添加包:
sudo su
[sudo] password for v:
root@v-VirtualBox:/home/v# export PATH=$PATH:/usr/local/texlive/2018/bin/x86_64-linux/
root@v-VirtualBox:/home/v# which tlmgr
/usr/local/texlive/2018/bin/x86_64-linux//tlmgr
root@v-VirtualBox:/home/v# tlmgr install tex-gyre
tlmgr: package repository http://mirror.datacenter.by/pub/mirrors/CTAN/systems/texlive/tlnet (verified)
tlmgr install: package already present: tex-gyre
tex-gyre
我在目录中有很多文件。中/usr/share/texmf/fonts/opentype/public/tex-gyre/
也有很多。此外,它在 Libre Office 中可用:.otf
/usr/local/texlive/2018/texmf-dist/fonts/opentype/public/tex-gyre/
为什么无法访问xelatex
?
** 为什么字体Tex Gyre Termes
缺失以及如何安装?**
更新
一旦我.zip
从http://www.gust.org.pl/projects/e-foundry/tex-gyre/termes/qtm2.004otf.zip我该如何以及在哪里安装这些.otf
文件?
解决方案
问题已通过改变解决
\setmainfont{Tex Gyre Termes}
到
\setmainfont{TeX Gyre Termes}
答案1
LuaLaTeX 和 XeLaTeX 中的字体处理之间有一个重要区别:LuaLaTeX 允许您通过文件名或字体名称访问所有字体,而 XeLaTeX 限制这一点:
- 系统字体目录中的系统字体(其他程序可见的字体)可以仅有的被召唤字体名称(例如“TeX Gyre Termes”)。
- 安装在 TeX 目录中的字体可以仅有的被他们召唤文件名。
现在通过 TeX Live 安装 tex-gyre 会在 TeX 目录中安装字体,因此您必须使用文件名。
如果通过字体名称访问字体对您来说确实很重要,您可以将 TeX 字体路径添加到系统字体路径或使用 LuaTeX。
但这种方式不太方便移植,所以我们想改用文件名。你可以在 中指定文件名fontspec
,但这里不需要 fontspec。你只需要一个字体的 NFSS 字体定义:
将以下文件保存在以下名称下tutgtermes.fd
(在您的texmf-local
系统范围安装目录中或在您的文档路径中)
\ProvidesFile{tutgtermes.fd}[2019/01/17 v0.0 OpenType font definitions for TeX Gyre Termes]
\DeclareFontFamily{TU}{tgtermes}{}
\DeclareFontShape{TU}{tgtermes}{m}{n}{%
<->\UnicodeFontFile{texgyretermes-regular}{\UnicodeFontTeXLigatures}
}{}
\DeclareFontShape{TU}{tgtermes}{m}{it}{%
<->\UnicodeFontFile{texgyretermes-italic}{\UnicodeFontTeXLigatures}
}{}
\DeclareFontShape{TU}{tgtermes}{m}{sc}{%
<->\UnicodeFontFile{texgyretermes-regular}{\UnicodeFontTeXLigatures +smcp}
}{}
\DeclareFontShape{TU}{tgtermes}{m}{scit}{%
<->\UnicodeFontFile{texgyretermes-italic}{\UnicodeFontTeXLigatures +smcp}
}{}
\DeclareFontShape{TU}{tgtermes}{b}{n}{
<->\UnicodeFontFile{texgyretermes-bold}{\UnicodeFontTeXLigatures}
}{}
\DeclareFontShape{TU}{tgtermes}{b}{it}{%
<->\UnicodeFontFile{texgyretermes-bolditalic}{\UnicodeFontTeXLigatures}
}{}
\DeclareFontShape{TU}{tgtermes}{b}{sc}{
<->\UnicodeFontFile{texgyretermes-bold}{\UnicodeFontTeXLigatures +smcp}
}{}
\DeclareFontShape{TU}{tgtermes}{b}{scit}{%
<->\UnicodeFontFile{texgyretermes-bolditalic}{\UnicodeFontTeXLigatures +smcp}
}{}
\DeclareFontShape{TU}{tgtermes}{bx}{n}{%
<->ssub * tgtermes/b/n
}{}
\DeclareFontShape{TU}{tgtermes}{bx}{it}{%
<->ssub * tgtermes/b/it
}{}
\DeclareFontShape{TU}{tgtermes}{bx}{sc}{%
<->ssub * tgtermes/b/sc
}{}
\DeclareFontShape{TU}{tgtermes}{bx}{scit}{%
<->ssub * tgtermes/b/scit
}{}
\endinput
现在 LaTeX 将所有 TeX Gyre Termes 形状视为一个系列tgtermes
(编码TU
为 Unicode)。您可以使用字体
\documentclass{article}
\renewcommand\rmdefault{tgtermes}
\renewcommand\bfdefault{b}
\begin{document}
\end{document}
如果你真的想要使用 fontspec,你可以给 fontspec 一个提示,告诉它在哪里可以找到字体:创建一个texgyretermes.fontspec
名为
\defaultfontfeatures[TeX Gyre Termes]
{
Extension = .otf ,
UprightFont = texgyretermes-regular,
BoldFont = texgyretermes-bold,
ItalicFont = texgyretermes-italic,
BoldItalicFont = texgyretermes-bolditalic,
}
然后 fontspec 找到字体:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\begin{document}
\end{document}
最后一个版本非常脆弱,如果你改变名称中的任何内容,它可能会崩溃。
答案2
您应该能够使用 安装所有 TeX Gyre 字体tlmgr
,如下所示:
tlmgr install tex-gyre
如果这不起作用,你总是可以从网站下载字体并将它们作为普通字体安装,这应该允许 fontspec 找到它们。
由于您的日志似乎在抱怨空格,您是否尝试过将其删除?这对我来说当然有效:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeXGyreTermes}
\begin{document}
test
\end{document}