RMarkdown PDF 输出中不显示某些 Unicode 字符

Some Unicode characters not displayed in RMarkdown PDF output

我正在尝试将一些课程笔记整理成 PDF,但无法正确显示某些 Unicode 字符。

使用 xelatex 乳胶引擎是渲染文档所必需的(使用默认引擎会由于无法识别的字符而导致错误),但是,只有第一个 Unicode 字符(大写增量) ) 正确显示。

例如,当使用 rmarkdown render() 函数渲染以下 .Rmd 文件时:

---
output:
  pdf_document:
    latex_engine: xelatex
---

- works - Δ
- doesn't work - ⌘

生成的 PDF 仅显示第一个 unicode 字符(大写字母 delta),而不显示后面的字符(环形方块)。

我知道 different character subsets 组成了完整的 UTF-8 字符编码,所以看起来可能只支持更多的基本子集。

为了确定,我使用 iconv -f UTF-8 your_file -o /dev/null [1] 检查了文件的编码,它确实看起来是一个有效的 UTF-8 文档。

最后,使用默认选项,文档可以正常呈现 HTML,因此该问题特定于 PDF 输出。

关于如何将第二个字符呈现为 PDF 的任何想法?

系统信息

问题可能是默认字体没有那个字符。你需要找到一个有它的字体。在 Linux 上,fc-list 列出了您计算机上可用的字体。选择一个并将其添加到您的 yaml front matter 中:

---
output:
  pdf_document:
    latex_engine: xelatex
mainfont: FreeMono
---

- works - Δ
- doesn't work - ⌘

在这里,我使用的是 FreeMono,这是我发现的第一个具有 ⌘ 字符的,但可能还有更好的。