我正在尝试将RStudio中的立陶宛语字符(如ččęėįšųž)从.Rmd文件转换为pdf文件。编织到html可以正常工作并且ggplot
标题具有立陶宛语字符时,编织到pdf ggplot
时会创建警告并消除这些字符。
可复制的示例:
---
title: "Untitled"
output:
pdf_document:
includes:
in_header: header_lt_text.txt
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(ggplot2)
```
## Lithuanian char: ĄČĘĖĮŠŲŪžąčęėįšųūž
```{r}
ggplot(iris, aes(Sepal.Length, Sepal.Width))+
geom_point(aes(col=Species))+
labs(title="Lithuanian char: ĄČĘĖĮŠŲŪžąčęėįšųūž")
```
我通过以下参数传递header_lt_text.txt
:
\usepackage[utf8]{inputenc}
\usepackage[L7x]{fontenc}
\usepackage[lithuanian]{babel}
\usepackage{setspace}
\onehalfspacing
关于如何使ggplot
创建正确标签的任何建议?
答案 0 :(得分:2)
清理后的答案:
问题出在pdf
设备上,并且仅在将图片另存为pdf时才明显(您希望使用它,因为它看起来要好得多)。这就是为什么在某些情况下似乎“起作用”的原因:图片未呈现为pdf格式,例如作为png。感谢@Konrad正确识别了问题的根源。
要解决此问题,您需要将正确的编码传递给pdf
设备。
幸运的是,pdf设备(?pdf
)带有encoding
参数和there is a chunk option来将参数传递给设备:dev.args
在Windows上,适当的编码为CP1257.enc
(波罗的海语):
```{r dev="pdf", dev.args=list(encoding="CP1257.enc")}
ggplot(iris, aes(Sepal.Length, Sepal.Width))+
geom_point(aes(col=Species))+
labs(title="Lithuanian char: ĄČĘĖĮŠŲŪžąčęėįšųūž")
```
您可以通过list.files(system.file("enc", package = "grDevices"))
在我的linux机器上运行良好:
或者,如果您愿意在pdf中插入png图片,则可以在块选项中简单地使用dev="png"
。看起来还不怎么样。