我有一个包含 ⚠ (U+26A0) 符号的 markdown 文档。
我在用着pandoc 2.11.3.1在 Ubuntu 18.04 上如下所示:
pandoc -f markdown -t pdf -H preamble.tex -c style.css --pdf-engine=xelatex -o file.pdf file.md
以下是该男子对这些选项的解释:https://pandoc.org/MANUAL.html
该文件preamble.tex
包含以下内容:
\usepackage[french]{babel}
我遇到了这个错误:
[WARNING] Missing character: There is no ⚠ (U+26A0) in font [lmroman10-regular]:mapping=tex-text;!
我知道我可以\danger
使用傅立叶包,它确实有效,但我需要\danger
从 markdown 文档中生成一个 HTML5 页面(在这种情况下,显然无法识别)和PDF 文件,无需在每次切换输出格式时触碰 markdown 内容本身。
我该如何使用直接 ⚠ 符号,以便它实际上使用 pandoc 呈现在我的 pdf 中--pdf-engine=xelatex
? 是否有包含此符号的字体?
注意:如果我省略该--pdf-engine=xelatex
选项,则会出现以下错误:
Error producing PDF.
! Package inputenc Error: Unicode char ⚠ (U+26A0)
(inputenc) not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...
l.1 ⚠
Try running pandoc with --pdf-engine=xelatex.
以下是 的内容file.md
:
# Chapter 1
Hello World ⚠ !
答案1
您使用 XeLaTeX 有什么特别的原因吗?如果您的文档可以使用 LuaLaTeX 进行编译,那么这就可以工作 ( --pdf-engine=lualatex
)。
- 安装 Noto 彩色表情符号在您的系统上。
- 修改
preamble.tex
如下:
\usepackage[french]{babel}
\usepackage{fontspec}
\directlua{luaotfload.add_fallback
("emojifallback",
{
"NotoColorEmoji:mode=harf;"
}
)}
\setmainfont{TeX Gyre Termes}[
RawFeature={fallback=emojifallback}
]
- 编译
正如@ChristophFrings 指出的那样,该字形在 Dejavu Sans 中存在。因此,您可以将序言更改为(并使用 XeLaTeX/LuaLaTeX 进行编译)
\usepackage[french]{babel}
\usepackage{fontspec}
\setmainfont{DejaVu Sans}