Не английские символы в ggplot в документе knitr - PullRequest
5 голосов
/ 25 мая 2019

Я пытаюсь связать pdf файл с литовскими символами, такими как ąčęėįšųž в RStudio из файла .Rmd. В то время как вязание в 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

1 Ответ

5 голосов
/ 01 июня 2019

Проблема с устройством pdf, которая проявляется только при сохранении изображения в формате pdf (что вам нужно, потому что оно выглядит намного лучше).Вот почему в некоторых случаях кажется, что он «работает»: изображение отображается не в формате pdf, а, например, в формате png.Спасибо @Konrad за правильное определение источника проблемы.

Чтобы решить эту проблему, необходимо передать правильное кодирование на устройство pdf.К счастью, устройство pdf (?pdf) принимает аргумент encoding и есть опция чанка для передачи аргументов на устройство: dev.args

В Windows соответствующая кодировкаis CP1257.enc (Baltic):

```{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

В качестве альтернативы, если вы счастливы, что изображения png вставлены в pdf, вы можете просто использовать dev="png" в своем варианте чанка.Хотя выглядит не так хорошо.

...