Changing font in PDF produced by rmarkdown
I am producing reports using rmarkdown. When knitting a PDF
---
title: "Untitled"
output: pdf_document
---
I would like to specify the font to be used in creating the PDF. The official documentation (see section "LaTeX Options) says I can do this.
However, I've never used LaTeX and fail to understand how such selection can be made in YAML options at the top of the .Rmd document used by rmarkdown
package.
Question: How do I change the font in the PDF produced by rmarkdown?
sessionInfo() R version 3.1.0 (2014-04-10) Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_1.0.0 RODBC_1.3-10 knitr_1.6 dplyr_0.2
I've never used LaTeX and don't want to get into it at this very mom
The indentation in YAML options is meaningful. As the instructions point out "note that these options do not appear underneath the output section but rather appear at the top level along with title, author, etc.)". So,
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
will produce an unused argument error, while
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
will do the job. In addition, LaTeX commands inserted after YAML seem to override it: so
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
\fontsize{12}{22}
\fontseries{b}
\selectfont
produces the PDF with default font, not Calibri, however, the font option is passed fine.
Just a quick example. add these lines to your RMD main text area and see the effects.
\fontfamily{cmr}
\fontsize{12}{22}
\fontseries{b}
\selectfont
Hope this may help
I use pdfLatex, so almost nothing worked until I use "header-includes", like this:
---
title: "TITLE"
author: "ANDRES"
output: pdf_document
fontsize: 11pt
header-includes:
% Allows me to use and print accented characters (document is in Spanish)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
% Set up the document in Spanish
\usepackage[spanish]{babel}
% It allows me to place the tables or images where I want, whether there is space or not
\usepackage{float}
% It has several commands to have more control over the tables (at least I use it for this)
\usepackage{array}
% For custom headers and footers
\usepackage{fancyhdr}
% This line allows me to manipulate images within latex
\usepackage{graphicx}
% This package has several uses, for this document I used it to manage hyperlinks and introduce metadata to the document
\usepackage{hyperref}
% These lines define the font that I want to use in the document
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
---
With this change the generated pdf would look like this:
The other solutions only achieved this:
Just a part of the text in the font I needed.