Code chunk font size in Rmarkdown with knitr and latex
Picking up the idea to alter a knitr hook we can do the following:
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
ifelse(options$size != "normalsize", paste0("\n \\", options$size,"\n\n", x, "\n\n \\normalsize"), x)
})
This snippet modifies the default chunk hook. It simply checks if the chunk option size is not equal to its default (normalsize
) and if so, prepends the value of options$size
to the output of the code chunk (including the source!) and appends \\normalsize
in order to switch back.
So if you would add size="tiny"
to a chunk, then all the output generated by this chunk will be printed that way.
All you have to do is to include this snippet at the beginning of your document.
\tiny
```{r}
summary(mtcars)
```
\normalsize
available options for size in descending order are:Huge
> huge
> LARGE
> Large
> large
> normalsize
> small
> footnotesize
> scriptsize
> tiny