如何在 TeX Live 2019 中使用 lualatex 的表情符号包(fontproblem)

如何在 TeX Live 2019 中使用 lualatex 的表情符号包(fontproblem)

我想使用 texlive luatex 中的表情符号包。我在 Ubuntu 20.04 下安装了 TexLive 2019。

我使用以下命令来安装该包,它不是 ubuntu texlive 发行版的一部分:

tlmgr init-usertree

tlmgr repository add ftp://tug.org/historic/systems/texlive/2019/tlnet-final
tlmgr repository list
tlmgr repository remove http://mirror.ctan.org/systems/texlive/tlnet
tlmgr option repository ftp://tug.org/historic/systems/texlive/2019/tlnet-final

tlmgr install emoji  --verify-repo=none

我的最小例子:

\documentclass{article}
\usepackage{emoji}
\setemojifont{Noto Color Emoji}

\begin{document}

\emoji{grinning}

\end{document}

尝试使用 lualatex-dev 进行编译,结果没有 PDF 文件,但会出现警告和错误消息:

This is LuaTeX, Version 1.10.0 (TeX Live 2019/Debian) 
 restricted system commands enabled.
(./emoji.tex
LaTeX2e <2020-02-02> patch level 2
 L3 programming layer <2020-02-14>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/home/andreas/texmf/tex/lualatex/emoji/emoji.sty
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def)))
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))) (./emoji.aux
) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd)

Package emoji Warning: It seems that you have not declare an emoji font.
(emoji)                You should use "\setemojifont " to set a font.

[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./emoji.aux))
 406 words of node memory still in use:
   3 hlist, 1 vlist, 1 rule, 2 glue, 3 kern, 1 glyph, 4 attribute, 48 glue_spec
, 4 attribute_list, 1 write nodes
   avail lists: 1:1,2:17,3:2,4:1,5:21,6:1,7:13,9:7
</usr/share/texmf/fonts/opentype/public/lm/lmroman10-regular.otf></usr/share/fo
nts/truetype/noto/NotoColorEmoji.ttf
! error:  (file /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf) (ttf): loca 
table not found
!  ==> Fatal error occurred, no output PDF file produced!

我也尝试过\setemojifont{NotoColorEmoji.ttf}[Path=/usr/share/fonts/truetype/noto/]\setemojifont{Emoji One}但得到了相同的结果。

字体已安装,位于 lualatex 消息指示的位置。Lualatex 可以正常工作,我可以使用 设置不同的字体\setmainfont{}

我在看未找到 loca 表如何将 Noto Color Emoji 与 lualatex 结合使用?但两者都不涉及表情符号包,也不包含针对我的问题的有效解决方案。第一个已关闭,第二个未考虑相关错误消息loca table not found

Twitter Color Emoji我可以使用带有和的表情符号包Segoe UI Emoji,但结果是黑白的。

那么,有什么办法可以让表情符号包与 TexLive 2019、Ubuntu 20.04 和Noto Color Emoji/或一起使用吗Emoji One

答案1

回答我自己的问题:Ubuntu 20.04 的 TeX Live 2019索赔提供luahbtex(在软件包描述中texlive-luatex),但实际上并没有。更糟糕的是lualatex-dev,它默默地将应该在 上运行的链接luahbtexluatex

可以使用以下解决方法:

  1. 下载https://mirrors.rit.edu/CTAN/systems/texlive/tlnet/archive/luahbtex.x86_64-linux.tar.xz(或与您的架构相对应的任何内容)。当然,您可以使用另一个镜像。

  2. 将此luahbtex包中的二进制文件放入/usr/local/bin并在同一目录中创建到lualatex-dev的软链接luahbtex

  3. 改变/var/lib/texmf/fmtutil.cnf-TEXLIVEDIST线路

    lualatex-dev luatex language.dat,language.dat.lua lualatex.ini

    lualatex-dev luahbtex language.dat,language.dat.lua lualatex.ini

    (也就是说,将引擎从 改为luatexluahbtex

  4. 跑步sudo fmtutil-sys --byfmt=lualatex-dev

  5. 使用包lualatex-dev,您现在可以编译任何 TeX 文件emoji,或者以其他方式依赖它,luahbtex而不会出现问题。(在这种情况下,除非您想更改包本身选择的字体,否则emoji无需使用。)\setemojifont{}

相关内容