我正在尝试将一些课程笔记放在一起作为PDF格式,并且无法正常显示某些Unicode字符。
使用xelatex乳胶引擎对于要渲染的文档是必要的(使用默认引擎会因无法识别的字符而导致错误),但是,只有第一个Unicode字符(大写增量)是显示得当。
例如,使用rmarkdown render()
函数呈现以下.Rmd文件时:
---
output:
pdf_document:
latex_engine: xelatex
---
- works - Δ
- doesn't work - ⌘
生成的PDF仅显示第一个unicode字符(大写三角形),而不是后一个(循环方形)。
我知道有different character subsets组成了完整的UTF-8字符编码,因此似乎只支持更基本的子集。
为了确定,我使用iconv -f UTF-8 your_file -o /dev/null
[1]检查了文件的编码,它确实看起来是一个有效的UTF-8文档。
最后,使用默认选项将文档呈现为HTML,因此问题特定于PDF输出。
如何将第二个角色渲染为PDF?
系统信息
答案 0 :(得分:6)
问题可能是默认字体没有该字符。您需要找到拥有它的字体。在Linux上,fc-list
列出了计算机上可用的字体。选择一个并将其添加到您的yaml前端:
---
output:
pdf_document:
latex_engine: xelatex
mainfont: FreeMono
---
- works - Δ
- doesn't work - ⌘
在这里,我使用FreeMono,这是我发现的第一个具有⌘字符的人,但可能还有一个更好的。