Некоторые из вас, возможно, видели мое сообщение в блоге на эту тему, где я написал следующий код после того, как хотел помочь другу создать наполовину заполненные круги в виде точек на графике:
TestUnicode <- function(start="25a0", end="25ff", ...)
{
nstart <- as.hexmode(start)
nend <- as.hexmode(end)
r <- nstart:nend
s <- ceiling(sqrt(length(r)))
par(pty="s")
plot(c(-1,(s)), c(-1,(s)), type="n", xlab="", ylab="",
xaxs="i", yaxs="i")
grid(s+1, s+1, lty=1)
for(i in seq(r)) {
try(points(i%%s, i%/%s, pch=-1*r[i],...))
}
}
TestUnicode(9500,9900)
Это работает (то есть создает почти полную сетку крутых символов дингбатти):
- в Ubuntu 10.04, в устройстве X11 или PNG
- в дистрибутиве Mandriva Linux, те же устройства, с локально созданным R, после установки pango-devel
Он не может в различной степени (т. Е. Создает сетку, частично или полностью заполненную точками или пустыми прямоугольниками), либо молча, либо с предупреждениями:
- на той же машине Ubuntu 10.04 в PDF или PostScript (попытался установить font = "NimbusSan" для использования шрифтов URW, не помогает)
- на MacOS X.6 (кварц, X11, Каир, PDF)
Например, пробовать все доступные семейства шрифтов PDF:
flist <- c("AvantGarde", "Bookman","Courier", "Helvetica", "Helvetica-Narrow",
"NewCenturySchoolbook", "Palatino", "Times","URWGothic",
"URWBookman", "NimbusMon", "NimbusSan", "NimbusSanCond",
"CenturySch", "URWPalladio","NimbusRom")
for (f in flist) {
fn <- paste("utest_",f,".pdf",sep="")
pdf(fn,family=f)
TestUnicode()
title(main=f)
dev.off()
embedFonts(fn)
}
в Ubuntu, ни один из этих файлов не содержит символов.
Было бы неплохо заставить его работать с максимально возможным количеством комбинаций, но особенно в каком-то векторном формате и в особенности в двойном формате в PDF.
Будут приветствоваться любые предложения по настройке шрифтов / графических устройств, которые могли бы сделать эту работу.