VScodeだけでスライドを作る

# はじめに
この記事ではVScodeとそのアドオンを使って、手軽にスライドを作成する方法を紹介します。
最初に導入、テンプレートを用意するのに少しかかりますが一度用意できれば今後markdownで中身を用意するだけでサクッとスライドを作成することが可能なため、スライドを多様する仕事の方には非常に効率的になるかと思います。

## 必要なもの
- [Visual Studio Code](https://azure.microsoft.com/ja-jp/products/visual-studio-code)
- [Marp for VS code](https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode)
- Markdown記法への知識

## Marpって？
- VScode上でmarkdownで書いたものをスライドのPDFに変換することができるアドオン
- デフォルトのスタイルならすぐに使えます
- CSSを使った細かなスタイルの指定も可能です

# 大まかな流れ
1. VScodeにMarpをインストール
2. ファイルを作成
3. ざっくりMarkdown形式でスライド内容をまとめる
4. テーマ（スライドのデザイン）を決める
    a. そのまま使う場合：デフォルトテーマ（default, gaia, uncover）を指定
    b. 自分で細かく設定したい場合：styleファイルを作成
5. 必要に応じてMarkdownの内容を調整
6. 用途に応じた形式でエクスポート

## 1. VScodeにMarpをインストールします
VScodeの左メニュー、アドオンから`marp`で検索して出てきたものをインストールします

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/8e4d0623-8dae-55d1-7e25-6e4b5d08cb52.png)

## 2. ファイルを作成
VScodeの新しいウインドウを開いて、`新しいファイル`を選択すると、画像のように `Marp Markdown` という選択肢が出てくるので、これを選択します。
![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/ff800142-604f-6cfc-8ea3-8dc94b36bc6b.png)

開いたウインドウの右上の虫メガネのマークをクリックします。
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/1751bc3a-0a65-7727-78ec-e409cf4adbd1.png)

以下のようにプレビューが開けます。
![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/12106b4a-e2fa-6d89-8b84-e9c8266797e0.png)

これで記事を書くとリアルタイムでスライドの形に変換されたものがプレビューできるようになります。

## 3. Markdown形式でスライド内容をまとめる
- ページの区切りは `---` を使う。
- 画像を使用する場合は、`~.md`を保存したルート上に画像フォルダを用意し、そこを参照する。
- 他は基本的に通常のmarkdown記法と大きい差はないため、markdown記法でスライド内容を記載していきます。

![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/83f26a82-60e7-cca8-fa0e-3172ccf9589a.png)


## 4. テーマ（スライドのデザイン）を決める
スライドの内容の記載が終わったらスライドのデザインであるテーマを決める、もしくは作成しましょう。

急ぎでスライドが必要だったりする場合はデフォルトテーマがおすすめです。
他にも、有志が作成したテーマもあるためそれを使用することもできますし、それらはCSSによって構成されている為、自らで１から作ったり、自由に調整することも可能です。

以下の記事ではMarpで扱えるデザインが紹介されている為、参照ください
[Marpのスライドデザインまとめ](https://qiita.com/YoshikiIto/items/74b3d786266b1de3ed93)

### 4.1 デフォルトテーマを使用する
デフォルトテーマを使用する場合
- 作成したmarkdownファイルの先頭 `marp: true` の後に `theme:gaia`を追記する。
- defaultもあるが、こちらはデフォルトなので追記の必要はない
- uncoverは特殊で、1ページ毎に別のデザインを適用したい場合に使用する。

![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/53d59b47-b98d-5f2e-3741-b7b0ff12609e.png)

### 4.2 有志の作成テーマを使用する
デフォルト以外のテーマを使用する場合
- 上記の[記事](https://qiita.com/YoshikiIto/items/74b3d786266b1de3ed93)などを参照して有志が作成したテーマを探してくる
- VScode右下の歯車から `設定` を開いて `marp`と入力する。`Markdown › Marp: Themes`に公開されているテーマのURLを入力する。
- 4.1と同様に`marp: true`の下にthemeを指定する。

![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248214/3b7b090c-29dd-00a0-ad8d-a48a0c5b59fa.png)


### 4.3 自分でテーマを作成する
自分でテーマを作成する、もしくは既存のテーマを編集して使用する場合
- ルート上にcssファイルを作成する
    - 例：styles/{任意のファイル名}.css
    - stylesの部分も任意で構わない
- 4.2と同様に、`Markdown › Marp: Themes`を開き、そこに上記で作成したcssファイルを指定する。

#### 4.3-1 自分でテーマを作成する
```css
    /* @theme custom */

    @import "default";

    section {
        font-size: 24px;
    }
```
- 上記をはじめに`~.css`に記載し、追記していく。
- `/* @theme custom */` の部分は必須であり、customは自由に指定する。
- 指定したものを `theme: custom` のように .mdファイルに記述する。

- `@import "default";` はなくても良いが、あるとデフォルトデザインがある状態から上書きして指定する形になるので少し楽。
- ページは `.section` で区切られている。
- ページ毎にclassを付与することもできる。
    - その場合、`~.md`の方に以下を記載する
    - `<!-- class: {任意のclass名} -->`

---

## 5. 必要に応じてMarkdownの内容を調整していく
classを付与した場合や画像の配置を調整した場合
- markdownの内容も調整する
- markdownの通常の記法以外にも、Marp独特なものが存在する

### 5-1. 画像を記載する
前述の方法で格納した画像を記載する方法

#### inline要素で掲載する
```
![](image/aucfan.png)
```

- この方法だと、inline要素で画像が表示される。
- []の中に centerなどを入れることで表示位置(`text-align`相当)を指定できる。

#### 背景要素で掲載する
```
![bg right w:50%](image/aucfan.png)
```
- 背景要素として表示される
- 位置や横幅を指定することで、他の要素（テキスト）などが回り込む。

### 5-2. ページ単位でレイアウトを変える
```
<!--
_backgroundColor: orange
_color: white
-->
```
- 上記のコードの場合は該当ページだけが背景オレンジ、文字色が白になる。
- 各スライドの頭に`<!-- -->`を指定することで設定を記載できる
- `_`を頭につけると対象のスライドのみ設定を適用
- `_`を頭につけないと、以降のスライド全てに設定が適用されるので注意


## 6. エクスポートする
- プレビューボタンの右にある三角のボタンをクリックし `Export Slide Deck`をクリックすると、以下の形式でエクスポートできる。
    - PDF
    - HTML
    - PowerPoint Documents
    - PNG
    - JPG

# さいごに
個人的にあらゆるドキュメントをmarkdownで記載している為、スライド作成をmarkdownでまとめられるのはとても便利。Qiitaもmarkdownですし、そういう方も多い筈。
他にはmarkdownで書いて、AIにスライドの形でアウトプットしてもらうこともできるそうですが、デザイナーとして色々調整の効いてかつ早くできるこちらの方が扱いやすいかもしれません。


# 参考
- [【VS Code + Marp】Markdownから爆速・自由自在なデザインで、プレゼンスライドを作る](https://qiita.com/tomo_makes/items/aafae4021986553ae1d8)
- [marpいいぞって話](https://zenn.dev/maru_contents/articles/marp-style-footer)
- [Marpのスライドデザインまとめ](https://qiita.com/YoshikiIto/items/74b3d786266b1de3ed93)
- [【Marp】Web上で公開されているthemeを読み込む【VSCode】](https://qiita.com/wrongwrong/items/b400ef6a40a9f68e3354)
- [45分登壇で75%効率化したMarkdown+生成AIスライド作成術](https://qiita.com/piyonakajima/items/1084e2f2ba765e855271)