Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RStudio演示文稿/slidify/pandoc中的两列布局_R_Knitr_Rstudio_R Markdown_Slidify - Fatal编程技术网

RStudio演示文稿/slidify/pandoc中的两列布局

RStudio演示文稿/slidify/pandoc中的两列布局,r,knitr,rstudio,r-markdown,slidify,R,Knitr,Rstudio,R Markdown,Slidify,我正试图想出一个好的系统来生成幻灯片和附带的讲义。理想系统应具有以下特性: 演示文稿(PDF/HTML)和讲义(PDF)布局都很漂亮(讲义应该有做笔记的空间) 嵌入R区块、数字、其他JPG/PNG图片等 易于撰写 使用命令行工具构建 书目支持 首选pandoc幻灯片分隔符格式(在指定级别的标题后自动生成新幻灯片) 我可以接受一点额外的处理(例如,通过sed),但不希望编写一个庞大的基础设施 两列布局:有一个,但它是LaTeX-而不是面向HTML的 能够动态调整嵌入图像(R生成的图形除外)的大小

我正试图想出一个好的系统来生成幻灯片和附带的讲义。理想系统应具有以下特性:

  • 演示文稿(PDF/HTML)和讲义(PDF)布局都很漂亮(讲义应该有做笔记的空间)
  • 嵌入R区块、数字、其他JPG/PNG图片等
  • 易于撰写
  • 使用命令行工具构建
  • 书目支持
  • 首选
    pandoc
    幻灯片分隔符格式(在指定级别的标题后自动生成新幻灯片)
  • 我可以接受一点额外的处理(例如,通过
    sed
    ),但不希望编写一个庞大的基础设施
  • 两列布局:有一个,但它是LaTeX-而不是面向HTML的
  • 能够动态调整嵌入图像(R生成的图形除外)的大小和列宽
以下是我迄今为止对各种选项的发现:

  • 滑动:
    • 不使用幻灯片分隔符格式,但
    • 制作讲义的建议是打印成PDF;我想为笔记等留出空间(我可能会想出一种方法,使用或
      psnup
      …)
  • RStudio
    演示文稿(
    .Rpres
    文件):
    • 做很多事情都很好,包括指定宽度的多列
    • 不支持
      pandoc
      幻灯片分隔符格式
    • 我搞不清楚引擎盖下面发生了什么。有一个例子描述了常规HTML的翻译过程,但它似乎没有涵盖R表示格式(这两种格式不太一样)。(我之前在…,这意味着我不能从命令行生成幻灯片等方面投入了一些精力。)
  • (截至2014年3月)与Pandoc和
    rmarkdown的第2版捆绑销售。它使用
    .Rpres
    格式解决了上述许多问题
  • pandoc
    :可能是唯一一个具有脚注、书目支持等功能的降价翻译器。。我还可以使用
    pandoc
    使用生成乳胶,这符合我的美容标准。
    • 不幸的是,它似乎没有内置的两列格式支持。没有显示任何两列示例,它声称(在幻灯片5上)在RStudio中单击“Knit HTML”按钮相当于
      pandoc-s-s-i-t dzslides--mathjax knitr-slides.md-o knitr slides.HTML
      ,但它似乎不是
  • LaTeX/beamer:我可以简单地用
    Rnw
    (knitr方言swave)而不是R标记开始创作。这将给我最大的灵活性。。。
    • 尽管使用了多年的乳胶,但我发现乳胶成分比降价成分更令人痛苦
毕竟,我的具体问题是:为HTML输出生成两列布局的最佳(最简单)方法是什么


任何其他建议也将不胜感激。

到目前为止,在
rmd
格式上添加我自己的一点标记是我最好的选择:在调用
knit
之前,我调用我的源文件
rmd0
,运行一个包含此
sed
技巧的脚本,将其翻译成
rmd

sed -e 's/BEGIN2COLS\(.*\)/<table><tr><td style="vertical-align:top; width=50%" \1>/' \
    -e 's/SWITCH2COLS/<\/td><td style="vertical-align:top">/' \
    -e 's/END2COLS/<\/td><\/tr><\/table>/' ...
sed-e's/BEGIN2COLS\(.*)/'\
-e's/SWITCH2COLS/'\
-e's/END2COLS/'。。。
我不喜欢这个有几个原因。(1) 这是一个丑陋的特殊用途,我没有一个特别好的方法来允许可选参数(例如列的相对宽度、对齐方式等)。(2) 它必须针对每个输出格式进行调整(例如,如果我想要LaTeX/beamer输出,我需要替换
\begin{columns}\begin{column}{5cm}…\end{column}\begin{column}{5cm}…\end{column}\end{columns}
(事实证明,当我制作LaTeX格式的讲义时,我想忽略两列格式,所以这稍微容易一些,但仍然很难看)


Slideify可能是答案。

这是一个老问题,但我最近也遇到了一个类似的问题,我发现:

使用RPres格式,可以像这样指定两个列()。请注意,RPres只能通过单击RStudio中的按钮转换为HTML,似乎没有任何命令行方法,这有点烦人。尽管如此,我认为这是当前使用标记获取幻灯片列的最简单和最灵活的方法:

=== 

Two Column Layout  
===

This slide has two columns

***

```{r, echo=FALSE}
plot(cars)
```

通过调整柱的比例可提供一定的灵活性:

===

Two Column Layout  
===
left: 30%
This slide has two columns

***

```{r, echo=FALSE}
plot(cars)
```

使用rmarkdown,我们可以得到两列,但无法控制断点的位置,这有点问题:

---
output: ioslides_presentation
---


## Two Column Layout  {.columns-2}

This slide has two columns


```{r, echo=FALSE}
plot(cars)
```

我们还可以在Rmd文件中使用RStudio中的
beamer\u演示文稿
格式混合markdown和LaTeX,以获得这样的两列,但不能在任一列中运行任何代码,这是一个限制:

---
output: beamer_presentation
---

Two Column Layout 
-------

\begin{columns}
\begin{column}{0.48\textwidth}
This slide has two columns
\end{column}
\begin{column}{0.48\textwidth}
If I put any code in here I get an error, see
https://support.rstudio.com/hc/communities/public/questions/202717656-Can-we-have-columns-in-rmarkdown-beamer-presentations-
\end{column}
\end{columns}

如果您想使用LaTeX,那么常规的Rnw LaTeX文档似乎是获取列的最佳方式,而不是这种降价混合(cf.)

在上面的所有步骤中,可以将图像放置在一列中


slidify网站上有关于制作两个栏目的说明:但不清楚什么必须进入assets/layouts文件夹才能使其正常工作

我现在有了一个我认为合理的解决方案,它至少应该应用于基于iSlides
的解决方案,也可能(?)应用于其他基于HTML5的格式

也许有更好的方法,但这并不太痛苦

@ChrisMerkord在评论中指出

.forceBreak { -webkit-column-break-after: always; break-after: column; }
改为工作(我没有测试…

我从中得到一个想法,基本解决方案是:


###函数*内部连接*
. . .
``
```{r,echo=FALSE,results='markup',eval=TRUE}
卡布尔(cbind(A,B))
```
``
``
```{r,echo=TRUE,re
## Latin hypercube sampling {.columns-2}

- sample evenly, randomly across (potentially many) uncertain parameters

<p class="forceBreak"></p>

![](LHScrop.png)
[User:Saittam, Wikipedia](https://commons.wikimedia.org/wiki/File:LHSsampling.png#/media/File:LHSsampling.png)
.forceBreak { -webkit-column-break-after: always; break-after: column; }
### Function *inner_join*
. . .

`<div style="float: left; width: 50%;">`
``` {r, echo = FALSE, results = 'markup', eval = TRUE}
kable(cbind(A,B))                                    
```
`</div>`
`<div style="float: right; width: 50%;">`
```{r, echo = TRUE, results = 'markup', eval = TRUE}
inner_join(A,B, by="C")
```
`</div>`
\def\begincols{\begin{columns}}
\def\begincol{\begin{column}}
\def\endcol{\end{column}}
\def\endcols{\end{columns}}
---
output:
  beamer_presentation:
    includes:
      in_header: mystyle.tex
---


Two Column Layout 
-------

\begincols
  \begincol{.48\textwidth}

This slide has two columns.

  \endcol
\begincol{.48\textwidth}

```{r}
#No error here i can run any r code
plot(cars)
```

  \endcol
\endcols
## Slide With Image Left

::: columns

:::: column
left
::::

:::: column
right

```{r your-chunk-name, echo=FALSE, fig.cap="your-caption-name"}
knitr::include_graphics("your/figure/path/to/the-image.pdf")

#The figure will appear on the right side of the slide...
```
::::

:::