以下在生成它的计算机上运行。
\documentclass{article}
\usepackage[pdfencoding=auto,psdextra]{hyperref}
\usepackage{bookmark}
\usepackage{lipsum}
\usepackage{fontawesome}
\newfontfamily\Segoe{Segoe UI Symbol}
\def\SegoeWrench{\Segoe{\unichar{"1F527}}}
\pdfstringdefDisableCommands{%
\def\faWrench{\SegoeWrench}%
}
\begin{document}
\section{\faWrench First section}
\faWrench\lipsum[1]
\end{document}
但是当我将 PDF 带到另一台机器时,书签中没有显示 Wrench。我注意到的一件事是 Segoe UI Symbol 字体没有嵌入。
我正在使用 xelatex - 我没有使用 Adobe Acrobat Distiller - 在 updmap.cfg 中 pdftexDownloadBase14 为真。
有什么想法吗?
答案1
的书签文本\faWrench
包含字体命令\Segoe
(顺便说一下,该命令是字体切换命令,不是带参数的宏)。字体切换命令包括不是允许放在书签内。或者是否存在可以使用 LaTeX 字体切换命令的 PDF 查看器?
代替
\newfontfamily\Segoe{segoeui.ttf}
\def\SegoeWrench{\Segoe{\unichar{"1F527}}}
\pdfstringdefDisableCommands{%
\def\faWrench{\SegoeWrench}%
}
\faWrench
书签的定义如下,如回答我的:
\pdfstringdefDisableCommands{%
\def\faWrench{\unichar{"1F527}}%
}
然后,它取决于 PDF 查看器,哪种字体用于书签,以及它是否使用包含此 Unicode 符号的字体。
但是还有没有什么可以在 TeX 或 PDF 级别完成。书签字符串是纯文本字符串,没有任何标记。