当同时使用knitr和rmarkdown创建word文档时,可以使用现有文档对输出进行样式化。
例如,在我的yaml标题中:
output:
word_document:
reference_docx: style.docx
fig_caption: TRUE在这种样式中,我创建了一个默认的表样式--这里的目标是使kable表输出具有正确的样式。
当我编织单词文档并使用style.docx时,表不会根据该表进行样式化。
到目前为止,使用样式检查器没有帮助,不确定默认表样式是否是要修改的不正确样式。
示例代码:
```{r kable}N <- 100
X <- r范数(N)
Y <- 2*x +r范数(N)
出<- lm(y ~ x)
图书馆(针织品)
kable(总结(Out)$coef,digits=2,标题=“测试标题”)
我没有一个样式化的文件,我可以上传为不幸的测试。
TL;DR:想要将表输出自动地从rmarkdown和针织品中输出(通过可选)
更新:到目前为止,我发现在docx中更改“紧凑”样式将自动更改表的文本内容,但这并不能解决表格的整体样式问题,如单元格颜色和对齐。
更新2:在对样式进行了更多的研究和创建之后,我发现knitr似乎没有访问段落样式的问题。然而,表样式不属于该样式类别,并且似乎不适用于我的个人测试。
更新3:尝试使用ReporteRs包-尽管它能够根据需要生成表,但这样做所需的语法是很辛苦的。更确切地说,样式是自动应用的。
更新4:您不能更改TableNormal样式,也不能设置表正常样式。XML方法不是我们所要寻找的。我有一个VBA宏,它可以完成这个任务,如果可能的话,我只想删除这个过程。
发布于 2016-06-17 21:47:25
这本质上是TableNormal、这篇文章发表在rmarkdown.rstudio.com上和我自己的实验的结合,展示了如何使用TableNormal样式自定义表,比如由kable生成的表:
RMD
---
output:
word_document
---
```{r}针织品::kable(汽车)
TableNormal作为样式名称并定义所需的样式。在我的实验中,大多数风格都奏效了,但有些没有。(向第一列添加颜色并使第一行粗体显示没有问题;忽略了第二行的突出显示。)这个答案中的最后一个屏幕截图说明了这个步骤。styles.docx。按照我前面描述的步骤,将产生以下输出:

这里是用于定义TableNormal的表样式对话框的屏幕截图。不幸的是,它是用德语写的,但也许有人可以提供它的英文版本:

因为这似乎不适用于大多数用户(除了me…之外的任何人),我建议我们系统地测试这个。本质上,有四个步骤可能出错:
TableNormal样式的方式不同。因此,我建议使用上面发布的相同的最小RMD (pastebin上的完整代码)来找出结果从哪里开始的不同:
TableNormal的同一文档:reference.docx这三个文件是在以下系统上生成的: Windows 7/R3.3.0/ RStudio 0.99.896 / pandoc 1.15.2 / Office 2010。
在Windows7/R3.2.4/ RStudio 0.99.484 /Pandoc1.13.1/ Office 2010的系统上,我得到了相同的结果。
我认为最有可能的罪魁祸首是pandoc和Office版本。不幸的是,我目前无法测试其他配置。现在,您会很感兴趣地看到以下内容:对于不工作的用户,…会发生什么?
在许多用户运行这些测试的情况下,应该可以找出导致这些问题的原因。
发布于 2017-12-11 12:32:18
发布于 2021-03-10 22:26:38
到2021年,我无法得到任何其他建议的工作答案。
但是,我确实发现了{officedown}包,它支持.docx文档中表的样式。您可以使用{officedown}安装remotes::install_github("davidgohel/officedown")
若要使用{officedown}将.Rmd呈现为.docx,必须替换
output:
word_document在您的文档标题中
output:
officedown::rdocx_document此外,必须在{officedown}包中加载.Rmd包。
与word_document输出格式一样,{officedown}允许我们使用模板文档中的样式和设置,同样使用reference_docx参数。
对于参考文档styles.docx,最小的.Rmd示例可能如下所示:
---
date: "2038-01-19"
author: "The Reasonabilists"
title: "The end of time as we know it"
output:
officedown::rdocx_document:
reference_docx: styles.docx
---
```{r setup, include = FALSE}别忘了我:我很重要!
图书馆(“办公大楼”)
{officedown}允许我们更进一步,指定要在文档前面使用的表样式的名称。这个表格样式可以是我们创建的自定义样式 in styles.docx,也可以是Word内置的样式之一。
假设我们创建了一个样式My Table

我们可以告诉{officedown}在前面的事情中使用这种桌子样式,如下所示:
output:
officedown::rdocx_document:
reference_docx: styles.docx
tables:
style: My Table总之,编织最小的.Rmd
---
date: "2038-01-19"
author: "The Reasonabilists"
title: "The end of time as we know it"
output:
officedown::rdocx_document:
reference_docx: styles.docx
tables:
style: My Table
---
```{r setup, include = FALSE}别忘了我:我很重要!
图书馆(办公大楼)
```{r}磁头(地铁)
产生的.docx文档如下所示:

https://stackoverflow.com/questions/37671868
复制相似问题