スライドとそれに付随する配布資料を生成するための優れたシステムを考えています。理想的なシステムには次の特性があります。
pandoc
スライドセパレーター形式(指定したレベルのヘッダーの後に新しいスライドを自動的に生成)が推奨されますsed
を介して)、巨大なインフラストラクチャを書くことを好まないでしょう。これまでにさまざまなオプションについて発見したことがあります。
RStudio
プレゼンテーション(.Rpres
ファイル):pandoc
スライド区切り形式をサポートしていませんrmarkdown
のバージョン2にバンドルされています。 .Rpres
形式で上記の問題の多くに対処します。pandoc
:は、脚注、参考文献のサポートなどの機能を備えた唯一のマークダウン翻訳機です。また、 tufte-handoutクラスを使用してpandoc
を使用してLaTeXを生成することもできます 、これは私の美の基準を満たしています。pandoc -s -S -i -t dzslides --mathjax knitr-slides.md -o knitr-slides.html
と同等であると主張していますが(スライド5)そうではないようです...Rnw
(knitr-dialect Sweave)で作成できました。これにより、究極の柔軟性が得られます... その後、私の特定の質問は次のとおりです。HTML出力用の2列レイアウトを生成する最良の(最も簡単な)方法は何ですか?
その他のアドバイスも歓迎します。
私は、少なくともioslides
ベースのソリューションに、そしておそらく(?)他のHTML5ベースのフォーマットに適用すべき合理的なソリューションだと思うものを手に入れました。 here を開始して、追加しました
<style>
div#before-column p.forceBreak {
break-before: column;
}
div#after-column p.forceBreak {
break-after: column;
}
</style>
私の文書の冒頭まで。 <p class="forceBreak"></p>
スライド内の{.columns-2}
は、その時点で列を分割します。
## 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)
もっと良い方法があるかもしれませんが、これはそれほど苦痛ではありません。
@ChrisMerkordはコメントで指摘しています
.forceBreak { -webkit-column-break-after: always; break-after: column; }
代わりに働いた(私はテストしていない...)
これは古いQですが、最近似たような質問に悩まされました。ここに私が見つけたものがあります:
RPres形式を使用すると、2つの列をそのように指定できます( details )。 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を使用すると2つの列を取得できますが、ブレークの場所を制御できません。これは少し問題です。
---
output: ioslides_presentation
---
## Two Column Layout {.columns-2}
This slide has two columns
```{r, echo=FALSE}
plot(cars)
```
RStudioでbeamer_presentation
形式を使用してRmdファイルにマークダウンとLaTeXを混在させて、次のような2つの列を取得することもできますが、どちらの列でもコードを実行できません。
---
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 docが列を取得するための最良の方法のようです(cf. 2列ビーマー/グリッドグラフィック付きのスライド )
上記のすべてで、画像を列に配置できます。
Slidify Webサイトには、2つの列を作成する手順が記載されています。 http://slidify.org/customize.html しかし、asset/layoutsフォルダーに入れて機能させるには何が必要かは明確ではありません
[〜#〜] here [〜#〜] からアイデアを得ました。基本的な解決策は次のとおりです。
### 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>`
ビーマーエラーには 回避策 があります。
つまり、エラーはpandoc変換エンジンに関連しており、\begin{...}
と\end{...}
の間のすべてをTeXとして処理します。 yamlヘッダーのbegin{column}
とend{column}
に新しい定義を与えることで回避できます。
Mystyle.texを作成して書き込みます:
\def\begincols{\begin{columns}}
\def\begincol{\begin{column}}
\def\endcol{\end{column}}
\def\endcols{\end{columns}}
Rmdファイルでは、これらの新しいdefinitionsを使用します
---
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
これまでのところ、rmd
形式の上に自分の小さなマークアップをハッキングするよりもうまくやることができませんでした。ソースファイルを呼び出しますrmd0
およびsed
tidbitを含むスクリプトを実行して、rmd
を呼び出す前にknit
に変換します。
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>/' ...
私はこれが好きではないいくつかの理由があります。 (1)それはくて特別な目的であり、オプションの引数(たとえば、列の相対的な幅、配置など)を許可する特に良い方法はありません。 (2)出力形式ごとに調整する必要があります(たとえば、LaTeX/beamer出力が必要な場合は、\begin{columns}\begin{column}{5cm} ... \end{column}\begin{column}{5cm} ... \end{column}\end{columns}
代わりに(LaTeX形式の配布資料を作成するときに2列の形式を無視したいので、少し簡単になりますが、それでもstillいです)。
Slidifyはまだ答えかもしれません。
fenced_divs
表記または:::
列または「2つのコンテンツレイアウト」を作成します。表記法の詳細については、 このページ も参照してください。
## 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...
```
::::
:::
pandoc 2+
は、表記法をサポートし、RStudio v1.2+
、インストールが必要な場合があります RStudio v1.2+
最初。インストールは非常に簡単です(少なくとも私の場合)。ただダウンロードしてインストールするRStudio v1.2+
。インストールの過程で、コンピューター上のRStudio
の以前のバージョンは、手動でアンインストールせずに新しいバージョンに置き換えられます。
:::
表記は、編むときでも使用できます.Rmd
ファイルとbeamer_presentation
オプション、およびHTMLスライドを作成するとき。したがって、1つのファイルにマークダウン表記とLaTeX表記を混在させたり、コードを追加したりする必要はありません。他の.Rmd
他のオプション付き。
直接的な解決策ではありませんが、YihuiのXaringan
パッケージ https://github.com/yihui/xaringan/ は私にとってはうまくいきます。 remark.js
に基づいています。デフォルトのテンプレートでは、.pull-left[]
および.pull-right[]
を使用できます。例: https://slides.yihui.name/xaringan/#15 。既存の.rmd
ファイルに対して最小限の調整のみが必要です。