4

I have an updated TeX Live distribution.

Following Fonts for PolyTonic Greek I copied the code exactly:

\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}

into c.tex and then did xelatex c. This returned the following error:

/usr/local/texlive/2013/texmf-dist/tex/latex/tipa/t3cmr.fd)kpathsea:make_tex: Invalid fontname `CMU Serif', contains ' '

fontspec error: "font-not-found" l.14 \test{CMU Serif}

Thus its first objection is to a space in a font name. How can that linked example work with a whole list of fonts with spaces in their names? And it also appears that no font whose name contains the strings "Serif" and "CMU" is part of TeX Live 2013:

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

What am I missing?

4
  • 3
    You don't have an up-to-date TeX distribution, because you're running TeX Live 2013. In order to be able to call the font by their PostScript names, you need to make them visibl to your system. How to do it depends on your operating system.
    – egreg
    Jan 21, 2015 at 21:19
  • I have run "sudo tlmgr update --self" and "sudo tlmgr update --all". What else do I need to do to update TeXLive on this computer? Jan 22, 2015 at 21:07
  • You cannot update TeX Live 2013 any further. The current release is TeX Live 2014, and you can't directly upgrade from 2013 to 2014 (or, later this year, to 2015). You must reinstall TeX Live each year if you want to have access to tlmgr. Alternatively, you can update things manually. If your needs are simple, this is not too onerous. (I used to do this.)
    – jon
    Jan 25, 2015 at 23:20
  • find is no good in any case. It is not searching by filename - of course the names of the files do not have spaces in them! - but by the postscript name. You can see what the name of a given opentype font is, for example, using otfinfo -i <path-to-font> but to use it, fontconfig must also know about it.
    – cfr
    Oct 18, 2015 at 0:38

2 Answers 2

5

The error is not really due to a space in the font name, but rather in the fact that the font “CMU Serif” is not available as a system font.

On a GNU/Linux box with TeX Live, the simplest way to make all fonts in TeX Live available to the system is to copy the pointers to the font directories to /etc/fonts/conf.d and do fc-cache:

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

Just tried on a GNU/Linux box and here's the output:

enter image description here

5
  • I had a problem with FontAwesome and your answer saved me. thanks man Dec 19, 2020 at 4:59
  • In my Ubuntu Linux, the file by the name texlive-fontconfig.conf does not exist anywhere under /var. Any suggestion? Mar 13, 2021 at 6:29
  • there is only one directory: /var/lib/texmf/fonts/map that doesn't contain any .conf files Mar 13, 2021 at 6:33
  • 1
    @YanKingYin You might try to download it from the TeX Live repository
    – egreg
    Mar 13, 2021 at 9:15
  • @egreg thanks, but I found a solution by just using the real file names, (see my answer),,. Mar 13, 2021 at 14:41
1

I don't know what is really going on, I have TexLive installed on both laptop and desktop computers. In one installation the font name with spaces works but not in the other. I'm too tired to check their versions or how they differ.

The solution for me is simply to:

fc-list | grep "the font name"

and look at its real file name. Use that instead.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .