Beamer 中的代码块字体大小与 knitr 和乳胶
Code chunk font size in Beamer with knitr and latex
我正在尝试获取一些 R 代码以适合我的 beamer 幻灯片。似乎无法通过代码块的 size
参数更改字体大小,就像您可能对其他 knitr 类型文档所做的那样。唯一的方法似乎是在每个代码块之前使用 \footnotesize
。这令人沮丧,因为我有很多代码块,在很多情况下我必须在我的 LaTeX 项目符号之后使用 \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)
```
在我的 header.txt
(下)中,我尝试了一些来自 http://yihui.name/knitr/demo/beamer/ 的代码,但没有成功。
\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
...但是 \def
确实超出了我的理解范围。
借鉴 this tex.SE answer,我们可以重新定义 R
代码周围的 Shaded
环境,使其成为脚注(以及输出的 verbatim
环境)。将此添加到您的 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}
按照@Martin Schmelzer 的output,您可以更改代码字体大小和文本字体大小独立和整个文档 通过将此添加到您的 rmarkdown 文件中:
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0("\n \", "footnotesize","\n\n", x, "\n\n \normalsize")
})
在这段代码中,您只需将 "footnotesize"
和 "normalsize"
参数更改为您想要的任何字体大小;第一个是代码和输出字体大小,第二个是文本字体大小。
例如,代码为“tiny”,文本为“normalsize”:
---
output: beamer_presentation
---
```{r setup, include=FALSE}
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0("\n \", "tiny","\n\n", x, "\n\n \normalsize")
})
```
# Section 1
```{r}
summary(cars)
```
Text.
# Section 2
```{r}
summary(cars)
```
This works for every chunks.
给出这个:
我正在尝试获取一些 R 代码以适合我的 beamer 幻灯片。似乎无法通过代码块的 size
参数更改字体大小,就像您可能对其他 knitr 类型文档所做的那样。唯一的方法似乎是在每个代码块之前使用 \footnotesize
。这令人沮丧,因为我有很多代码块,在很多情况下我必须在我的 LaTeX 项目符号之后使用 \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)
```
在我的 header.txt
(下)中,我尝试了一些来自 http://yihui.name/knitr/demo/beamer/ 的代码,但没有成功。
\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
...但是 \def
确实超出了我的理解范围。
借鉴 this tex.SE answer,我们可以重新定义 R
代码周围的 Shaded
环境,使其成为脚注(以及输出的 verbatim
环境)。将此添加到您的 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}
按照@Martin Schmelzer 的output,您可以更改代码字体大小和文本字体大小独立和整个文档 通过将此添加到您的 rmarkdown 文件中:
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0("\n \", "footnotesize","\n\n", x, "\n\n \normalsize")
})
在这段代码中,您只需将 "footnotesize"
和 "normalsize"
参数更改为您想要的任何字体大小;第一个是代码和输出字体大小,第二个是文本字体大小。
例如,代码为“tiny”,文本为“normalsize”:
---
output: beamer_presentation
---
```{r setup, include=FALSE}
def.chunk.hook <- knitr::knit_hooks$get("chunk")
knitr::knit_hooks$set(chunk = function(x, options) {
x <- def.chunk.hook(x, options)
paste0("\n \", "tiny","\n\n", x, "\n\n \normalsize")
})
```
# Section 1
```{r}
summary(cars)
```
Text.
# Section 2
```{r}
summary(cars)
```
This works for every chunks.
给出这个: