tikzDevice 在 UTF-8 的 Windows 下不输出带有 Umlauts 的代码
我使用 RMarkdown 编写报告并使用 tikzDevice 进行绘图。当我使用德语变音符号 (äöüÖÄÜ) 时,RStudio 会抛出以下错误:
pandoc.exe:无法解码字节“\xd6”:Data.Text.Internal.Encoding.streamDecodeUtf8With:无效的 UTF-8 流
这是一个最小的例子:
---
title: "test"
author: "test"
date: "Today"
output:
pdf_document:
keep_tex: true
header-includes:
- \usepackage{tikz}
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(tikzDevice)
options(tikzDefaultEngine = "xetex")
```
```{r plot, dev="tikz", external=FALSE}
x <- rnorm(50)
y <- rnorm(50)
plot(x, y, xlab = "ÖÄÜ", ylab = "öäü")
```
使用此代码,tikzDevice 使用 1252 编码写入 TeX 文件(绘图),当包含在主 LaTeX 文档中时,该文件不起作用。因此 Pandoc 抛出一个错误。我在 Ubuntu 下尝试过,代码有效。我怀疑 Windows 编码是导致此问题的原因,但我无法找到解决方案。
源文件 (Rmd) 采用 UTF-8 编码。生成的 TeX 文件(由 tikzDevice)不是 UTF-8 编码。
会话信息(Windows):
version R version 3.6.1 (2019-07-05)
os Windows 10 x64
system x86_64, mingw32
ui RStudio
language (EN)
collate German_Germany.1252
ctype German_Germany.1252
tz Europe/Berlin
date 2019-09-04
会话信息(Ubuntu):
version R version 3.4.4 (2018-03-15)
os Ubuntu 18.04.3 LTS
system x86_64, linux-gnu
ui X11
language (EN)
collate C.UTF-8
ctype C.UTF-8
tz Europe/Berlin
date 2019-09-04