R生成的pdf打印中损坏的UTF字符

R生成的pdf打印中损坏的UTF字符,r,pdf,utf,R,Pdf,Utf,我正在尝试将包含男性和女性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'

我正在尝试将包含男性和女性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\u pdf
不会删除警告,但也不会显示正确的符号:

根据,我应该指定支持我的符号的编码,但是我不知道如何找到它所支持的(除了默认的
Helvetica
之外,我尝试了
MacRoman
,但没有成功)

很明显,R可以生成包含这些符号的pdf(因为我可以通过右键单击来完成)。然而,我希望以自动化的方式实现这一点

My R会话设置:

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在另一台计算机上重现了相同的行为。

嗨,这对我来说很有用(在windows上)

在mac上试试这个

pdf('test.pdf',encoding="MacRoman")

嗨,这对我有用(在windows上)

在mac上试试这个

pdf('test.pdf',encoding="MacRoman")

OSX上,一个有效的答案是使用
quartz

quartz(type = 'pdf', file = 'test.pdf')
资料来源:


cairo\u pdf
似乎适用于Linux

操作系统X
的有效答案是使用
quartz

quartz(type = 'pdf', file = 'test.pdf')
资料来源:


cairo\u pdf
似乎可以在Linux上运行

我遇到了同样的问题,其他解决方案对我不起作用,最后我使用了png而不是pdf:

png('test.png', units="in", width=11, height=10, res = 600)
plot(1)
legend('topright', bty = 'n',
       expression(italic("legend"~"\u2640"~"\u2642")))
dev.off()

我也遇到了同样的问题,其他解决方案对我不起作用,最后我使用了png而不是pdf:

png('test.png', units="in", width=11, height=10, res = 600)
plot(1)
legend('topright', bty = 'n',
       expression(italic("legend"~"\u2640"~"\u2642")))
dev.off()

无论是
cairo\u pdf('test.pdf',family=“DejaVu Sans”)
还是
pdf('test.pdf',encoding=“MacRoman”)
都不起作用。它产生的输出与未指定编码的输出完全相同。
cairo\u pdf('test.pdf',family=“DejaVu Sans”)
pdf('test.pdf',encoding=“MacRoman”)
都不起作用。它产生的输出与未指定编码的输出完全相同。我之所以犹豫删除此问题,是因为我花了4个小时才找到问题中的正确答案,而接受的答案对我来说并不适用。也许拥有它会简化对其他人的搜索,我将此决定留给社区。我之所以犹豫删除此问题,是因为我花了4个小时才找到问题中的正确答案,而接受的答案对我来说并不适用。也许拥有它会简化对其他人的搜索,我将此决定留给社区。您是否尝试了
Cairo
库中的
CairoPDF
?它与
cairo\u pdf()
函数不同。您是否尝试了
cairo
库中的
CairoPDF
?它与
cairo\u pdf()
函数不同。