34

I'm writing a document in R Markdown and I'd like it to include a footer on every page when I knit a PDF document. Does anyone have any idea on how to do this?

Michael Harper
  • 14,721
  • 2
  • 60
  • 84
n8sty
  • 1,418
  • 1
  • 14
  • 26

3 Answers3

48

Yes, this question has been asked and answered here: Adding headers and footers using Pandoc. You just need to sneak a little LaTeX into the YAML header of your markdown document.

This markdown header does the trick:

---
title: "Test"
author: "Author Name"
header-includes:
- \usepackage{fancyhdr}
- \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
---

Works for me with an Rmd file in RStudio Version 0.98.1030 for Windows.

Community
  • 1
  • 1
Ben
  • 41,615
  • 18
  • 132
  • 227
1

Another option would be to use the argument includes provided by rmarkdown::pdf_document() (documentation). This allows you to keep the footer in a separate file. If your footer is defined in footer.tex, the header of your R Markdown file would look like this:

---
output:
  pdf_document:
    includes:
      after_body: footer.tex
---

This also assumes that footer.tex is in the same directory as the R Markdown file.

Update: The file footer.tex can contain any valid LaTeX that you want to be inserted at the end of your PDF document. For example, footer.tex could contain the following:

This \textbf{text} will appear at the end of the document.
John Blischak
  • 1,102
  • 1
  • 14
  • 18
0

To manage the height of the footer, you can use the following:

date: '`r paste("Date:",Sys.Date())`'
output:
  pdf_document: 
    latex_engine: xelatex
header-includes:
      - \setlength{\footskip}{-50pt} # set the footer size

Keep Coding!

Vishal Sharma
  • 289
  • 2
  • 10