【问题标题】:Can I change MSWord Normal style when using RMarkdown and knitr without affecting R code chunk output我可以在使用 RMarkdown 和 knitr 时更改 MSWord 普通样式而不影响 R 代码块输出吗
【发布时间】:2015-02-16 16:39:36
【问题描述】:

我正在尝试使用 RMarkdown v2(见下文)编写文档,然后使用 RStudio (v 0.8.1091) (knitr v1.8) 中的“Knit Word”将其编织到 MSWord。我已经修改了通过编织创建的 docx 文档中的正常样式,这样具有正常样式的文本将是双倍行距,并且段落的第一行将缩进。我在 YAML 标头中的 reference_docx 中包含了这个 docx 文件。这很好用,只是 R 代码也是双倍行距,第一行缩进(见下文)。我曾假设代码块是一种可以更改的不同样式,但我尚未确定该样式是什么。

那么,如何在不更改 R 代码块样式的情况下更改生成的 MSWord 文件中的主要文本?

我的 RMarkdown 文档看起来像这样...

---
title: "Chapter XX: XXXXX"
author: "Derek H. Ogle"
output:
  word_document:
    highlight: tango
    reference_docx: CSS.docx
---

R code can be shown in a box

```{r}
tmp <- rnorm(100)
summary(tmp)
```

R results can be included in a dynamic sentence, like this one that shows that the mean of the temporary data.frame is `r round(mean(tmp),2)` and the standard deviation is `r round(sd(tmp),2)`.

生成的 Word 文档如下所示...

提前感谢您的帮助。

【问题讨论】:

  • 我不太确定 Word 中代码块的样式到底是什么(我目前手头没有 Word),但是当您将光标放在任何代码块中时,样式应在样式面板中突出显示(如果样式存在):vimeo.com/110804387
  • @易慧,谢谢。光标在“tmp”上时样式为“NormalTOK”,在“rnorm”上时为“KeywordTOK”,在输出上时为“SourceCode”(例如,“Min.”)。如果我在输出中突出显示整行,那么它就是“SourceCode”。另请参阅下面对 Dirk 的“答案”的评论。

标签: r ms-word rstudio knitr r-markdown


【解决方案1】:

在 Word 中打开您的 CSS.docx,搜索名为 SourceCode 的样式。然后编辑此样式,使其具有单行间距。

【讨论】:

  • 谢谢。我打开了我的 CSS.docx,按照您的建议修改了 SourceCode 样式,保存了 CSS.docx 文件,并重新编写了 RMarkdown 文档。结果与我最初的问题中出现的完全一样。当我检查新编译的 Word 文档中的样式时,我注意到现在存在另一种“SourceCode”样式,它与我在 CSS.docx 中修改的“SourceCode”具有不同的特征。 Pandoc 参考 ([link]johnmacfarlane.net/pandoc/README.html) 没有将“SourceCode”显示为它使用的样式。会不会是这个问题?
  • 即使“源代码”样式不在 pandoc 文档中:您是否尝试使用生成的 docx 文件作为新模板的基础(生成它,修改“源代码”样式然后复制这是新模板吗?然后再次生成。
【解决方案2】:

您的模板文件应该是 dotx 扩展名,而不是 docx。 (确保将其保存为模板)

据我所知,您的示例文本由基于“正文”的样式“第一段”定义,输出代码有自己的样式,称为“源代码”,基于“正常”。

更改“正文”以更改所有段落(而不仅仅是第一段)不应更改“源代码”。然而,“源代码”是基于“正常”的。原来,“Body Text”又是基于“Normal”的。因此,如果您更改“正常”,则两者都更改了。我怀疑是这样的。

对于代码输出,我们有以下依赖项

最后样式“正文”本身是基于普通的

我建议从空白输出文档重新开始,以重新定义全新的模板,以确保没有搞砸。我自己必须这样做(起初我无法复制问题然后不知何故我也改变了“正常”风格,^_^)......

【讨论】:

    猜你喜欢
    • 2015-06-30
    • 2016-08-19
    • 1970-01-01
    • 2022-07-06
    • 2015-07-26
    • 1970-01-01
    • 2012-08-19
    • 2014-10-28
    • 2016-02-02
    相关资源
    最近更新 更多