👌

Pandoc スライド用Markdown記法

2020/11/09に公開

PandocでMarkdownからスライド類(pptxとか)を出力するときの書き方について、本家をまとめたものがすぐには見つからなかったので軽く自分でまとめることにしました。

試してない記法もあるので和訳が間違ってたら適宜直します。

https://pandoc.org/MANUAL.html#slide-shows

の和訳に近くなります。細かいところ(処理するフレームワーク等、特にbeamerは追加オプションが多い)による差異までは一旦追わずに置いておきます。

スライドショーの構成

  • すぐ下にコンテンツ(ここで言うコンテンツは見出し化されてない文章とか画像とか)が続くheading levelがスライドレベルになります。
  • 罫線(------------------みたいな感じ、いくつ必要なのかはわからない)を引くと新しいスライドに切り替わります。
  • スライドレベルでのheadingも新しいスライドに切り替わります。
  • スライドレベルより下のheading レベルはスライド内でのheadingとして機能します。(←上手く機能しませんでした、同じ文字サイズになっちゃうので、箇条書きでのheadingをしたほうがいいかもしれません)
  • スライドレベルより上のheadingは"タイトルスライド"を生成するします。この下に続くスライド以外のコンテンツ(多分画像とか?)はタイトルスライドに含まれるようです。
  • 一番最初のタイトルスライドは、最初に%を用いて記載するタイトルブロックがあればそこから自動的に生成されます。(ない場合は生成されない)

% タイトル
% 作者
% 日付

# これは後にコンテンツが無いのでタイトルスライドです。
## これはスライドレベルです
なにかのコンテンツ
------------------
罫線によってこの文章は新しいスライドになります。

## 次のスライドです
![画像](images/hoge.jpg)

リストの内容を一つづつ表示する。

デフォルトで箇条書きをすると全要素が一度に表示されます。これを一つ一つ出してくような感じにしたい場合は、-iオプションを付けると全ての箇条書きが一つずつ出るような感じになります。全部の箇条書きじゃなくて一部の箇条書きだけ例外的に一つずつ出すもしくは、全部出すにしたいときは、

::: incremental

- Eat spaghetti
- Drink wine

:::

みたいな感じで、incremental(もしくはnoincremantal)のdivブロックを作って書くと出来ます。

文字サイズとかの変更

色々ありますが、個人的には参照用スライドを作ってオプション指定するのが楽でした。
ここはMarkdown関係無いですが一応

  • まず参照用にするスライドを新規作成します。
  • 参照用スライドのスライドマスターで、pandocからの出力で使用される、"表紙、タイトルスライド,タイトルとコンテンツ"のスライドの書式を揃えます。
  • pandocで出力するときに、""--reference-doc=ref.pptx"のような形でオプション指定すると参照用スライドのスライドマスターが効きます。

スピーカーノート

::: notes

ここにメモ

:::

の形でスピーカーノートを書くことが出来ます。

横方向をN分割する。

:::::::::::::: {.columns}
::: {.column width="40%"}
contents...
:::
::: {.column width="60%"}
contents...
:::
::::::::::::::

の形でカラム分割可能です。

細かいTips

  • inline数式(ドルマーク一個)のやつは、ドルマークと数式の間にスペースが入るとpandocでは認識してくれません。
  • ブロック数式は中央揃えになります(これはスライドマスターでも変更が効きませんでした)

Discussion