knitr中的特殊字符(cairoDevice不起作用)

jja*_*iak 5 graphics r cairo knitr

我的knitr文档中的特殊字符有问题.普通文本工作正常,但图片上标题或轴名称中的抛光字母没有. 在此输入图像描述

我尝试通过安装cairoDevice包来解决这个问题.但它仍然无效.实际上我不确定这个包是否正常工作,因为我还必须安装Rgtk2包,并且它也存在问题.除了cairoDevice之外还有其他任何方式来获取信件吗?如果不是如何让它正常工作?

这是我的knitr文件problem.Rnw:

\documentclass[12 pt, a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage{geometry}
\geometry{total={210mm, 297mm}, left=17mm, right=17mm, top=17mm, bottom=17mm}
\usepackage[font=footnotesize,labelfont=bf]{caption}
\usepackage{url}
\usepackage[colorlinks=true]{hyperref}
\hypersetup{linkcolor=blue}

<<include=F>>=
source("My path/plot.R")
@

<<include=F>>=
library(knitr)
library(RGtk2)
library(Cairo)
library(cairoDevice)

#ustawienia globalne
opts_chunk$set(fig.path='figure/', fig.align='center', fig.show='asis', fig.pos='ht!', dev='CairoPDF')

@

\begin{document}

<<MusicBad, echo=F, fig.width=5, fig.height=5, out.width='.5\\linewidth', fig.cap='B??dne zastosowanie wykresu liniowego.'>>=

plot.music.bad

@
\end{document}
Run Code Online (Sandbox Code Playgroud)

在这里我的plot.R档案:

library(ggplot2)

#create data frame
music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock")
number <- c(8, 7, 4, 6, 11)
df.music <- data.frame(music, number)

#create line graph 
plot.music.bad <- ggplot(data=df.music, aes(x=music, y=number, group=1)) +
  geom_line(size=1, color="#333333") +
  geom_point(size=3, color="#333333") +
  xlab("Rodzaj muzyki") +
  ylab("Liczba studentów") +
  ylim(c(0,11)) +
  ggtitle("Ulubiony typ muzyki w?ród studentów")
Run Code Online (Sandbox Code Playgroud)

你知道怎么做吗?我只想在图形中加入抛光字母.谢谢.

编辑我的会话信息:

sessionInfo()

R version 2.15.3 (2013-03-01)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Polish_Poland.1250  LC_CTYPE=Polish_Poland.1250   
[3] LC_MONETARY=Polish_Poland.1250 LC_NUMERIC=C                  
[5] LC_TIME=Polish_Poland.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.15.3
Run Code Online (Sandbox Code Playgroud)

如果我从控制台运行这个图,它工作正常.我将它保存到pdf时遇到了同样的问题,但如果我运行cairo_pdf(name, width=width, height=height)而不是pdf(name, width=width, height=height)它,它会保存特殊字符.

Jot*_* eN 1

您应该将其放在开头以更改编码:

<<result='hide'>>=
Sys.setlocale('LC_CTYPE', 'pl_PL.UTF-8')
@
Run Code Online (Sandbox Code Playgroud)