如何使用具有大型 unicode 代码点的 luatex?

如何使用具有大型 unicode 代码点的 luatex?

我正在尝试将 Material Design Icon Font 与 lualatex 一起使用。

Material Design 图标集以 webfont 形式提供,包括 ttf 版本,网址为https://materialdesignicons.com/(使用下载按钮获取版本 5.4.55)。下载的文件materialdesignicons-webfont.ttf声明字体名称为“Material Design Icons”,当保存在系统可访问的位置时,似乎可以与Libreoffice等常规应用程序一起使用。具体来说,图标 https://pictogrammers.github.io/@mdi/font/5.4.55/看起来可用。

但是,如果我尝试将其与 luatex 一起使用,如下所示:

\documentclass{article}
\usepackage{fontspec}
\newfontface\MDI{Material Design Icons}[]

\begin{document}
Look at this character {\MDI \char"F1372}!
\end{document}

那么我似乎无法获得正确的字符。例如,根据表格中的 F1372 应该是 mdi-account-details-outline 字符https://pictogrammers.github.io/@mdi/font/5.4.55/但结果却是另外一个人物。

任何想法?

答案1

代码在 XeLaTeX 中按预期运行。在 LuaLaTeX 中似乎偏移量为 14。

\documentclass{article}
\usepackage{fontspec,iftex}

\newfontface\MDI{materialdesignicons-webfont.ttf}
\newcommand{\mdiicon}[1]{%
  {\MDI\symbol{\numexpr"#1\ifluatex-14\fi}}%
}

\pagestyle{empty}

\begin{document}

Look at this character \mdiicon{F1372}!

Look at this character \mdiicon{F1380}!

\end{document}

两个引擎的输出相同。

在此处输入图片描述

答案2

由于重复,值有点偏差。但你可以自己制作一个表格:

\documentclass{article}
\usepackage{fontspec,xfp}
\newfontface\MDI{Material Design Icons}[]

\begin{document}

\ExplSyntaxOn\raggedright
{\MDI \int_step_inline:nnn{983041}{983041+5940}{\makebox[6em][l]{{\ttfamily \int_to_Hex:n{#1}:}\hfill\char\int_eval:n{#1},}~}}
\ExplSyntaxOff

\end{document}

相关内容