如何安装字体 Tex Gyre Termes

如何安装字体 Tex Gyre Termes

我从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缺失以及如何安装?**

更新

一旦我.ziphttp://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}

相关内容