Beamer演示文稿:如何在RStudio中更改代码块的字体大小

10

我正在使用Knit PDF在RStudio中编译beamer演示文稿。

---
title: "A.P. Statistics"
author: "Notes for Chapter 3.Rmd"
date: "Monday, October 13, 2014"
output: beamer_presentation
---

## Computer Output

```{r}
summary(lm(cars$dist~cars$speed))
```

如何更改字体大小(只针对这个块,保持其他块的相同字体大小),以便此命令的输出适合一页幻灯片?

3个回答

8

一种解决方案是使用knitr 钩子。钩子是在代码块执行之前或之后运行的代码。您可以使用它在文件中插入LaTeX字体大小命令。

```{r echo=FALSE}
knitr::knit_hooks$set(mysize = function(before, options, envir) {
  if (before) 
    return(options$size)
})
```

现在您可以通过以下方式更改大小

```{r mysize=TRUE, size='\\large'}
1:10
```

这种 hook 的一个缺点是它会影响幻灯片上的所有字体,包括回显的 R 代码。虽然有些繁琐,但您可以使用两个连续的块(第一个:回显,结果不显示;第二个:不回显,结果显示)来避免这种情况。

```{r results="'hide'}
1:10
```

```{r echo=FALSE, mysize=TRUE, size='\\large'}
1:10
```

注:也许通过修改输出钩子而不是代码块钩子有更好的方法。


也许我在这里漏掉了一些显而易见的东西,但是使用这个钩子函数的优点是什么,而不是在块之前手动添加\large(如果需要,在块之后撤销它,并使用\normalsized)? - crsh
是的,修改输出钩子的方法很简单,可以在下面看到我的答案--由于评论中的格式限制,我编写了自己的答案以获得更好的可读性。 - Marcelo Ventura

3
我本来想把它作为对Mark Heckmann答案的评论,但是格式全乱了。
实际上,如果你像这样编写你的块钩子:
```{r echo=FALSE} 
knitr::knit_hooks$set(mysize = function(before, options, envir) { 
  if (before) { 
    return(options$size) 
  } else { 
    return("\\normalsize") 
  } 
}) 
```

这会起到作用。

在我的情况下,我还包括了一个

knitr::opts_chunk$set(mysize = TRUE, size = "\\tiny")

就在 knitr::knit_hooks$set() 的下方。


0

这是我的做法...

将以下内容添加到您的slideStyle.sty文件中

% set font size to 7 with line breaks at 8
\newcommand\FontSmall{\fontsize{7}{8}\selectfont}

在你的 Markdown 文件顶部调用该文件:

output: 
  beamer_presentation:
    includes: 
      in_header: "P:/R/Slides/slideStyles.sty"

然后在你的.Rmd文件中添加以下内容

## Tiny font slide

\FontSmall

here is some tiny font ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接