图像从R markdown的投影机输出中推出幻灯片

我正在使用R markdown v2来创建一个演示文稿.我的大部分幻灯片包含由ggplot生成的图像,有时在幻灯片上方有说明文字.我发现我真的必须单独调整每个幻灯片上每个元素(即图像,文本等)的大小,以确保图像不会从幻灯片的末尾被推开.

这最终会变得非常耗时,并且打败了R markdown的所谓目的之一:即,作为一种快速的方法来吐出可重复的研究.

我想知道有没有办法使各种元素智能自动调整大小?即使看起来不是很好,至少事情不会被推到最后?或者如果没有,也许还有其他方法,人们使用来确保事情适合,不要花太多时间.

提前感谢您的想法…

这是一个棘手的问题,因为排版很棘手. Rmarkdown很好地隐藏了很多棘手的细节,但如果你想排版,你需要排版.乳胶甚至很难,你会看到.有如此多的移动部件,例如标题和图例,渲染一个图像,然后将其包含在中间.tex文件中,因此pandoc可以使您的.pdf.如果没有要求很多输入(这是您首先要避免的),则完全可以广泛使用的解决方案是不可能的.

我不认为创建Beamer演示文稿本身与可重复的研究是不兼容的,但它是一个合法的输出,可能与其他报告一起.

但在推出乳胶之前,您应该考虑在每张幻灯片上放置图形和文字的简单解决方法.这可靠地适合幻灯片上的图像.然后,您可以在ggplot2中使用注释来添加其他文本.这就是我会做的

以下Rmarkdown使用了一些复杂的嵌入式乳胶来做更多或更少的你想要的.它确实将图像限制在屏幕的下半部分(但是如果您了解更多关于tikz …),但是会在上部文本块增加时将图像缩放到剩余的页面大小.当然,它也会缩放所有的传奇,但是您可以在ggplot2中进行调整.

---
title: "Some beamer slides with figures"
author: Somebody
date: November 06, 2015
output:
  beamer_presentation:
    keep_tex: yes
header-includes:
- \usepackage{graphicx}
- \usepackage{tikzpagenodes}
- \usetikzlibrary{calc}
- \usepackage{caption}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, fig.path="figures/beamer-example/")

library(ggplot2)
```

```{r}
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5),
   labels=c("3gears","4gears","5gears"))
mtcars$am <- factor(mtcars$am,levels=c(0,1),
   labels=c("Automatic","Manual"))
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),
   labels=c("4cyl","6cyl","8cyl"))
```
## A default plot

```{r mpg-plot}
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5),
   main="Distribution of Gas Milage", xlab="Miles Per Gallon",
   ylab="Density")
```

## test

  - some text which
  - fills vertical 
  - space

\begin{tikzpicture}[overlay,remember picture]
    % Caption
    \node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
    };
    % Image
    \path let \p0 = (0,0), \p1 = (caption.north) in
        node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
            \pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
            \includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
    };
\end{tikzpicture}

## test2

  - some text which
  - fills vertical 
  - space
  - but squashes
  - the image badly

\begin{tikzpicture}[overlay,remember picture]
    % Caption
    \node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
    };
    % Image
    \path let \p0 = (0,0), \p1 = (caption.north) in
        node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
            \pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
            \includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
    };
\end{tikzpicture}

## test3
\begin{tikzpicture}[overlay,remember picture]
    % Caption
    \node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
    };
    % Image
    \path let \p0 = (0,0), \p1 = (caption.north) in
        node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
            \pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
            \includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
    };
\end{tikzpicture}

您可以在以下位置阅读一些血清细节:
https://tex.stackexchange.com/questions/14512/how-to-define-a-figure-size-so-that-it-consumes-the-rest-of-a-page

翻译自:https://stackoverflow.com/questions/28284319/images-pushed-off-slides-in-beamer-output-from-r-markdown

转载注明原文:图像从R markdown的投影机输出中推出幻灯片