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

Kei*_*itt 5 latex r utf-8 knitr r-markdown

我正在尝试将一些课程笔记放在一起作为PDF,并且无法正常显示某些Unicode字符.

使用xelatex latex引擎对于完全呈现文档是必要的(使用默认引擎会因无法识别的字符而导致错误),但是,只有第一个Unicode字符(大写增量)才能正确显示.

例如,使用rmarkdown render()函数呈现以下.Rmd文件时:

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

- works - ?
- doesn't work - ?
Run Code Online (Sandbox Code Playgroud)

生成的PDF仅显示第一个unicode字符(大写增量),而不是后一个(循环方形).

在此输入图像描述

我知道有不同的字符子集构成完整的UTF-8字符编码,因此似乎只支持更基本的子集.

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

最后,使用默认选项将文档呈现为HTML,因此问题特定于PDF输出.

有关如何将第二个角色渲染为PDF的任何想法?

系统信息

  • Linux 64位
  • R 3.3.1
  • rmarkdown 1.0
  • pandoc 1.17.2
  • XeTeX 3.14159265-2.6-0.99996
  • 区域设置:en_US.UTF-8

sco*_*coa 6

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

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

- works - ?
- doesn't work - ?
Run Code Online (Sandbox Code Playgroud)

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