Глиф не напечатан

Глиф не напечатан

Я хочу сделать аккуратный PDF-документ из исходника TeX. Файл TeX в основном представляет собой текст ASCII с несколькими не-ASCII-символами (стрелки в схемах, пользовательские маркеры, отмечающие элементы списка, иероглифы в имени автора в разделе благодарностей и т. д.).

Исходный код TeX, в свою очередь, создается Sphinx из исходных кодов.

Символы, не входящие в набор ASCII, не печатаются в выходном PDF-файле, поскольку в шрифте, используемом в документе по умолчанию, для них нет глифов.

Итак, я создал скрипт оболочки, который сканирует каталог установки TeX Live на наличие файлов .pfb, .otf и .ttf и для каждого найденного шрифта создает документ TeX, подобный этому:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\usepackage{multido}

\font\testedfont="[/usr/share/texlive/texmf-dist/fonts/type1/wadalab/dgj/dgjkj.pfb]"

\font\basictextfont="cmr10"

\title{Find glyph for Unicode 80A5 in dgjkj.pfb}
\begin{document}

\newcounter{glyphslotnum}
\newcommand\findglyphslotnum{}

\newcounter{totalglyphnum}
\newcommand\findtotalglyphnum{}

Test glyphs

{\basictextfont{Font filename: dgjkj.pfb}}

\testedfont
\renewcommand\findglyphslotnum{\the\XeTeXcharglyph"80A5}
\setcounter{glyphslotnum}{\findglyphslotnum}
\renewcommand\findtotalglyphnum{\the\XeTeXcountglyphs\testedfont}
\setcounter{totalglyphnum}{\findtotalglyphnum}

%\multido{\i=0+1}{\value{totalglyphnum}\relax}{
%{\basictextfont\i:\,}{\testedfont\XeTeXglyph\i}
%}

\basictextfont
dgjkj.pfb: total \number\value{totalglyphnum} glyphs

\ifnum\value{glyphslotnum}>0{\message{Glyph for 80A5 exists in dgjkj.pfb (slot \number\value{glyphslotnum})}Glyph for Unicode 80A5 exists in dgjkj.pfb at slot \number\value{glyphslotnum}.

It looks like [{\testedfont\XeTeXglyph\value{glyphslotnum}}] (by $\backslash$XeTeXglyph) 
or [{\testedfont{\char"80A5}}] (by $\backslash$char) 
or [{\testedfont{\symbol{"80A5}}}] (by $\backslash$symbol)
}\fi

\end{document}

Выводится примерно следующее (скопируйте сюда:dgjkj.pfb_U80A5.jpg): введите описание изображения здесь

Раскомментирование цикла multido предоставит список всех глифов в шрифте.

Я нашел шрифты с глифами для всех нужных мне символов Unicode, но у меня возникла проблема с символом U279C ("Heavy Round-Tipped Rightwards Arrow"). Он был найден в файле шрифта fonts/type1/urw/zapfding/uzdr.pfb (при компиляции выводится сообщение "Glyph for 279C exist in uzdr.pfb (slot 168)"), но сборка PDF завершается ошибкой, полный вывод следующий:

This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex)
 restricted \write18 enabled.
entering extended mode
(./find_glyph_pfb_uzdr.tex
LaTeX2e <2017-04-15>
Babel <3.17> and hyphenation patterns for 3 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def)
(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def
(/usr/share/texlive/texmf-dist/tex/generic/babel/switch.def)
(/usr/share/texlive/texmf-dist/tex/generic/babel/xebabel.def
(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def)))))
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def))
(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/tuenc.def))
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))
(/usr/share/texlive/texmf-dist/tex/latex/multido/multido.sty
(/usr/share/texlive/texmf-dist/tex/generic/multido/multido.tex
 v1.42, 2010/05/14 <tvz>))
No file find_glyph_pfb_uzdr.aux.
Glyph for 279C exists in uzdr.pfb (slot 168) [1] (./find_glyph_pfb_uzdr.aux)
xdvipdfmx:fatal: pdf_ref_obj(): passed invalid object.

Output file removed.
 )
Error 256 (driver return code) generating output;
file find_glyph_pfb_uzdr.pdf may not be valid.
Transcript written on find_glyph_pfb_uzdr.log.

Полный журнал можно найти здесь:find_glyph_pfb_uzdr.log.

Итак, вопрос в том, что мне сделать, чтобы напечатать этот глиф?

Обновление: неудавшийся документ TeX:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{fontspec}
\usepackage{multido}

\font\testedfont="[/usr/share/texlive/texmf-dist/fonts/type1/urw/zapfding/uzdr.pfb]"

\font\basictextfont="cmr10"

\title{Find glyph for Unicode 279C in uzdr.pfb}
\begin{document}

\newcounter{glyphslotnum}
\newcommand\findglyphslotnum{}

\newcounter{totalglyphnum}
\newcommand\findtotalglyphnum{}

Test glyphs

{\basictextfont{Font filename: uzdr.pfb}}

\testedfont
\renewcommand\findglyphslotnum{\the\XeTeXcharglyph"279C}
\setcounter{glyphslotnum}{\findglyphslotnum}
\renewcommand\findtotalglyphnum{\the\XeTeXcountglyphs\testedfont}
\setcounter{totalglyphnum}{\findtotalglyphnum}

%\multido{\i=0+1}{\value{totalglyphnum}\relax}{
%{\basictextfont\i:\,}{\testedfont\XeTeXglyph\i}
%}

\basictextfont
uzdr.pfb: total \number\value{totalglyphnum} glyphs

\ifnum\value{glyphslotnum}>0{\message{Glyph for 279C exists in uzdr.pfb (slot \number\value{glyphslotnum})}Glyph for Unicode 279C exists in uzdr.pfb at slot \number\value{glyphslotnum}.

It looks like [{\testedfont\XeTeXglyph\value{glyphslotnum}}] (by $\backslash$XeTeXglyph) 
or [{\testedfont{\char"279C}}] (by $\backslash$char) 
or [{\testedfont{\symbol{"279C}}}] (by $\backslash$symbol)
}\fi

\end{document}

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