RStudio编织器降价,德语变音符号导致文本在代码块中变成绿色

问题描述 投票:7回答:1

我在RStudio中准备rmarkdown文档时遇到问题。我正在导入包含变音符号“ü”的德语数据集。将表读入RStudio时,我必须在字符串中包含变音符号。

生成文档时没有任何问题,除了在ü之后,文本变为应为颜色的倒数。我创建了一个重现该问题的MWE。在MWE中,第一个块按我的期望进行渲染,但是在第二个块中,单词“lücky”之后的其余字符串元素为黑色。

是否有避免这种情况的方法?

MWE output

---
output: pdf_document
---

## MWE
When I use a normal 'u' in lucky everything looks fine
```{r }
a <- c('dog', 'cat', 'rabbit', 'lucky', 'pig', 'sheep', 'goat')
```

When I use a German 'ü' in lucky, the green text is the inverse of as it should be
```{r }
a <- c('dog', 'cat', 'rabbit', 'lücky', 'pig', 'sheep', 'goat')
```

sessionInfo()options('encoding')更新:

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.5.1  backports_1.1.2 magrittr_1.5    rprojroot_1.3-2 htmltools_0.3.6
 [6] tools_3.5.1     yaml_2.2.0      Rcpp_0.12.18    stringi_1.2.4   rmarkdown_1.10 
[11] knitr_1.20      stringr_1.3.1   digest_0.6.16   evaluate_0.11

> options('encoding')
$`encoding`
[1] "native.enc"
r rstudio r-markdown knitr
1个回答
0
投票

我使用pdflatex作为LaTeX引擎来重现这种奇怪的效果。此外,我已将选项Keep tex source用于生成PDF标记为TRUE。奇怪的效果很容易重现,并且在文本源中找到了原因:

When I use a normal `u' in lucky everything looks fine

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{a <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{'dog'}\NormalTok{, }\StringTok{'cat'}\NormalTok{, }\StringTok{'rabbit'}\NormalTok{, }\StringTok{'lucky'}\NormalTok{, }\StringTok{'pig'}\NormalTok{, }\StringTok{'sheep'}\NormalTok{, }\StringTok{'goat'}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

When I use a German `ü' in lucky, the green text is the inverse of as it
should be

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{a <-}\StringTok{ }\KeywordTok{c}\NormalTok{(}\StringTok{'düg', '}\NormalTok{cat}\StringTok{', '}\NormalTok{rabbit}\StringTok{', '}\NormalTok{löcky}\StringTok{', '}\NormalTok{pög}\StringTok{', '}\NormalTok{sheep}\StringTok{', '}\NormalTok{goat}\StringTok{')}
\end{Highlighting}
\end{Shaded}

ü发生标记从预期的StringTok变为NormalTok到所有后续字符串。这就是格式更改的原因。

因此,从我的角度来看,它与渲染引擎有关。

© www.soinside.com 2019 - 2024. All rights reserved.