beamer は、LaTeX で発表用のスライド(PDF)を作るためのドキュメントクラスです。原稿を frame という単位に区切ると、その一つひとつが 1 枚のスライドになります。学術発表でおなじみの整ったテーマ、箇条書きを一行ずつ見せていくオーバーレイ、左右二段組や強調ボックスまで、プレゼンに必要なものが一通りそろっています。このページでは、最初の一行から段階表示までを順に見ていきます。
クラスを選ぶ — \documentclass{beamer}
beamer 文書は \documentclass{beamer} で始めます。これ一つで、ページは紙ではなく スクリーン 1 画面分 の横長になり、見出し・ナビゲーション・配色などプレゼン用の体裁がまとめて整います。普通の article のように章節を組むのではなく、画面単位で内容を並べていくのが beamer の流儀です。
既定のスライドは 4:3(126 mm × 96 mm 相当)です。今どきのワイド画面に合わせたいときは、クラスオプションで縦横比を変えます。\documentclass[aspectratio=169]{beamer} とすれば 16:9 になります。aspectratio が取る値は 1610・169・149・54・43・32 で、それぞれ 16:10・16:9・14:9・5:4・4:3・3:2 を表します。本文の文字サイズも \documentclass[11pt]{beamer} のように指定でき、既定は 11pt です。
frame 環境 — 1 枚のスライド
beamer の主役は **frame 環境** です。\begin{frame} から \end{frame} までが原則として 1 枚のスライドになり、その中に箇条書きや図、数式を書きます。スライドの見出しは \frametitle{...} で付けるか、\begin{frame}{タイトル} のように環境の引数として渡します。
\begin{frame}{はじめに}
\begin{itemize}
\item 背景
\item 目的
\end{itemize}
\end{frame}ここで肝心なのは、**1 つの frame が必ずしも 1 ページとは限らない** ことです。後で見るオーバーレイ(段階表示)を使うと、同じ frame から 複数ページの PDF が生成され、再生時にアニメーションのように見えます。それでも「frame=論理的な 1 画面」という単位は変わらず、ページ番号ではなく frame 番号で数えます。
タイトルスライドと目次
タイトル情報は、article などと同じくプリアンブルで宣言します。\title{...}・\author{...}・\institute{...}・\date{...} を書き、本文では **\titlepage** を 1 枚の frame に置くとタイトルスライドが組まれます(\maketitle でも同じ結果になります)。発表ではよく \date{\today} で日付を自動にします。
長めの発表では、\section{...} で内容を区切ると、その情報がスライド上部のナビゲーションに反映されます。区切りを宣言したうえで \tableofcontents を 1 枚の frame に置けば、目次スライドができます。\tableofcontents[currentsection] とすると 現在の節だけを強調 した目次になり、各節の冒頭に自動で挿入したいときは、プリアンブルで \AtBeginSection[]{...} を使ってこの目次フレームを差し込みます。
テーマ — 見た目を一括で決める
beamer の大きな魅力は、テーマ を一行選ぶだけで配色・レイアウト・ナビゲーションが整うことです。プリアンブルで \usetheme{Madrid} のように プレゼンテーションテーマ を選びます。Madrid のほか Berlin・Warsaw・Singapore・metropolis(要追加インストール)など多くのテーマが用意されています。配色だけを差し替えるなら \usecolortheme{...}(例:beaver・seahorse・dolphin)、書体は \usefonttheme{...}(例:serif・professionalfonts)で調整します。
| 命令 | 決めるもの | 例 |
|---|---|---|
\usetheme | 全体のレイアウト・ナビゲーション・配色 | \usetheme{Madrid} |
\usecolortheme | 配色だけを差し替え | \usecolortheme{seahorse} |
\usefonttheme | 見出し・本文の書体 | \usefonttheme{serif} |
\useinnertheme / \useoutertheme | 中身(箇条書き等)/枠(ヘッダ等)の体裁 | \useoutertheme{infolines} |
オーバーレイ — 段階的に見せる
発表中に内容を 少しずつ提示 したいときは、オーバーレイを使います。最も手軽なのは **\pause** で、frame の途中に置くと、そこから先は次のスライド(次のページ)に送られます。このとき 1 つの frame が複数ページの PDF に展開され、再生すると段階表示になります。
\begin{frame}{結果}
\begin{itemize}
\item 第一の点
\pause
\item 第二の点
\pause
\item 第三の点
\end{itemize}
\end{frame}もっと細かく制御したいときは、オーバーレイ指定 を山括弧 <...> で命令の直後に付けます。たとえば \item<1-> は「1 枚目以降ずっと表示」、\item<2> は「2 枚目だけ表示」、\item<2-> は「2 枚目以降」を意味します。<-2,4-5,7> のように範囲や飛び番号も書けます。表示・非表示を切り替える代表的な命令は次の通りです。
| 命令 | 挙動 | 場所の扱い |
|---|---|---|
\pause | 以降を次のスライドへ送る | 送られた分は順に追加表示 |
\onslide<2->{...} | 指定スライドで表示、それ以外では隠す | 常に場所を確保(ずれない) |
\uncover<2->{...} | 指定スライドで現す | 常に場所を確保 |
\only<2>{...} | 指定スライドにだけ出力 | 場所を確保しない(詰める) |
\alert<2>{...} | 指定スライドで強調色にする | 常に表示・場所は確保 |
\onslide と \uncover は、隠れている間も 場所を確保 するので、項目が現れてもレイアウトがずれません。一方 \only は出力そのものを出し入れするため、隠れた分の 場所は詰められます。\alert<2>{...} のように、\textbf や \textcolor でもオーバーレイ指定を付けて「特定スライドでだけ強調」できます。
ブロック・段組と fragile
内容を枠で囲んで目立たせるには **block 環境** を使います。\begin{block}{タイトル}…\end{block} でテーマに合った見出し付きボックスになります。警告調の **alertblock、例示用の exampleblock** もあり、定理・定義には theorem・definition 環境がそのまま使えます。
スライドを左右に分けたいときは **columns 環境 の中に \column{幅}**(または column 環境)を並べます。図と説明を横に並べるのに便利です。
\begin{frame}{比較}
\begin{columns}
\column{0.5\textwidth}
左の内容
\column{0.5\textwidth}
右の内容
\end{columns}
\end{frame}一点だけ注意があります。verbatim 環境や listings(ソースコードの表示)を frame の中で使うときは、その frame に **[fragile] オプション** を付けて \begin{frame}[fragile] と書く必要があります。beamer はオーバーレイのために < > などの文字の意味を内部で切り替えており、文字をそのまま出すべき verbatim と衝突するためです。[fragile] を付けると、frame の中身をいったん外部ファイルに書き出して読み直す特別な処理に切り替わり、両者が両立します。
最小の例
次は、テーマ・タイトルスライド・\pause 付きの箇条書きフレームをそろえた、コンパイルできる最小の beamer 文書です。プリアンブルでテーマとタイトル情報を宣言し、本文では最初の frame に \titlepage を、次の frame に段階表示の箇条書きを置いています。
\documentclass[aspectratio=169]{beamer}
\usetheme{Madrid}
\title{My Talk}
\author{Ada Lovelace}
\institute{Analytical Engine Lab}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Overview}
\begin{itemize}
\item Background
\pause
\item Method
\pause
\item Results
\end{itemize}
\end{frame}
\end{document}これをコンパイルすると、まず Madrid テーマのタイトルスライド(題名・著者・所属・日付)が現れ、続く「Overview」のスライドでは、画面を送るたびに項目が 1 つずつ追加されていきます。frame は 2 つですが、\pause のぶん PDF は数ページに展開されます。日本語スライドにするときは、LuaLaTeX なら luatexja などで和文に対応させ、エンジンに合った設定を加えます。