在R Markdown中,无论输出类型如何,都在每个页面上创建页眉/页脚(pdf,html,docx)

时间:2017-09-03 19:44:05

标签: r latex yaml r-markdown pandoc

我想添加问题Creating a footer for every page (including first!) using R markdown。编织到pdf时,那里的代码(也在下面)对我来说非常好。但是我没有获得html或docx输出的页眉/页脚。

在R Markdown中,无论输出文档的类型如何,我都可以为输出文档的每个页面生成页眉/页脚?

---
title: "Test"
author: "Author Name"
header-includes:
- \usepackage{fancyhdr}
- \usepackage{lipsum}
- \pagestyle{fancy}
- \fancyhead[CO,CE]{This is fancy header}
- \fancyfoot[CO,CE]{And this is a fancy footer}
- \fancyfoot[LE,RO]{\thepage}
output: pdf_document
---
\lipsum[1-30]

1 个答案:

答案 0 :(得分:6)

您可以在文档的html和Word版本中添加页眉和页脚的YAML说明。以下是YAML的样子。解释如下。

---
title: "Test"
author: "Author Name"
output:
  pdf_document: 
  html_document:
    include:
      before_body: header.html
      after_body: footer.html
  word_document: 
    reference_docx: template.docx
header-includes:
- \usepackage{fancyhdr}
- \usepackage{lipsum}
- \pagestyle{fancy}
- \fancyhead[CO,CE]{This is fancy header}
- \fancyfoot[CO,CE]{And this is a fancy footer}
- \fancyfoot[LE,RO]{\thepage}
---

html页眉和页脚

如上面的YAML所示,对于html输出,您可以使用htmlbefore_body:标记在单独的after_body:文件中指定页眉和页脚。例如,要获得标题后跟规则行,header.html文件可能如下所示:

This is a header
<hr>

单词页眉和页脚

knitr的作者Yihui Xie解释了如何执行此操作here(另请参阅this SO answer)。使用所需样式创建Word文件,然后将该文件保存在本地目录中(如果文件位于另一个目录中,则可以提供该文件的路径)。然后使用reference_docx: YAML标记将knitr指向该文档。我刚刚打开一个新的Word文件并添加了页眉和页脚,然后将文件保存为template.docx在本地目录中。