Ответ 1
Как сказал Бен, cairo_pdf()
- ваш друг. Он также позволяет встраивать шрифты без postscript (т.е. TTF/OTF) в PDF с помощью аргумента family
(важно, если у вас нет шрифтов postscript, содержащих глифы, которые вы хотите использовать). Например:
library(ggplot2)
cairo_pdf("example.pdf", family="DejaVu Sans")
qplot(Sepal.Length, Petal.Length, data=iris, main="Aʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ")
dev.off()
... дает PDF файл, который выглядит так:
См. также этот вопрос; хотя он не имеет прямого отношения к названию, там много чего о том, как заставить шрифты делать то, что вы хотите в 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()
, как показано выше. Конечно, убедитесь, что вы используете шрифт, который у вас есть на вашей системе, и на самом деле у вас есть все нужные глифы.
T Инструкции о файлах DLL в комментариях ниже - это то, что я должен был сделать, чтобы команды Cairo()
и 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()