gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:59:49 25 4
gpt4 key购买 nike

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

这是我应该在 rmarkdown( block 选项、knit_hooks 还是其他东西?)、pandoc Yaml header (一些 pandoc 选项?)或 LaTeX beamer 模板文件中做的事情?我觉得它应该在 LaTeX 模板文件中。

下面是一个最小 Markdown 文件的工作示例,以及我用来控制一些投影仪设置的 .tex 模板文件。

例.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 中有注释部分。它们似乎都没有改变文本 block 、R 代码或 R 输出之间的间距。我什至找对地方了吗?

parskipNotWorking

最佳答案

这是一个工作示例。注意头文件末尾的定义:

  • 源代码块包含在 Shaded 中反过来使用 \OuterFrameSep 的环境因为它的间距。所以我们需要重新定义它。
  • \preto我们在命令前添加 \topsep=-10pt \partopsep=-10pt到每个逐字环境。这会影响输出 block 的间距。

  • 例.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

    enter image description here

    关于latex - 减少 rmarkdown beamer 演示中代码块和代码输出之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35734525/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com