更新 3:我似乎通过设置 fileEncoding 参数和使用函数的密切协调解决了这个问题slidify(file.Rmd, encoding="UTF-8")
,上面的链接会有所帮助,因为fix-encode
除了 slidify with 之外还需要包括 slidify 的分支install_github('ramnathv/slidify@fix_encode')
,但它应该包含在 main设置可能很快。出于存档目的,我会将其保留在这里。不能说修复它的确切内容,但问题可能是由于输入文件的编码与脚本文件不同,因为默认编码似乎会导致一些问题。我仍然有点不确定到底发生了什么,但我对 slidify 的维护者 Ramnathv 积极参与所有这些讨论表示感谢和惊讶。此修复程序的故事也在上面的链接中。
我将这篇文章保留在网上只是为了存档目的,也许其他人最终会遇到与我所处的情况非常相似的情况。
更新 2:之前使用 slidify 进行编码存在问题,其中一些已经解决,更多信息请参见以下链接:https : //github.com/ramnathv/slidify/issues/377,http://kohske.github。 io/ESTRELA/201412/index.html,https: //github.com/ramnathv/slidify/issues/373,https ://github.com/Koalha/landslide/blob/master/index.Rmd
更新:打开包含 utf-8 字符的文件时似乎会出现此问题。在文本中的代码括号内编写r "õ,ä,ü"
似乎可以正常工作,但是当打开包含 utf-8 字符的变量的文件时会导致脚本出现问题。使用knitr编译成html5时不会出现这些问题。有谁知道这两者之间的区别可能是什么?
key <- read.csv("key1.csv", header = TRUE, sep = ";",
quote = "\"", dec = ".", fill = TRUE, comment.char = "")
print(key)
添加和编码参数,或 fileEncoding 似乎没有帮助,html knitr 似乎不需要它。
编辑:仍然没有解决,但我可能更接近这种情况的原因。事实证明,虽然 Rmd 本身保存为 UTF-8,但许多使用的数据集在存储时仍恢复为 ANSI。那么可能是混合文件类型的问题。最好的情况slidify(file.Rmd, encoding="UTF-8")
似乎是.md
用正确编码的字符来编译,但是在数据处理过程中,由于编码不匹配而导致的错误已经发生。这些问题在常规 knitr Rmd 到 html 的转换中没有发生。
我正在将 html Rmarkdown 文档转换为 ioslides 类型的 Rmarkdown 文档,但我偶然发现了一个意外问题。该文档在常规 knitr 构造上没有问题,但似乎遇到了与 slidify 中完全相同的代码、环境和目录的字符编码问题。
也就是说,当遇到包含非拉丁字符(例如ä,ü,ö)的变量时,knitr 似乎崩溃了,并且当它输出的文本包含这些字符时,它们被替换为“?” 矩形。
我正在使用基于 Claas-Thido Pfaff 示例的设置:http ://cpfaff.github.io/reproducibility/ 。我还没有找到可以指定或更改语言环境的地方(因为完全相同的文档适用于 html 输出。
---
title : Reproducible Reports
subtitle : With R, Knitr, LaTeX and Markdown
author : Claas-Thido Pfaff
job : http://cpfaff.github.io/reproducibility
framework : io2012 # {io2012, html5slides, shower, dzslides, ...}
highlighter : highlight.js # {highlight.js, prettify, highlight}
hitheme : tomorrow #
widgets : [mathjax, bootstrap] # {mathjax, quiz, bootstrap}
mode : selfcontained # {standalone, draft}
knit : slidify::knit2slides
github :
author : changed
repo : reproducibility
---
```{r echo = FALSE, include = F, eval = T}
require(knitr)
hook_source_def = knit_hooks$get('source')
knit_hooks$set(source = function(x, options){
if (!is.null(options$verbatim) && options$verbatim){
opts = gsub(",\\s*verbatim\\s*=\\s*TRUE\\s*", "", options$params.src)
bef = sprintf('\n\n ```{r %s}\n', opts, "\n")
stringr::str_c(bef, paste(knitr:::indent_block(x, " "), collapse = '\n'), "\n ```\n")
} else {
hook_source_def(x, options)
}
})
require(ggplot2)
```
有任何想法吗?谢谢!