我刚刚安装了 MacTex 并且正在运行这个简单的程序:
\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{dejavu}
\begin{document}
\setsansfont{DejaVu Sans}
\setromanfont{DejaVu Serif}
\setmonofont{DejaVu Sans Mono}
\begin{abstract}
This is the paper's abstract \ldots
\end{abstract}
\section{Introduction}
This is time for all good men to come to the aid of their party!
\end{document}
当我运行此命令时:xelatex simple.tex
我得到:
This is XeTeX, Version 3.14159265-2.6-0.99996 (TeX Live 2016) (preloaded format=xelatex)
restricted \write18 enabled.
entering extended mode
(./simple.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def))
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/fontenc.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1enc.def)
(/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmr.fd))
(/usr/local/texlive/2016/texmf-dist/tex/xelatex/xunicode/xunicode.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3enc.def
(/usr/local/texlive/2016/texmf-dist/tex/latex/euenc/eu1lmss.fd))
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphicx.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/graphics-cfg/graphics.cfg)
(/usr/local/texlive/2016/texmf-dist/tex/xelatex/xetex-def/xetex.def
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2016/texmf-dist/tex/generic/oberdiek/ltxcmds.sty)))))
(/usr/local/texlive/2016/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(/usr/local/texlive/2016/texmf-dist/tex/latex/dejavu/dejavu.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/dejavu/DejaVuSansMono.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/dejavu/DejaVuSans.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/dejavu/DejaVuSerif.sty))
(./simple.aux) (/usr/local/texlive/2016/texmf-dist/tex/latex/tipa/t3cmr.fd)
LaTeX Font Warning: Font shape `EU1/DejaVuSerif-TLF/m/n' undefined
(Font) using `EU1/lmr/m/n' instead on input line 6.
kpathsea:make_tex: Invalid fontname `DejaVu Sans', contains ' '
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "DejaVu Sans" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.8 \setsansfont{DejaVu Sans}
我打开了 TexLive 实用程序来查看该dejavu
包是否已安装,结果已安装。
这里发生了什么?
答案1
在 Mac OS 上,xetex + fontspec
如果您使用以下字体名称,则无法从 TeXLive 树中找到 OpenType 字体:
使用文件名,
或者(最简单也是一些人推荐的)将你需要的字体复制到 MacOS 识别的位置,这样
~/Library/Fonts
或者在 内添加一个符号链接
~/Library/Fonts
,这是我一劳永逸地做的,我添加了两个符号链接,目标分别为/Library/TeX/Root/texmf-dist/fonts/opentype
和/Library/TeX/Root/texmf-dist/fonts/truetype
。这假设存在类似“texdist”的结构。我知道它现在是通过 MacTeX 中的 TeXLiveUtility 实现的,但由于 MacTeX 已决定在 TL2017 中放弃像 Mavericks 这样的 MacOS,我不再是 MacTeX 用户,因此我不能 100% 确定这些位置(它们本身就是符号链接)是否存在于上述名称下。此设置需要不每年更新。它不会对 LuaLaTeX 造成问题,因为后者(通过luaotfload
)能够(从一段时间前开始,但不是更早)修剪其字体数据库中的重复项,这些重复项源于在 TeXLive 树中直接找到相同的字体以及通过上述两个用户添加的符号链接间接找到官方 MacOS 位置的相同字体,以 TeXLive 树库为目标。
答案2
kpathsea:make_tex: 无效字体名称“DejaVu Sans”,包含“ ”
它说你的字体名称有空格
对于 Ubuntu,如果确实缺少 dejavu,请使用以下命令安装它:
sudo apt install fonts-dejavu*
或者安装所有 texlive 字体
sudo apt install texlive-fonts-recommended
sudo apt install texlive-fonts-extra
我还在这里找到了 dejavu 字体https://ctan.org/pkg/dejavu。我能够下载包含所需文件的 zip 文件,但我没有安装它,因为它texlive-fonts-extra
修复了我的计算机上缺少“DejaVuSans.sty”的问题。但如果您想安装它,请查看此博客:https://nathanvan.wordpress.com/2012/06/14/managing-latex-packages-manually-in-ubuntu-12-04/
答案3
以下内容在 macOS 上对我有效。
dejavu
从软件包页面下载软件包作为 ZIP 文件:https://ctan.org/tex-archive/fonts/dejavu是解决这个问题最简单的方法。
在 ZIP 文件中,有一个dejavu
包含*.ttf
文件的文件夹。我打开了/Applications/Font Book.app
应用程序,单击+
并指向该dejavu/truetype
文件夹。
以下是文件中针对 Latex 的 Sphinx 配置conf.py
:
...
'fontpkg': r'''
\setmainfont{DejaVu Sans}
\setsansfont{DejaVu Sans}
\setmonofont{DejaVu Sans Mono}
''',
为了使其在 Linux Ubuntu 20 上运行,我使用了apt install
Sawan Vaidya 推荐的命令。