Это не столько ответ, сколько некоторая диагностика, которую слишком долго вставлять в комментарии.
Обратите внимание, что "странный символ", который вы видите, это то, что вы получаете, когда символ не является доступно в указанном шрифте.
Прежде чем мы застрянем в диагностике, также обратите внимание, что из ?plotmath
:
По Unix -подобным: в локали UTF-8 можно ввести любой символ Unicode, возможно, как escape-последовательность \ uxxxx или \ Uxxxxxxxx, но проблема в том, может ли графическое устройство отображать символ. На устройстве X11, использующем cairo, возможно, будет доступен самый широкий набор символов: см. Его справочную страницу, чтобы узнать, как установка дополнительных шрифтов может помочь. Это часто можно использовать для отображения греческих букв жирным шрифтом или itali c.
В локалях, отличных от UTF-8, обычно нет поддержки символов, отличных от языков, для которых предназначалась текущая кодировка.
Теперь несколько вещей, чтобы попытаться выяснить причину:
1. Чтобы получить информацию о вашем регионе
Sys.getlocale()
2. Чтобы увидеть настройки по умолчанию для x11:
X11.options()
Мы особенно заинтересованы в том, чтобы type
проверял, использует ли устройство x11 cairo. Если это не так, попробуйте установить параметр cairo в X11.options()
, чтобы посмотреть, поможет ли это
3. Чтобы увидеть, какие символы доступны, введите следующее:
TestChars <- function(...)
{
info = l10n_info()
r <- c(32:126, 160:254)
par(pty = "s")
plot(c(-1,10), c(20,260), type = "n", xlab = "", ylab = "", xaxs = "i", yaxs = "i")
grid(11, 24, lty = 1)
mtext(paste("MBCS:", info$MBCS, " UTF8:", info$`UTF-8`, " Latin:", info$`Latin-1`))
for(i in r) try(points(i%%10, 10*i%/%10, pch = i, font = 5,...))
points(6,170, col='red', cex=5)
}
TestChars()
В моей системе это выглядит следующим образом (обратите внимание, я нарисовал кружок, чтобы выделить символ 176, с которым у вас возникли проблемы).
4. чтобы увидеть, какие символы доступны на других графических устройствах
Попробуйте использовать функцию TestChars на разных устройствах, чтобы увидеть, есть ли у любого из них полный набор. Например,
cairo_pdf()
TestChars()
dev.off()
Если после попытки выполнить эти действия вы все еще застряли, введите результаты диагностики c обратно в ваш вопрос на случай, если они могут помочь другим решить проблему.