gpt4 book ai didi

r - knitr 文档中 ggplot 中的非英文字符

转载 作者:行者123 更新时间:2023-12-04 12:18:58 25 4
gpt4 key购买 nike

我正在尝试将 .Rmd 文件中的 RStudio 中的立陶宛字符(如 ąčęėįšųž)编织为 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创建正确的标签?

enter image description here

最佳答案

问题出在 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 机器上运行良好:

success2

或者,如果您乐于在 pdf 中插入 png 图像,您可以简单地使用 dev="png"在您的块选项中。不过看起来没那么好。

关于r - knitr 文档中 ggplot 中的非英文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com