如何使用 ReporteRs 在 *.docx 文件中添加不带任何编号的脚注?
How can I add a footnote without any numbering in a *.docx file using ReporteRs?
使用 ReporteRs
包时,似乎将文本放入页面页脚的唯一方法是在文本正文中放置带编号的脚注,并使该脚注以相同的方式出现页脚中的编号。我希望能够将文本放在页面的页脚中,而前面没有任何编号。
library(ReporteRs)
doc1 <- docx()
doc1 <- addFlexTable(doc1,vanilla.table(head(iris)))
Foot <- Footnote()
Foot <- addParagraph(Foot,"This should not have a number in front of it")
doc <- addParagraph(doc,pot("There should be no number after this",footnote=Foot))
writeDoc(doc1, file = "footnote1.docx")
或者,如果可以在页面底部放置一个段落,那也可以解决我的问题。这可以通过确定页面上还适合多少行来完成,但如果有某种方法可以使最后一段的页面底部垂直对齐,那将是理想的。
doc2 <- docx()
doc2 <- addFlexTable(doc2,vanilla.table(head(iris)))
doc2 <- addParagraph(doc2,c(rep("",33),"Text placed by dynamically finding bottom of the page"))
writeDoc(doc2, file = "footnote2.docx")
您尝试执行的操作与帮助中显示的 ReporteRs::Footnote
不符:
If in a docx object, footnote will be flagged by a number immediately following the portion of the text the note is in reference to.
但是,如果我正确理解你的问题,你所追求的是可以实现的。 table 中的注释和页脚中的文本不会以任何方式连接,例如 Footnote
提供的超链接。
还有一个问题是 ReporteRs
没有提供在不使用 bookmarks 的情况下在页脚中放置文本的方法(Footnote
除外,我们现在打折)。这意味着我们需要使用 docx 模板而不是包生成的空文档。
创建模板
步数:
- 来自 MS Word 我打开了一个空文档
- 将光标置于页脚区域
- 插入 => 书签
- 输入书签名称,我刚用过
FOOTER
,然后点击添加
- 保存文档
文档生成 ReporteRs
使用我们的新模板,接下来的步骤会更加熟悉。
library(ReporteRs)
doc <- docx(template = "Doc1.docx")
# do the flextable, note that I add your table footer here
ftable <- vanilla.table(head(iris))
ftable <- addFooterRow(
ftable,
value = c("There should be no number after this"),
colspan = 5
)
doc <- addFlexTable(doc, ftable)
# check for the presence of our bookmark
list_bookmarks(doc)
# [1] "FOOTER"
# now add the footer text using the bookmark
doc <- addParagraph(
doc, stylename = "footer", bookmark = "FOOTER",
pot("This should not have a number in front of it")
)
# and finally write the document
writeDoc(doc, file = "doc.docx")
最终产品
table,你可以更好地格式化以适应,我没有删除添加行上的边框。
页脚,采用标准页脚样式,您可以再次对其进行修改以适应。
使用 ReporteRs
包时,似乎将文本放入页面页脚的唯一方法是在文本正文中放置带编号的脚注,并使该脚注以相同的方式出现页脚中的编号。我希望能够将文本放在页面的页脚中,而前面没有任何编号。
library(ReporteRs)
doc1 <- docx()
doc1 <- addFlexTable(doc1,vanilla.table(head(iris)))
Foot <- Footnote()
Foot <- addParagraph(Foot,"This should not have a number in front of it")
doc <- addParagraph(doc,pot("There should be no number after this",footnote=Foot))
writeDoc(doc1, file = "footnote1.docx")
或者,如果可以在页面底部放置一个段落,那也可以解决我的问题。这可以通过确定页面上还适合多少行来完成,但如果有某种方法可以使最后一段的页面底部垂直对齐,那将是理想的。
doc2 <- docx()
doc2 <- addFlexTable(doc2,vanilla.table(head(iris)))
doc2 <- addParagraph(doc2,c(rep("",33),"Text placed by dynamically finding bottom of the page"))
writeDoc(doc2, file = "footnote2.docx")
您尝试执行的操作与帮助中显示的 ReporteRs::Footnote
不符:
If in a docx object, footnote will be flagged by a number immediately following the portion of the text the note is in reference to.
但是,如果我正确理解你的问题,你所追求的是可以实现的。 table 中的注释和页脚中的文本不会以任何方式连接,例如 Footnote
提供的超链接。
还有一个问题是 ReporteRs
没有提供在不使用 bookmarks 的情况下在页脚中放置文本的方法(Footnote
除外,我们现在打折)。这意味着我们需要使用 docx 模板而不是包生成的空文档。
创建模板
步数:
- 来自 MS Word 我打开了一个空文档
- 将光标置于页脚区域
- 插入 => 书签
- 输入书签名称,我刚用过
FOOTER
,然后点击添加 - 保存文档
文档生成 ReporteRs
使用我们的新模板,接下来的步骤会更加熟悉。
library(ReporteRs)
doc <- docx(template = "Doc1.docx")
# do the flextable, note that I add your table footer here
ftable <- vanilla.table(head(iris))
ftable <- addFooterRow(
ftable,
value = c("There should be no number after this"),
colspan = 5
)
doc <- addFlexTable(doc, ftable)
# check for the presence of our bookmark
list_bookmarks(doc)
# [1] "FOOTER"
# now add the footer text using the bookmark
doc <- addParagraph(
doc, stylename = "footer", bookmark = "FOOTER",
pot("This should not have a number in front of it")
)
# and finally write the document
writeDoc(doc, file = "doc.docx")
最终产品
table,你可以更好地格式化以适应,我没有删除添加行上的边框。
页脚,采用标准页脚样式,您可以再次对其进行修改以适应。