pdf-устройство и семейство шрифтов "Arial" / или: изменить имя шрифта (не шрифт) в PDF
У меня проблема с шрифтами и PDF-выводом в R. На этой машине windows нет Helvetica и шрифт, используемый устройством, кажется Ариал как вы можете видеть ниже.
Простая проблема в том, что Arial используется (как я хочу), но редактирование PDF-файла говорит Helvetica - это. Как я могу заставить R записать правильное имя в PDF-файл. pdf(...,family="Arial")
не будет работать, так как это семейство не известно (версия grDevices 2.15.1).
или я могу заменить этот шрифт в PDF после этого, создав файл с нужным шрифтом?
R-PDF-выход
сравнение из этой статьи:Ариал и Гельветика
4 ответов
вам нужно установить новое семейство шрифтов для использования с pdf()
. Для этого необходимо иметь файлы метрик шрифтов Adobe (*.afm
files) для шрифтов, которые вы хотите использовать. Вы можете преобразовать .tty
файлы .afm
или найти .afm
файлы для Arial в interweb, если у вас их еще нет.
Arial <- Type1Font(family = "Arial",
metrics = c("ArialMT.afm",
"arial-BoldMT.afm",
"Arial-ItalicMT.afm",
"Arial-BoldItalicMT.afm"))
где вектор символов metrics
содержит пути к соответствующим .afm
файлы, файлы должны быть указаны в таком порядке:
- равнина лицо
- жирным шрифтом
- курсив face
- полужирный курсив лице
при использовании pdfFonts()
функция для добавления отображения в эти новые шрифты
pdfFonts(Arial = Arial)
здесь Arial
является объектом, производимым Type1Font()
раньше.
последний шаг-использовать на ?X11
для сведения.
R по умолчанию не встроить шрифты. Он просто указывает, что должен использоваться Helvetica. Вероятно, вам лучше всего встраивать шрифты. Есть два способа сделать это, либо использовать cairo_pdf
устройства или extrafont
пакет с обычным pdf
устройства. cairo_pdf
намного проще, но выход отличается тонкими способами от pdf
.
Как указано в одном из комментариев, базовые шрифты 14 не должны быть встроены, и Helvetica является одним из этих шрифтов.Предполагается, что потребители PDF обеспечивают замену таких шрифтов, а Arial (или Arial MT) часто используется вместо Helvetica.
Я не знаком с R, но вы, кажется, в состоянии вставить шрифты после
edit:ответ на этот вопрос объясняет, как вставлять шрифты после ghostscript, просто убедитесь чтобы иметь GS map Helvetica (или Arial) к версии шрифта, который вы хотите. Спасибо Гэвину Симпсону за то, что я искал это:)
начиная с R-3.1.0, это намного проще. Теперь, чтобы получить шрифт Arial, просто установите family="ArialMT"
:
pdf("Arial.pdf", height=0.3, width=1.45, family="ArialMT")
grid::grid.text("CGJQRSafrst1237")
dev.off()
Цитата Из апреля 2014 R-3.1.0 примечания к выпуску:
существует новое семейство "ArialMT" для pdf () и postscript() устройства. Это будет отображаться правильно только на зрителях, которые иметь доступ к шрифтам TrueType монотипа (которые иногда запрошено журналами).
чтобы убедиться, что pdf будет отображаться правильно везде, где он просматривается, вам также нужно будет вставить необходимые шрифты Arial в документ. Вот один простой способ сделать это:
library(extrafont)
loadfonts() ## Really only needed the first time you use extrafont
## Modify this to point to the corresponding Ghostscript executable on your own machine
Sys.setenv(R_GSCMD = "C:/Program Files/gs/gs9.07/bin/gswin64c.exe")
embed_fonts("Arial.pdf")