正如本建议的那样,cairo_pdf()
是你的朋友。它还允许您通过以下方式在 PDF 中嵌入非 Postscript 字体(即 TTF/OTF):family
参数(如果您碰巧没有任何包含您要使用的字形的 postscript 字体,则至关重要)。例如:
library(ggplot2)
cairo_pdf("example.pdf", family="DejaVu Sans")
qplot(Sepal.Length, Petal.Length, data=iris, main="Aʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ")
dev.off()
...gives a PDF that looks like this:
也可以看看这个问题;尽管从标题来看它并没有直接相关,但其中有很多关于如何让字体在 R 中实现您想要的功能的内容。
EDIT根据评论中的请求,以下是特定于 Windows 的代码:
library(ggplot2)
windowsFonts(myCustomWindowsFontName=windowsFont("DejaVu Sans"))
cairo_pdf("example.pdf", family="myCustomWindowsFontName")
qplot(Sepal.Length, Petal.Length, data=iris, main="Aʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ")
dev.off()
使用基本图形命令cairo_pdf()
只需使用以下命令定义您的字体系列就足够了windowsFonts()
先命令,如上图。当然,请确保您使用系统上实际拥有的字体,并且该字体实际上具有您需要的所有字形。
下面的评论中有关 DLL 文件的说明是我必须做的才能获得Cairo()
and CairoPDF()
命令在library(Cairo)
在 Windows 上工作。然后:
library(ggplot2)
library(Cairo)
windowsFonts(myCustomWindowsFontName=windowsFont("DejaVu Sans"))
CairoPDF("example.pdf")
par(family="myCustomWindowsFontName")
qplot(Sepal.Length, Petal.Length, data=iris, main="Aʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ")
dev.off()