エディタでプレゼン資料を作りたい

advent calendar25日目です。
今日はクリスマスですね。クリスマスといえばクリスマスプレゼント。
なのでプレゼン資料についての記事です。

## これは
「PowerPoint,Keynote以下、markdown2pdf(系)以上の効果を持つプレゼンテーション資料」を作りたいときに有用なツールと環境の紹介（自分が使い始めるのでそのログ）

**追記：Dockerの方の詳細とテンプレートを作りました。**
[BeamerのDocker(-Compose)環境を作りました - Qiita](https://qiita.com/sh05_sh05/items/c9f76cc845ed3dae58e3)

## TL;DR
$LaTex$(ロゴうまく出ない)でプレゼン資料を作成しよう、ネックになる環境構築もDocker使ったりOverleaf使うと楽だよ

## 前提条件
- 環境（本筋とは関係ないけれど一応）
    - Docker version 19.03.2, build 6a30dfc
- 書かないこと
    - 入門のような記法の列挙
    - チュートリアルやハンズオン形式での説明
    

## 参考文献
- [Beamer](https://ja.wikipedia.org/wiki/Beamer)(Wikipedia)
- [Beamer読本 - ─ 講演用スライド作成のために ─](http://ayapin-film.sakura.ne.jp/LaTeX/Slides/Beamer-tutorial.pdf)
    - 基本はここ
- [Beamer](https://www.opt.mist.i.u-tokyo.ac.jp/~tasuku/beamer.html)
    - 説明付きでありがたい
- [Overleaf](https://ja.overleaf.com/)(公式)
- [beamer + pdfpc で最強プレゼンテーション](https://qiita.com/s417-lama/items/8e97bda8778ed1c44791)
    - 動画もいけるらしい
- [[ Markdownでスライド作成 ] 5種類くらいツールを試してみた結果](https://qiita.com/ykhirao/items/74a23f812dd5d22b3b88)
- [TeXのコマンドが実行できるDockerイメージを作成する](https://qiita.com/myoshimi/items/22f65816944abbdce050)

## モチベーション
- エディタでプレゼン資料を作りたい
    - スライド内に`:w`という謎の文字列が生まれてしまう:pensive:
    - パワポ内で`<Ctrl>-h`をしてしまうとイライラする:angry:
- スライド中に数式の量が増えてきた
    - パワポにも数式の機能あるけどなかなかにつらい:cry:
- 口頭内容をサポートする程度の視覚効果があればいい
    - パワポやKeynoteでは過剰だけどMarkdownでは足りない:thinking:

これらは、LaTeXでプレゼンを作れば全部解決する！


### でも
#### 環境構築大変なんでしょう?

今回はそれを解決していきます！

#### LaTeXが書けないといけないんでしょう？

それはそう

## 本編
### そもそも何だ
#### Beamer
>Beamer（ビーマー）は LATEX に基づき、プレゼンテーションを作成するためのクラスである。名称の Beamer はビデオプロジェクターを意味するドイツ語に由来している。
https://ja.wikipedia.org/wiki/Beamer

#### Overleaf
>LaTeX, 進化
簡単に使えるオンラインの共同LaTeXエディター
https://ja.overleaf.com/

とのことなので、つまりは

- Beamer
    - LaTeXでプレゼン資料を作る機能（クラス）
- Overleaf
    - オンライン（ブラウザ）でLatexを利用(編集、コンパイル、管理)できるサービス

### Hello World的なもの

#### Overleafに登録

はじめは無料のままで問題ない

#### テンプレートを選択
左上の[New Project] > [Presentation] > 良さげなテンプレートを選ぶ > [Open as Template]

今回は2ページ目の「Modelo Projeto」を選んでみる

#### 試しにいじってみる
1. 15行目の`\title{Título}`の中身を`\title{タイトル}` に変える
2. 中央上少し右の[Recompile]を押す
<img width="600" alt="スクリーンショット 2019-12-25 12.38.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176375/ccaf1bef-3635-03cb-e3ae-c8ce645dcb84.png"><br>

3.出ない:grinning:

#### 日本語に対応させる
下記の2行をエディタの3行目に貼り付ける
（選択したテンプレートによって異なる場合があるので適宜修正してください）
<img width="600" alt="スクリーンショット 2019-12-25 12.46.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176375/6f680c12-e2a9-f0af-73fe-6f31b42f1664.png">

```tex
\usepackage{zxjatype}
\usepackage[ipa]{zxjafont}
```

#### PDFをダウンロード
[Recompile]と右の[Download PDF]

<img width="600" alt="Modelo_Projeto___Slides__1_.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176375/dcc6d6a7-d77a-78c1-e61a-38311ab38627.jpeg" border="1">
（先頭ページだけ）

できた！でも

>- エディタでプレゼン資料を作りたい

んじゃなかったの..??

### Beamer + Docker
（使い慣れたエディタを使える）Overleaf以外の環境での作成も紹介

#### Dockerイメージ
既存のimageがあるが、自分は[こちら](https://qiita.com/myoshimi/items/22f65816944abbdce05)のDockerfileを利用

```dockerfile
FROM ubuntu:18.04
LABEL maintainer YOSHIMI Masato <myoshimi@DOMAIN_NAME>

ENV DEBIAN_FRONTEND noninteractive

RUN set -xe && \
    apt-get -y update && \
    apt-get install -y \
        make \
        texlive-lang-cjk \
        xdvik-ja \
        texlive-fonts-recommended \
        texlive-fonts-extra && \
    apt autoremove -y && \
    apt-get clean

RUN mkdir /texsrc
WORKDIR /texsrc

VOLUME /texsrc

CMD ["/bin/bash"]
```

#### ビルド
```sh
docker build -t texlive-docker .
```
`.`はDockerfileがあるディレクトリになるようにする

#### ファイル準備
texファイル、本当に最小限

```tex:main.tex
\documentclass{beamer}

\begin{document}

\begin{frame}{Hello Beamer}
こんにちは Beamer
\end{frame}

\end{document}
```

バッチファイル
コンテナの中で実行させるファイル

```sh:makePDF.sh
rm *.aux *.bbl *.blg *.idx *.ilg *.ind *.toc
platex main.tex
platex main.tex
dvipdfmx main
```

#### コンパイル
準備した2ファイルがあるディレクトリで

```sh
docker run --rm -v ${PWD}:/texsrc texlive-docker bash /texsrc/makePDF.sh
```
main.pdfができる
<img width="600" alt="main.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/176375/ce8b9d56-e6e3-0faf-ed49-4303ffeb2e99.jpeg" border="1">

やっぱり諸々の準備が入らないOverleafの方が楽でいいかも

## おわり
実際に作るときはページ上部の参考文献や`\usetheme`とかたくさん調べてみてください

アドベントカレンダー完走お疲れです