首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RMarkdown Officedown:用UTF-8编码遍历包含可挠性的子文档

RMarkdown Officedown:用UTF-8编码遍历包含可挠性的子文档
EN

Stack Overflow用户
提问于 2022-06-18 10:19:48
回答 2查看 164关注 0票数 0

是否可以将子文档包含在包含具有UTF-8编码的可挠性的循环中?

这是我的YAML:

代码语言:javascript
复制
---
output: officedown::rdocx_document
---

在不使用循环的情况下,它工作得很好,Delta ("\U0394")将正确地显示在输出文件中:

代码语言:javascript
复制
```{r, echo = FALSE, message = FALSE}

图书馆(可弯曲)

创建列

col1 <- c("a",“U0394”)

col2 <- c(1.0,2.0)

创建数据

数据<- data.frame(参数= col1,

代码语言:javascript
复制
               Value = col2)

创建可弯曲的

ft <-可弯曲(数据)

ft

代码语言:javascript
复制

为了循环这个可弯曲的文件,我将上面的代码保存为子文件,并将其包含在带有knit_child()的asis块中.

代码语言:javascript
复制
```{r, echo = FALSE, message = FALSE, results = "asis"}

图书馆(Rmarkdown)

图书馆(针织品)

图书馆(可弯曲)

读两遍儿童医生

(我在1:2){

out <- knit_child("path_to_child\child.Rmd",quiet = TRUE)

禁止酷刑(退出)

禁止酷刑委员会(“\n”)

}

代码语言:javascript
复制

然后...but会得到这个错误,因为UTF-8编码在某种程度上不再被识别:

代码语言:javascript
复制
Error in read_xml.character(file) : error parsing attribute name [68]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-18 17:42:13

我在循环中使用"\u226570“也有同样的体验。这是由于您的系统区域设置的各个方面。遵循以下原则:

  1. 使用sessionInfo()并检查区域设置信息。
  2. 如果尚未设置区域设置,则将区域设置更改为English_United、States.utf8或其他utf8样式(如en_GB.UTF-8)。您可以使用Sys.setlocale("LC_ALL","English_United States.utf8")来完成这个任务。
  3. 再次检查会话信息,如果地区设置仍然不变,您的操作系统可能不支持UTF-8 (例如,更新后的视窗版本有更好的UTF-8支持)。

我认为你的问题将解决后,设置一个有效的UTF-8地区。

票数 1
EN

Stack Overflow用户

发布于 2022-06-18 11:55:56

您需要使用flextable_to_rmd

请参见:

您必须稍微调整一下“path_ to _child/child. You”中的代码:

代码语言:javascript
复制
```{r, echo = FALSE, message = FALSE, results='asis'}

图书馆(可弯曲)

创建列

col1 <- c("a",“U0394”)

col2 <- c(1.0,2.0)

创建数据

数据<- data.frame(参数= col1,

代码语言:javascript
复制
               Value = col2)

创建可弯曲的

ft <-可弯曲(数据)

flextable_to_rmd(ft)

代码语言:javascript
复制
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72668456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档