Размер шрифта фрагмента кода в Beamer с knitr и latex

Я пытаюсь получить код R, чтобы поместиться на моих слайдах лучемет. Кажется невозможным изменить размер шрифта с помощью size аргумент для фрагмента кода, как и для других документов типа knitr. Единственный способ, кажется, с footnotesize перед каждым куском кода. Это расстраивает, так как у меня много фрагментов кода, и во многих случаях мне приходится использовать normalsize после для моих латексных пулевых точек.

---
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)
```

enter image description here

в своем header.txt (ниже) я экспериментировал с несколькими битами кода из http://yihui.name/knitr/demo/beamer/ но безуспешно.

ifdefinedknitrout
renewenvironment{knitrout}{begin{footnotesize}}{end{footnotesize}}
else
fi

makeatletter
letoldallttalltt
defalltt{@ifnextchar[alltt@i alltt@ii}
defalltt@i[#1]{oldalltt[#1]footnotesize}
defalltt@ii{oldallttfootnotesize}
makeatother

... но на самом деле из моей глубины с def.

1 ответов


рисование на этот текс.SE ответ, мы могли бы изменить Shaded среда, которая окружает R код, чтобы сделать его footnotesize (а verbatim окружающая среда для вывода). Добавьте это в заголовок.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}