从原始字符确定十六进制Unicode字符代码?

从原始字符确定十六进制Unicode字符代码?

我发现颜色表情符号它允许将苹果的彩色表情符号插入到上泰文档。此库首先将所有表情符号提取为 PDF,并根据其十六进制 Unicode 字符代码命名(例如 1F36E.pdf)。然后有一个样式表(coloremoji.sty),它似乎查找传入表情符号的十六进制代码并包含相应的 PDF。

但是,这似乎需要一些 upTeX 特定的功能。我希望pdflatex使用\usepackage{stringenc}\usepackage{utf8}\usepackage{fontenc}等来实现这一点。

是否可以使用 pdflatex(Mac OS X 上的 TeXLive)查找原始 unicode 字符的十六进制代码?

以下是想象中的界面(为保留表情符号而截屏)在此处输入图片描述

coloremoji命令应扩展为,includegraphics以便生成的文档是一个芝士汉堡。

答案1

如果您已经拥有转换后的 PDF 文件,这里有一个适用于所有引擎的版本:

\documentclass{article}
\usepackage{graphicx,stringenc}
\usepackage{xparse,l3regex}

\ExplSyntaxOn
\tl_const:Nn \c_coloremoji_dir_tl { ./emoji_images/hires }
\tl_new:N \l_coloremoji_input_tl

\cs_new_protected:Npn \coloremoji_unicode:nn #1 #2
 {
  \includegraphics[#1]{\c_coloremoji_dir_tl / \int_to_Hex:n{`#2}.pdf}
 }

\cs_new_protected:Npn \coloremoji_eightbit:nn #1 #2
 {
  \StringEncodingConvert \l_coloremoji_input_tl
    { \tl_to_str:n { #2 } } { utf8 } { utf32 }
  \tl_set:Nx \l_coloremoji_input_tl { \pdfescapehex\expandafter{\l_coloremoji_input_tl} }
  \regex_replace_once:nnN { \A 0* } { } \l_coloremoji_input_tl
  \includegraphics[#1]{\c_coloremoji_dir_tl / \l_coloremoji_input_tl.pdf}
 }

\NewDocumentCommand{\coloremoji}{O{}m}
 {
  \bool_if:nTF { \xetex_if_engine_p: || \luatex_if_engine_p: }
   {
    \coloremoji_unicode:nn { #1 } { #2 }
   }
  {
   \coloremoji_eightbit:nn { #1 } { #2 }
  }
 }

\ExplSyntaxOff

\begin{document}

\coloremoji{

相关内容