Отсутствует шрифт 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, чтобы проверить, dejavuустановлен ли пакет, и это действительно так.

Что здесь происходит?

решение1

В Mac OS xetex + fontspecшрифты OpenType не будут найдены в дереве TeXLive, если вы используете имена шрифтов:

  • либо используйте имена файлов,

  • или (самый простой и рекомендуемый некоторыми) скопируйте нужные вам шрифты в место, распознаваемое MacOS, таким образом~/Library/Fonts

  • или добавьте символическую ссылку внутри ~/Library/Fonts, это то, что я сделал раз и навсегда, я добавляю две символические ссылки с целями соответственно /Library/TeX/Root/texmf-dist/fonts/opentypeи /Library/TeX/Root/texmf-dist/fonts/truetype. Это предполагает наличие структуры типа "texdist". Я понимаю, что теперь это реализовано через TeXLiveUtility в MacTeX, но поскольку MacTeX решил в TL2017 отказаться от MacOS, таких как Mavericks, я больше не являюсь пользователем 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

Я также нашел здесь шрифт dejavuhttps://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папку.

Вот моя конфигурация Sphinx для Latex в conf.pyфайле:

...
'fontpkg': r'''
    \setmainfont{DejaVu Sans}
    \setsansfont{DejaVu Sans}
    \setmonofont{DejaVu Sans Mono}
''',

Чтобы это заработало в Linux Ubuntu 20, я использовал команду, apt installрекомендованную Саваном Вайдьей.

Связанный контент