问题
I am trying get some R code to fit on my beamer slides. It does not seem possible to change the font size via the size
argument for the code chunk as you might do for other knitr type documents. The only way seems to be with \footnotesize
before every code chunk. This is gets frustrating, as I have lots of code chunks and in many cases I then have to use \normalsize
after for my LaTeX bullet points.
---
title: "Untitled"
output:
beamer_presentation:
includes:
in_header: header.txt
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, size = "footnotesize")
```
## R Markdown
```{r}
summary(cars)
```
\footnotesize
```{r}
summary(cars)
```
In my header.txt
(below) I have experimented with a couple of bits of code from http://yihui.name/knitr/demo/beamer/ but with no luck.
\ifdefined\knitrout
\renewenvironment{knitrout}{\begin{footnotesize}}{\end{footnotesize}}
\else
\fi
\makeatletter
\let\oldalltt\alltt
\def\alltt{\@ifnextchar[\alltt@i \alltt@ii}
\def\alltt@i[#1]{\oldalltt[#1]\footnotesize}
\def\alltt@ii{\oldalltt\footnotesize}
\makeatother
... but really out my depth with \def
.
回答1:
Drawing on this tex.SE answer, we could redefine the Shaded
environment that surrounds R
code to make it footnotesize (and the verbatim
environment for output). Add this to your header.txt:
%% change fontsize of R code
\let\oldShaded\Shaded
\let\endoldShaded\endShaded
\renewenvironment{Shaded}{\footnotesize\oldShaded}{\endoldShaded}
%% change fontsize of output
\let\oldverbatim\verbatim
\let\endoldverbatim\endverbatim
\renewenvironment{verbatim}{\footnotesize\oldverbatim}{\endoldverbatim}
来源:https://stackoverflow.com/questions/38323331/code-chunk-font-size-in-beamer-with-knitr-and-latex