tikzDevice は、UTF-8 の Windows でウムラウトを含むコードを出力しません
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 は TeX ファイル (プロット) を 1252 エンコーディングで書き込みますが、これはメインの 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