字体名称中的空格

字体名称中的空格

我有一个更新的 TeX Live 发行版。

下列的PolyTonic Greek 字体我准确复制了代码:

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
    
    
\newcommand\test[1]{%
  #1\\{\fontspec{#1}Βίβλος γενέσεως Ἰησοῦ Χριστοῦ υἱοῦ Δαυὶδ υἱοῦ Ἀβραάμ.}
  \par\medskip}
    
\setlength{\parindent}{0pt}
    
\begin{document}
    
\test{CMU Serif}
\test{EB Garamond}
\test{GFS Artemisia}
\test{GFS Baskerville}
\test{GFS Bodoni}
\test{GFS Complutum}
\test{GFS Didot}
\test{GFS Olga}
\test{GFS Porson}
\test{GFS Solomos}
\test{Junicode}
\test{Linux Libertine O}
\test{Old Standard}
\end{document}

进入c.tex然后执行xelatex c。这返回了以下错误:

/usr/local/texlive/2013/texmf-dist/tex/latex/tipa/t3cmr.fd)kpathsea:make_tex: 无效的字体名称“CMU Serif”,包含“ ”

字体规范错误:“font-not-found” l.14 \test{CMU Serif}

因此,它的第一个反对意见是字体名称中的空格。该链接示例如何处理名称中带有空格的整个字体列表?而且,名称中包含字符串“Serif”和“CMU”的字体似乎都不属于 TeX Live 2013:

查找 /usr/local/texlive -type f | egrep -i serif | egrep -i cmu

我错过了什么?

答案1

该错误实际上并不是由于字体名称中的空格造成的,而是因为“CMU Serif”字体不能用作系统字体。

在装有 TeX Live 的 GNU/Linux 机器上,使 TeX Live 中的所有字体可供系统使用的最简单方法是将指向字体目录的指针复制到/etc/fonts/conf.d并执行fc-cache

sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
sudo fc-cache -fsv

刚刚在 GNU/Linux 机器上尝试过,输出如下:

在此处输入图片描述

答案2

我不知道到底发生了什么,我在笔记本电脑和台式电脑上都安装了 TexLive。在一个安装中,带空格的字体名称可以工作,但在另一安装中却不行。我太累了,没法检查它们的版本或它们的区别。

对我来说,解决方案很简单:

fc-list | grep "the font name"

看看它的真实的文件名。请使用该名称。

相关内容