我正在尝试将一些课程笔记整理为 PDF,但无法正确显示某些 Unicode 字符。
使用xelatex https://en.wikipedia.org/wiki/XeTeXLatex 引擎对于渲染文档是必需的(使用默认引擎会因无法识别的字符而导致错误),但是,只有第一个 Unicode 字符(大写 delta)可以正确显示。
例如,当使用 rmarkdownrender()
函数渲染以下 .Rmd 文件:
---
output:
pdf_document:
latex_engine: xelatex
---
- works - Δ
- doesn't work - ⌘
生成的 PDF 仅显示第一个 unicode 字符(大写 delta),而不显示后面的字符(循环方形)。
我知道有不同的字符子集 http://www.utf8icons.com/subsets组成完整的 UTF-8 字符编码,因此看起来可能只支持更基本的子集。
为了确定,我使用检查了文件的编码iconv -f UTF-8 your_file -o /dev/null
[1 https://stackoverflow.com/questions/115210/utf-8-validation],它确实看起来是一个有效的 UTF-8 文档。
最后,使用默认选项,文档可以很好地呈现为 HTML,因此该问题特定于 PDF 输出。
有什么想法如何让第二个字符渲染为 PDF 吗?
系统信息
- Linux 64 位
- R 3.3.1
- 降价1.0
- 潘多克 1.17.2
- XeTeX 3.14159265-2.6-0.99996
- 区域设置:en_US.UTF-8
问题可能是默认字体没有该字符。您需要找到具有该功能的字体。在 Linux 上,fc-list
列出了您的计算机上可用的字体。选择一个并将其添加到您的 yaml front Matter 中:
---
output:
pdf_document:
latex_engine: xelatex
mainfont: FreeMono
---
- works - Δ
- doesn't work - ⌘
在这里,我使用 FreeMono,这是我发现的第一个具有 ⌘ 字符的,但可能有一个更好的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)