【发布时间】:2017-09-23 14:29:33
【问题描述】:
有没有一种简单的方法可以在不使用 Pandoc 的情况下使用 Knitr 来做到这一点?我尝试将一些 HTML <DIV Class="newStyle>&nbsp</div> 添加到 .Rmd 文件中,但样式未显示在生成的 Word .docx 中。
谢谢,苏。
【问题讨论】:
-
我已经尝试使用 RStudio、knitr 和 Pandoc 将分页符添加到 Word 2 天了。我对这一切都很陌生,但似乎有三种可能的方法,
-
1.要使用 Pandoc 声明的能力来定义具有属性
custom-style="myStyleName"的<div>或<span>,pandoc 会将指定的样式名称应用于包含的元素。样式名称将出现在生成的 .docx 中。如果在 reference.docx 中定义,则原样使用,如果没有,则从body样式创建。见pandoc.org/MANUAL.html#custom-styles-in-docx-output。但是使用 RStudio 和 knitr 不会发生这种情况。 -
2.编写自己的过滤器。使用这个讨论作为指导,pandoc-discuss.narkive.com/BNVcQyvb/…,但不知道 Haskell,我使用
mvhenderson的pandoc-filter在 Windows 上获得了一个 NodeJS 过滤器。这在 .docx 文件中插入了一些文本,if ( ... ) { return Para( [ { t: "Str" , c: "PageBreak" } ] ); }但是以这种方式构造 RawBlock:if ( ... ) { return RawBlock( '<w:p><w:r><w:br w:type="page"/></w:r></w:p>', "openxml" ) }不起作用。有谁知道 NodeJS 的正确语法是什么? -
3.使用 Pandoc 为标准降价元素创建的现有样式之一。例如,然后在 Heading 4 样式上使用
reference.docx' to redefine one of the styles to format a paragraph withPage break before`。但这不太实用,因为我可能只希望在 H4 标题之一之前分页。 -
4.当然,有将一些文本放入文档的解决方案,例如,并在参考文档中编写一个 vba 宏子例程,查找所有出现的文本“ ”并将其替换为 Word 分页符.我选择了不可打印的不间断空格字符串,以便在将 .Rmd 文件转换为 PDF 或 HTML 时不会看到它。
标签: ms-word styles rstudio knitr r-markdown