梅威瑟:
\documentclass[margin=0pt, 12pt]{standalone}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmonofont{FiraCodeNerdFontPropo}[
Extension = .ttf,
Path = ../../../fonts/FiraCodeNerdFont/,
UprightFont = *-Regular,
BoldFont = *-Bold
]
\begin{document}
\texttt{^^^^^^0f0072}
\end{document}
我在这里使用了字体:https://www.nerdfonts.com/font-downloads
根据字体备忘单(https://www.nerdfonts.com/cheat-sheet),0x0f0072是条形码图标。
上述代码在使用 XeLaTeX 编译时确实会产生条形码图标。
但是,当使用 LuaLaTeX 编译时,PDF 会显示一个银行图标(即 0x0f0070)。
经过一些测试,我发现 LuaLaTeX 似乎将每个图标移动了 0x2。
我不知道我是否遗漏了什么或者这只是一个错误。
答案1
问题不在于补充平面,而在于私有使用平面。LuaLaTeX 的默认node
模式不期望直接输入私有使用代码点,因此可以自由地重新映射它们。
如果您不想要这个,您可以使用harf
模式,例如使用fontspec
的Renderer = HarfBuzz
选项:
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmonofont{FiraCodeNerdFontPropo}[
Extension = .ttf,
Path = ../../../fonts/FiraCodeNerdFont/,
UprightFont = *-Regular,
BoldFont = *-Bold,
Renderer = HarfBuzz
]
\begin{document}
\texttt{^^^^^^0f0072}
\end{document}