2年ほど前から、beamerでスライドをつくるようになった。
自分なりのテンプレートや小技の蓄積ができてきたので、忘れないうちにまとめておく。
以下、サンプルのスライドを使って紹介していく。
- 主な内容
- metropolisを少し修正したテンプレート
- beamerで見やすいスライドを(楽に)つくるための小技
- コードやPDFファイルはGitHubに置いてある
- 注意
- 今までに自分なりに蓄積してきたものなので、ベストプラクティスではない・行儀が悪い、などの可能性あり
- 記事の主な内容はエンジン等に依存しないはずだが、GitHub上のコードをそのまま使う場合は、修正が必要になり得る
- 筆者の環境:OSはWindows、vscodeでコードを書いて(latexmkrcを使って)LuaLaTeXでコンパイルしている
- 違うエンジン(upLaTeXなど)を使う場合、数行に修正が必要
-
tikz
も大事だと思うが、ここでは触れない
metropolisベースのテンプレート
テーマは好きなものを選べばよいのだが、自分は普段、metropolisを使っている。
これはmetropolisをベースにすると、PowerPointでつくったスライドに擬態させやすいと思うから1。
ただしそのままだとタイトル部分の文字サイズが大きすぎる(タイトルが長すぎる)、余白が大きい(情報を詰め込みすぎ)など不便なところもあったので、多少修正して使っている。
いちいち修正部分を書くのは面倒なので、カスタマイズする部分をmybeamer.sty
にまとめて\usepackage{mybeamer}
で読み込んでいる2。
*サンプルスライドのPDFファイルやmybeamer.sty
はここ(GitHub)に置いてある。
Tips集
スライドを水平方向に分割したい
スライドを水平方向に分割して要素を並べたいときには、columns
環境を使うのが便利だと思う。
\begin{columns}
\begin{column}{.2\linewidth}
...
\end{column}
...
\begin{column}{.4\linewidth}
...
\end{column}
\end{columns}
このように書いて、次のようなスライドを作ることができる。
minipage
環境を単体で(またはtabular
環境と組み合わせて)使うことで実現することもできるが、調整することの少なさやコードの簡潔さの観点で、columns
の方が楽だと思う。
ページ内の要素の幅を調節したい
ページの真ん中に小さいblock
環境をおきたい、というような場面が多々ある。
またitemize
、equation
などの環境も、内容と関係なく最大の幅(\linewidth
)をとるので、いい感じに中央揃えにすることができない。
こういう場面でminipage
環境は非常に有用である。
\begin{center}
\begin{minipage}{.8\linewidth}
...
\end{minipage}
...
\begin{itemize}
\item ...
\end{itemize}
\end{center}
このように書けば、小さいblock
や中央揃え感のあるitemize
環境などを配置できる。
前のページを再掲したい
発表の最初と最後に概要スライドを入れたいなど、同じスライドを再掲したいことがある。
frame
にラベルをつけておけば、\againframe{label}
と書くことでそのページを挿入できる。
なお、ページ番号は新しく与えられる。
\begin{frame}[label=hoge piyo]
\frametitle{タイトル}
...
\end{frame}
...
\againframe{hoge piyo}
GitHub上のサンプルスライドでは、block
環境を例示したスライド(p.2)を7ページに再掲している。
図をきれいに並べたい
複数の図を配置したい場合、上のスライドを水平方向に分割したいに書いたcolumns
環境やminipage
環境を使ってもよいが、最も直感的で挙動が安定するのはtabular
環境だと思う。
\begin{tabular}{ccc}
1列目 & 2列目 & 3列目 \\ \midrule
\includegraphics[height=.3\textheight]{figs/fig.jpg}
&
\includegraphics[height=.3\textheight]{figs/fig_mod.jpg}
&
\makecell{makecellを使うと \\ セル内で改行もできる}
\end{tabular}
これをコンパイルすると、下のように垂直方向の配置がずれてしまう。
おそらく解決策は複数あるが、個人的には\raisebox{lift}{内容}
を使う方法がわかりやすくて好き。
\begin{tabular}{ccc}
1列目 & 2列目 & 3列目 \\ \midrule
\raisebox{-.5\height}{\includegraphics[height=.3\textheight]{figs/fig.jpg}}
&
\raisebox{-.5\height}{\includegraphics[height=.3\textheight]{figs/fig_mod.jpg}}
&
\makecell{makecellを使うと \\ セル内で改行もできる}
\end{tabular}
*このページの回答を参考にした。
付録のページ番号を除外したい
発表で使う予定のスライドに加えて、質問対応用の補足資料をつくることが多い。
聴衆の中には、右下のページ番号を見て「残りNページだ」と思いながら聞いている人もいる。
そこで補足資料部分にはページ番号を振らないようにしている。
これはappendixnumberbeamer
パッケージを読み込むことで実現できる3。
\usepackage{appendixnumberbeamer}
...
\appendix
\begin{frame}
\frametitle{付録:...}
...
\end{frame}
このようにすると、\appendix
以降のスライドにはページ番号が振られなくなる。
その他の小技集
*description
環境については別の記事に書いたことがある。
おわりに
以上、「正しい」のかはわかりませんが、自分が使っていて困らない方法をまとめました。
この記事には大雑把なことしか書かなかったので、具体的なコードが気になる場合はGitHubにあるmain.pdf
、main.tex
とmybeamer.sty
を見てみてください。
個人的には見た目の細かいことを考えずに済む点がbeamerの良さで、この記事に書いたことと最低限の調整(空白やフォントサイズなど)ができれば十分だろう、と思います。
なにか調整したいことがあったとき、少し調べてもわからないときは「beamer的には不要な(無駄な)調整なんだ」と割り切ってあきらめるのも悪くない気がします。
-
beamerの存在が忘れられていて「Powerpointで作成したスライドを事前に提出せよ」と指示されることがある。
こういうときに、いかにもbeamerな見た目のスライドを提出するのは気が引けるのである。 ↩ -
この方法では結局
mybeamer.sty
を.tex
ファイルと同じディレクトリにコピペしないといけない。
たしかに手間だが1回きりだし、スライドごとに.sty
ファイルの中身を編集したい場合もあるので、ちょうどいい妥協点だと思っている。
なお、.sty
ファイルをこうやって使うのが推奨されるのかはわからない。 ↩ -
appendixnumberbeamer
では付録部分に一切ページ番号が振られないが、ページ番号が欲しい人もいると思う。
他にもやり方(パッケージ)はあるのだが、いまのところ自分の用途にはappendixnumberbeamer
で十分、というところである。 ↩