我正在尝试将包含男性和女性的 UTF 字符的图例保存为 R
中的 pdf 文件。当我绘制到图形设备时:
plot(1)
legend('topright', bty = 'n',
expression(italic("legend"~"\u2640"~"\u2642")))
情节的图例看起来符合预期
我什至可以通过右键单击并“保存到 pdf”将其保存为 pdf。但是,当我使用内置函数 pdf
pdf('test.pdf')
plot(1)
legend('topright', bty = 'n',
expression(italic("legend"~"\u2640"~"\u2642")))
dev.off()
它会发出警告并显示损坏的字符:
cairo_pdf
不会发出警告,但也不会显示正确的符号:
根据this post ,我应该指定支持我的符号的编码,但是我不知道如何找出它的功能(除了默认的 Helvetica
我尝试了 MacRoman
但没有成功)。
很明显,R 可以生成包含这些符号的 pdf(因为我可以通过右键单击来执行此操作)。但是,我想以自动化的方式实现这一点。
我的 R session 设置:
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.5 (El Capitan)
locale:
[1] en_US.UTF-8/C/en_US.UTF-8/C/en_US.UTF-8/C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
我还设法在另一台装有 macOS Sierra 10.12.1 的计算机上重现相同的行为。
最佳答案
OS X 上的有效答案是使用 quartz
:
quartz(type = 'pdf', file = 'test.pdf')
来源:https://stackoverflow.com/a/19610909/2962344
cairo_pdf
似乎可以在 Linux 上运行。
关于r - R生成的pdf图中损坏的UTF字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44547350/