在 rmarkdown beamer 演示文稿中减少代码块和代码输出之间的 space
Reduce space between code chunks and code output in rmarkdown beamer presentation
我正在使用 rmarkdown 和 LaTeX/Beamer 制作演示文稿。我想缩小显示的 R-commands 和 R-output 之间的间距。我相信这与 LaTeX/Beamer.
中的段落间距选项有关
这是我应该在 rmarkdown(块选项,knit_hooks 或其他东西吗?)、pandoc Yaml header(某些 pandoc 选项?)或 LaTeX beamer 中做的事情模板文件?我觉得它应该在 LaTeX 模板文件中。
下面是一个最小降价文件的工作示例,以及一个我用来控制一些投影仪设置的 .tex 模板文件。
example.Rmd
---
title: "Untitled"
author: "Ryan"
date: "March 1, 2016"
output:
beamer_presentation:
pandoc_args: '--latex-engine=xelatex'
includes:
in_header: latex-topmatter.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Vertical Spacing is too much
Here is a working example.
- some
- bullets
Example code:
```{r, echo = TRUE}
a <- 1
a
a+a
```
latex-topmatter.tex
% declare overall beamer theme to use as baseline
\usetheme{default}
% make code-output smaller
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\{\}}
% make console-output smaller:
\makeatletter
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
% set vertical spacing between paragraphs:
% \parskip{0pt}
% \addtobeamertemplate{blocks}{}{\setlength{\parskip}{0pt}}
% \addtobeamertemplate{block begin}{}{\setlength{\parskip}{0pt}}
% \addtobeamertemplate{block end}{}{\setlength{\parskip}{0pt}}
% % \setlength{\emergencystretch}{0em}
\setlength{\parskip}{0pt}
我试过把R-commands或R-output的字体调小一点,好像对段落间距没有影响。
我试过使用 knit_hooks()
作为示例:
https://github.com/ramnathv/slidify/issues/189,这主要有效 - 但我似乎无法减少代码和输出的字体大小。
我也尝试过使用 \parskip{0pt}
和其他几个 beamer 选项或 parskip 选项,它们在上面的 latex-topmatter.tex
部分中有评论。其中 None 似乎改变了文本块之间的间距,R-code 或 R-output。我找对地方了吗?
这是一个工作示例。注意头文件末尾的定义:
- 源代码块包含在
Shaded
环境中,该环境又使用 \OuterFrameSep
作为间距。所以我们需要重新定义它。
- 使用
\preto
我们将命令 \topsep=-10pt \partopsep=-10pt
添加到每个逐字环境中。这会影响输出块的间距。
example.Rmd
---
title: "Untitled"
author: "Martin"
date: "January 4, 2017"
output:
beamer_presentation:
keep_tex: yes
pandoc_args: --latex-engine=xelatex
includes:
in_header: latex-topmatter.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Vertical Spacing is just right
Here is a working example.
- some
- bullets
Example code:
```{r, echo = TRUE}
a <- 1
a
a+a
```
latex_topmatter.tex
% declare overall beamer theme to use as baseline
\usetheme{default}
% make code-output smaller
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\{\}}
% make console-output smaller:
\makeatletter
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
\setlength{\parskip}{0pt}
\setlength{\OuterFrameSep}{-4pt}
\makeatletter
\preto{\@verbatim}{\topsep=-10pt \partopsep=-10pt }
\makeatother
我正在使用 rmarkdown 和 LaTeX/Beamer 制作演示文稿。我想缩小显示的 R-commands 和 R-output 之间的间距。我相信这与 LaTeX/Beamer.
中的段落间距选项有关这是我应该在 rmarkdown(块选项,knit_hooks 或其他东西吗?)、pandoc Yaml header(某些 pandoc 选项?)或 LaTeX beamer 中做的事情模板文件?我觉得它应该在 LaTeX 模板文件中。
下面是一个最小降价文件的工作示例,以及一个我用来控制一些投影仪设置的 .tex 模板文件。
example.Rmd
---
title: "Untitled"
author: "Ryan"
date: "March 1, 2016"
output:
beamer_presentation:
pandoc_args: '--latex-engine=xelatex'
includes:
in_header: latex-topmatter.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Vertical Spacing is too much
Here is a working example.
- some
- bullets
Example code:
```{r, echo = TRUE}
a <- 1
a
a+a
```
latex-topmatter.tex
% declare overall beamer theme to use as baseline
\usetheme{default}
% make code-output smaller
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\{\}}
% make console-output smaller:
\makeatletter
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
% set vertical spacing between paragraphs:
% \parskip{0pt}
% \addtobeamertemplate{blocks}{}{\setlength{\parskip}{0pt}}
% \addtobeamertemplate{block begin}{}{\setlength{\parskip}{0pt}}
% \addtobeamertemplate{block end}{}{\setlength{\parskip}{0pt}}
% % \setlength{\emergencystretch}{0em}
\setlength{\parskip}{0pt}
我试过把R-commands或R-output的字体调小一点,好像对段落间距没有影响。
我试过使用 knit_hooks()
作为示例:
https://github.com/ramnathv/slidify/issues/189,这主要有效 - 但我似乎无法减少代码和输出的字体大小。
我也尝试过使用 \parskip{0pt}
和其他几个 beamer 选项或 parskip 选项,它们在上面的 latex-topmatter.tex
部分中有评论。其中 None 似乎改变了文本块之间的间距,R-code 或 R-output。我找对地方了吗?
这是一个工作示例。注意头文件末尾的定义:
- 源代码块包含在
Shaded
环境中,该环境又使用\OuterFrameSep
作为间距。所以我们需要重新定义它。 - 使用
\preto
我们将命令\topsep=-10pt \partopsep=-10pt
添加到每个逐字环境中。这会影响输出块的间距。
example.Rmd
---
title: "Untitled"
author: "Martin"
date: "January 4, 2017"
output:
beamer_presentation:
keep_tex: yes
pandoc_args: --latex-engine=xelatex
includes:
in_header: latex-topmatter.tex
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Vertical Spacing is just right
Here is a working example.
- some
- bullets
Example code:
```{r, echo = TRUE}
a <- 1
a
a+a
```
latex_topmatter.tex
% declare overall beamer theme to use as baseline
\usetheme{default}
% make code-output smaller
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{fontsize=\tiny,commandchars=\\{\}}
% make console-output smaller:
\makeatletter
\def\verbatim{\tiny\@verbatim \frenchspacing\@vobeyspaces \@xverbatim}
\makeatother
\setlength{\parskip}{0pt}
\setlength{\OuterFrameSep}{-4pt}
\makeatletter
\preto{\@verbatim}{\topsep=-10pt \partopsep=-10pt }
\makeatother