缺少 Dejavu 字體

缺少 Dejavu 字體

我剛剛安裝了 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 Utility 來查看該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從套件頁面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 installSawan Vaidya 推薦的命令。

相關內容