Уменьшите пространство между фрагментами кода и выводом кода в презентации проектора rmarkdown
Я создаю презентацию, используя rmarkdown и LaTeX/Beamer. Я хотел бы уменьшить расстояние между отображаемыми R-командами и R-выходом. Я полагаю, что это связано с параметрами интервалов между абзацами в LaTeX/Beamer.
Это то, что я должен сделать в rmarkdown (параметры чанка, knit_hooks или что-то еще?), В заголовке pandoc Yaml (какой-то параметр 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
```
латекс-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-команд или R-вывода, что, похоже, не влияет на расстояние между абзацами.
Я пытался использовать knit_hooks()
как в этом примере: https://github.com/ramnathv/slidify/issues/189, который в основном работает - но тогда я не могу уменьшить размер шрифта кода и вывода.
Я также пытался использовать \parskip{0pt}
и несколько других опций beamer или parskip, которые прокомментированы выше latex-topmatter.tex
раздел. Кажется, что ни один из них не изменяет интервал между фрагментами текста, R-кодом или R-выводом. Я даже смотрю в правильном месте?
1 ответ
Вот рабочий пример. Обратите внимание на определения в конце заголовочного файла:
- Куски исходного кода содержатся внутри
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