【发布时间】:2019-09-04 09:33:50
【问题描述】:
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
【问题讨论】:
-
错误告诉你,你没有发送 UTF-8 数据。检查编码编辑器的编码。将文件另存为 UTF-8。
-
源文件 (Rmd) 采用 UTF-8 编码。生成的 TeX 文件(由 tikzDevice)不是 UTF-8 编码,我不知道如何解决这个问题。
标签: r encoding r-markdown tikzdevice