Окружающая среда:
R v. 2.15.1 на Mac OS 10.8.2, платформа x86_64-apple-darwin9.8.0/x86_64 (64-разрядная версия), с RStudio IDE, которая настроена на использование UTF-8 в качестве кодировки по умолчанию. ОС также использует UTF-8.
> Sys.getlocale(category = "LC_ALL")
[1] "sk_SK.UTF-8/sk_SK.UTF-8/sk_SK.UTF-8/C/sk_SK.UTF-8/sk_SK.UTF-8"
Цель:
Создайте HTML файл из файла R HTML (.Rhtml), содержащий график с расширенными латинскими символами, например š или č.
Проблема:
Когда я нажимаю Вязать HTML, вывод выглядит следующим образом:
plot(1:2, main = "šč")
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
## <8d>
**Plot with correct characters despite the warnings.**
Вопрос:
Что вызывает проблему и как ее решить? Как я могу по крайней мере избавиться от предупреждений, которые отображаются в результирующем файле?
Безупречное примечание:
Я искал решение за последние час или два, нашел много подобных случаев и попробовал много разных потенциальных решений (многие из них связаны с выходом в PDF, который взят таким же образом, если я использую только Sweave), и теперь Я буквально безнадежен.
Редактировать 9 ноября 2012 года:
Решение с использованием Encoding()
, предложенное @metasequoia, действительно работает, но, учитывая необходимость распечатки кода, предпочтительно без этой функции, я предпочитаю решение, предоставляемое @nograpes, с помощью функции pdf.options()
.
Интересно, однако, что пока
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
plot(cars, main="Ťažký")
end.rcode-->
выдает те же предупреждения,
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
<!--begin.rcode
plot(cars, main="Ťažký")
end.rcode-->
работает как ожидалось. Почему это? Я думал, что хронология - это все, что имеет значение при запуске команд в R.
Итак, определенное решение для моих целей - положить
<!--begin.rcode echo="FALSE"
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
в начале каждого из моих кодов.