在rmarkdown beamer演示中减少代码块和代码输出之间的空间

Rya*_*tic 19 latex beamer spacing pandoc r-markdown

我正在使用rmarkdown和LaTeX/Beamer构建演示文稿.我想减少显示的R命令和R输出之间的间距.我相信这与LaTeX/Beamer中的段落间距选项有关.

这是我应该在rmarkdown(块选项,knit_hooks或其他什么?),pandoc Yaml标题(一些pandoc选项?)或LaTeX beamer模板文件中做的事情?我觉得它应该在LaTeX模板文件中.

下面是一个最小markdown文件的工作示例,以及我用来控制一些beamer设置的.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
```
Run Code Online (Sandbox Code Playgroud)

乳胶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}
Run Code Online (Sandbox Code Playgroud)

我已经尝试使R命令或R输出的字体变小,这似乎不会影响段落间距.

我已经尝试使用knit_hooks()如本例: https://github.com/ramnathv/slidify/issues/189,其中大部分工作-但是我似乎无法减少的代码和输出的字体大小.

我也尝试过使用\parskip{0pt},以及其他一些beamer选项或parskip选项,这些都在上latex-topmatter.tex一节中进行了评论.它们似乎都没有改变文本块,R代码或R输出之间的间距.我甚至在正确的地方寻找?

parskipNotWorking

Mar*_*zer 10

这是一个有效的例子.请注意头文件末尾的定义:

  • 源代码块包含在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
```
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述