ト部蛸焼のブログ

日頃知ったことをアウトプットするためのブログ

Beamerによるスライドの体裁を整える

こんにちは.物工/計数 Advent Calendar 2020の8日目を担当するト部蛸焼です.

連日,応物系学生たちの様々な一面が垣間見えている物工/計数 Advent Calendar 2020,前回 (7日目) の記事は「東大の授業を振り返る」という話題でした.詳しくは↓からご覧ください.
adventar.org


さて8日目の記事はBeamerに関する記事です.

Beamer - WikipediaによればBeamerは「LaTeXに基づき,プレゼンテーションを作成するためのクラス」であるとされます*1LaTeXという数式を多用しない人しか使うメリットがなさそう*2なツールの,さらに一部の特殊な人*3しか使わないであろうツールであるBeamer.本記事ではこのBeamerで作るスライドの基礎的な部分について列挙していきます.特にオーバーレイなどのフレームの中身についてはあまり深く扱いませんので,そちらについては例えば文献[2]をご参照ください.

また「ここ違うぞ」あるいは「基礎的な部分なのにこれを忘れているぞ」などの点がありましたらお気軽にコメントをいただけると嬉しいです*4


フレーム

フレームとページ

Beamerには用紙に関連する概念としてフレーム (frame) とページ (page) の二つがあります*5

そもそも,BeamerではスライドをPDF形式で出力することが大半です.スライドにアニメーション (Beamerでは「オーバーレイ」と呼びます) を加えた場合,これを一つ加えるごとにPDFには新しいページが出力されます*6.Beamerの「ページ」はこのPDFのページに対応しています.

f:id:tobetakoyaki:20201203003622p:plain:w250
図1.1. オーバーレイ (1枚目)
f:id:tobetakoyaki:20201203003703p:plain:w250
図1.2. オーバーレイ (2枚目)
f:id:tobetakoyaki:20201203003727p:plain:w250
図1.3. オーバーレイ (3枚目)

一方でフレームはスライド一枚分を指します.上の図1.1から図1.3を例にとれば,一枚のフレームが三つのページに分かれて出力されているということになります.

フレームの構成要素

f:id:tobetakoyaki:20201203005520p:plain:w350
図2. フレームの構成要素 (テーマはPaloAlto,オプションはhideothersubsections)
ヘッドライン,フットライン
ヘッドライン (headline) はフレームの最上部,フットライン (footline) はフレームの最下部を指します.ヘッドラインとフットラインにはほとんど同じものが挿入できますが,一般的にヘッドラインにはナビゲーションバーやフレームタイトルなどが,フットラインにはページ番号などが挿入されます.

サイドバー
サイドバー (side bar) はフレームの端*7 ,ヘッドラインとフットラインの間の領域に現れます.

ナビゲーションバー
ナビゲーションバー (navigation bar) は発表の進行度合を示すツールです.

ナビゲーションシンボル
ナビゲーションシンボル (navigation symbol) は特定のスライドにジャンプすることができるツールです.デフォルトではフレームの右下に表示されます.なお,ナビゲーションシンボルはオーバーレイの説明の図 (図1.1から図1.3) には表示されていますが,フレームの構成要素の図 (図2) には表示されていません.

ロゴ
Beamerではロゴ (logo) を挿入することもできます.挿入される場所はテーマ (cf. 2章) に依存しており,現時点*8では手動で位置を変更することはできません.ロゴは以下のコマンドで挿入できます.

\logo{\includegraphics[clip,height=0.5cm]{logo.png}}

フレームタイトル
フレームタイトル (frame title) はフレームの上部に挿入されます.以下のコマンドで挿入できます*9

\frametitle{title string}

亜種として\framesubtitleコマンドもあります.なお,フレームタイトルやサブタイトルはframe環境のところでも定義できます*10

\begin{frame}{title string}{subtitle string}
  some contents
\end{frame}

背景
背景 (background) を調整することもできます*11.例えば次の章で述べる色設定の方法を用いると,背景の色を変更することができます*12

f:id:tobetakoyaki:20201203010533p:plain:w350
図3. 背景色をgrayにした様子.まるで泥パック.


テーマを利用する

スライドを作るときには以上の要素を上手く組み合わせて見栄えを整えていきます.Beamerには,PowerPointKeynoteと同様にスライドのデザインがある程度整えられたテーマが定義されています.

このテーマには様々なものがありますので詳しくはマニュアル (参考文献[1]です) の「Themes」の章*13を参照してみてください*14


さらなるカスタマイズ

ここからはテーマを決めた後により細かい部分を自分で変更する方法をご紹介します.

フレーム比

Beamerではフレームの縦横比を変更することもできます.方法は単純でドキュメントクラスの指定時にオプションとして設定したい「横縦比」を選択するだけです.

\document[aspectratio=NUM]{beamer}     % NUMは後述

NUMに指定できる値は以下に限られるようです.


表1. フレームサイズとして指定できるサイズ比

NUM 寸法 (横×縦)
1610 160mm × 100mm
169 160mm × 90mm
149 140mm × 90mm
141 148.5mm × 105mm
54 125mm × 100mm
43 123mm × 96mm らしい (デフォルト)
32 135mm × 90mm

フォント

日本語と数式のフォント
特別な設定を何もしないと,これまでの図のように入力された日本語は明朝体で出てきてしまい,逆に数式は斜めになっただけの欧文フォントで出てきてしまうと思います.日本語をゴシック体で,数式を数式フォントで出力するには次のコマンドを利用します*15*16

% 和文の既定フォントをゴシックに変更
\renewcommand{\kanjifamilydefault}{\gtdefault}
% Beamerによる数式フォントの置き換えを阻止
\usefonttheme{professionalfonts} 

以降はTeX Live2020の話になるのですが,TeX Live2020からデフォルトに指定されている原ノ味フォント*17 で上の設定を行うと,出力の文字が太い印象を受けるかもしれません.この場合には以下で対処をします*18

% コマンドの説明は註18を参照
\usepackage[deluxe]{otf}
\usepackage[noalphabet]{pxchfon}
\setboldgothicfont{HaranoAjiGothic-Medium.otf} %\bfseriesの設定

f:id:tobetakoyaki:20201205133240p:plain:w350
図4. フォント設定後の様子.以下,テーマはFrankfurtを使用.

フォントサイズ変更 (一括)
スライド全体の文字の大きさを統一的に変更する場合,ドキュメントクラスの読み込み時に以下のように指定します.

\documentclass[10pt]{beamer}

なお,フォントサイズとして設定できる値は「8pt」「9pt」「10pt」「11pt (=デフォルト)」「12pt」「14pt」「17pt」「20pt」の8種類です.

f:id:tobetakoyaki:20201205133510p:plain:w350
図5. フォントサイズを10ptにしたもの

フォントの変更 (マイナー)
フレームの部品ごとにフォントを変更する方法には\usefonttheme,\usebeamerfont,\setbeamerfontの三つの種類がありますが,ここでは最後の\setbeamerfontのみを紹介します*19

\setbeamerfont*{beamer-font name}{attributes}
% * があると既存の設定を破棄
% * がないと上書き

beamer-font nameの部分には「block」などの部品名が入ります.後で一例が登場します.
また,attributesの部分には以下を選択できます*20

  • size ... \small や \large など
  • shape ... \itshape など
  • series ... \bfseries など
  • family ... \sffamilyなど

色を局所的に変更する方法には\usecolortheme,\usebeamercolor,\setbeamercolorの三つの種類があります.なお,\setbeamercolorは背景を灰色にする話 (1.2.7節の図3) で既に使用しました.基本的な文法はフォントのときと同じです.後で一例が登場します.

\setbeamercolor*{beamer-color name}{options}
% * があると既存の設定を破棄
% * がないと上書き

例: テーマの配色をいじる

「テーマを探しても良いものが見つからない」という場合には既存のテーマをいじって自分の好みに近づけるという解決策があります.例えば,

% これより上部に\usetheme{Frankfurt}があるとする
\usecolortheme{seahorse} % 色テーマだけ変更
\setbeamercolor{structure}{fg=brown} % さらに色を変更

の2行を付加すれば先ほどのスライド (図5) は以下のようになります*21

f:id:tobetakoyaki:20201205133908p:plain:w350
図6. 色の変更後の様子

例: フレーム番号の調整

フレーム番号を ①右下に ②普通のサイズで ③灰色にして 挿入するという設定は以下のコードで解決します.

% フットラインにフレーム番号を挿入
\setbeamertemplate{footline}[frame number] % ①
% 大きさを\normalsizeに変更,色をgrayに変更
\setbeamerfont{page number in head/foot}{size=\normalsize} % ②
\setbeamercolor{page number in head/foot}{fg=gray} % ③

f:id:tobetakoyaki:20201205134010p:plain:w350
図7. フレーム番号を挿入したバージョン

例: フレームタイトルを強調

図7を見るとフレームタイトルである「分岐指数・拡大次数・分岐数」という文字が本文と同じ太さで書かれていることが分かります.これを太くする方法,つまり,フレームタイトルのフォントを変更する方法は以下の通りです.

\setbeamerfont{frametitle}{series=\bfseries}

f:id:tobetakoyaki:20201205134113p:plain:w350
図8. フレームタイトルのフォントを変更したもの

脚註番号を設定

図8では脚註番号は「1」とだけ書かれています.これだと \mathfrak{p}^2といった文字列に脚註をつけたときに指数と区別が付かなくなる虞があるので,脚註番号を変更してみます.例えばjsarticle.clsのようにアスタリスクを付すなら以下のようにします*22

\renewcommand{\thefootnote}{\textasteriskcentered\arabic{footnote}}
% \textasteriskcentered がアスタリスクを出力するコマンド

f:id:tobetakoyaki:20201205134234p:plain:w350
図9. 脚註番号にアスタリスクを付けたもの

余白を広げる

最後に文章を挿入する領域を広げるコマンドをご紹介します.

\setbeamersize{text margin left=15pt, text margin right=15pt}

これで指定した値 (今回なら15pt) に文章の左右の余白を設定することができます.

f:id:tobetakoyaki:20201205134448p:plain:w350
図10. 文章の余白を狭くしたもの


参考文献

Beamerについて
[1] Beamerの公式マニュアル (超大作注意): リンク先のページ内にマニュアル (Beamer User Guide) がある ctan.org


[2] Beamerでスライドの中身をどう作ればいいかについて: www.opt.mist.i.u-tokyo.ac.jp

フォントに関する文献
[3] LaTeXによるフォントの設定について: qiita.com
[4] 原ノ味フォントについて: qiita.com
[5] otfパッケージのdeluxeオプションの効果について: hwb.ecc.u-tokyo.ac.jp
[6] PXchfon パッケージに関して: zrbabbler.sp.land.to

参考コード

\documentclass[uplatex,dvipdfmx,notheorems,xcolor={x11names,table},10pt,handout]{beamer}
\usetheme{Frankfurt}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.2. フォントの設定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\kanjifamilydefault}{\gtdefault} % 和文既定をゴシックに変更
\usefonttheme{professionalfonts} %Beamerによるフォントの置き換えを阻止
\usepackage[deluxe]{otf}
\usepackage[noalphabet]{pxchfon}
\setboldgothicfont{HaranoAjiGothic-Medium.otf}%\bfseriesの設定

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.4. テーマの配色をいじる
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usecolortheme{seahorse}
\setbeamercolor{structure}{fg=brown}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.5. フレーム番号の調整
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamertemplate{footline}[frame number]
\setbeamerfont{page number in head/foot}{size=\normalsize}
\setbeamercolor{page number in head/foot}{fg=gray}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.6. フレームタイトルの強調
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamerfont{frametitle}{series=\bfseries}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.7. 脚註番号を設定
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewcommand{\thefootnote}{\textasteriskcentered\arabic{footnote}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3.8. 余白を広げる
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setbeamersize{text margin left=15pt, text margin right=15pt}

\newcommand{\textred}[1]{\textcolor{red}{#1}}


\begin{document}
\title{代数的整数論のはなし}
\section{整数環}
\subsection{}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\section{環の拡大と素イデアルの分岐}
\subsection{環の拡大の設定}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\subsection{素イデアルの分岐}
\begin{frame}\frametitle{分岐指数・拡大次数・分岐数}
$\mathfrak{p}$: $A$の素イデアル,$P$: $\mathfrak{p}$の上にある$B$の素イデアル,\par
$A_{\mathfrak{p}} = (A \setminus \mathfrak{p})^{-1} A$$B_{P} = (B \setminus P)^{-1} B$とする\footnote{これを局所化という.}\vfill
\begin{block}{分岐指数 $e(P/\mathfrak{p})$}
   $\mathfrak{p}B_{P} = P^e B_{P}$を満たす$e$$P$$\mathfrak{p}$上の\textred{\textbf{ 分岐指数 }}という.
\end{block}
\vfill
\begin{block}{相対次数 $f(P/\mathfrak{p})$}
   剰余体の拡大次数$\left[ (B/P) : (A/\mathfrak{p}) \right]$$P$$\mathfrak{p}$上の\textred{\textbf{ 相対次数 }}という.
\end{block}
\vfill
\begin{block}{分岐数 $g$}
   $\mathfrak{p}$の上にある$B$の素イデアルの個数を$\mathfrak{p}$\textred{\textbf{ 分岐数 }}という.
\end{block}
\vfill
\end{frame}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\section{Galois拡大の場合}
\subsection{}
\begin{frame}\frametitle{題名}
  内容
\end{frame}
\begin{frame}\frametitle{題名}
  内容がないよう
\end{frame}
\end{document}

*1:閲覧日時は11月29日12時34分

*2:諸説あります.

*3:通常の人はプレゼンテーションにMicrosoftPowerPointMacのパソコンにプリインストールされているKeyNoteなどを使うであろうという意味で「特殊」と表記しました.たとえ私が異常な人であろうとも,この表現は決して「異常な人」を指してはいません.

*4:ここのコメントでもTwitter ([at]tobetakoyaki) でも構いません.

*5:特にカウンタの利用を試みたとき,この二つの違いを理解していることは重要です.

*6:パラパラ漫画をイメージすると良いでしょう.

*7:左端だけのことが多いですが,右端だけの場合や両端の場合もあるようです.

*8:Beamer User Guide for version 3.59を参照しています.

*9:正確な\frametitleコマンドの仕様は「\frametitle[short ver.]{full ver.}」です.オプション引数になっている短尺版のタイトルは\insertshortframetitleというコマンドで取得することができるものですが,あまり使わないかもしれません.

*10:正確なframe環境の引数は「<overlay specification>[<default overlay specification>][options]{title}{subtitle}」です.ちなみにoverlay specificationの欄には出力するオーバーレイの範囲を指定します.例えば1枚目から3枚目のみを出力したければここには「1-3」と入力します.

*11:Beamer User Guide for version 3.59の8.2.7節を参照.

*12:\usetheme[left,hideothersubsections]{PaloAlto} \setbeamertemplate{blocks}[rounded][shadow=false] \setbeamercolor{background canvas}{bg=gray}の三つのコマンドを用いました.二つ目は「分岐指数」などを表示している枠の影を消すためのコマンドで,三つ目が背景色をグレーにしているコマンドです.

*13:version 3.59だと15章にイラストが載っています.

*14:具体的にテーマとして選択できるものはプレゼンテーションテーマ,色テーマ,フォントテーマ,内部テーマ (inner theme),外部テーマ (outer theme) の5種類です.特に後ろ2つによってフレームの見た目が大きく変わります.\usethemeコマンドを使うとこれらが一括で変更されます.一方で,\usecolortheme,\usefonttheme,\useinnertheme,\useouterthemeの四つのコマンドによってそれぞれを特定のテーマに個別に変更することも可能です.

*15:スライドには明朝体ではなくゴシック体を使用することが好まれます.

*16:これは個人の意見ですが, \mathfrak{p}などの特殊な記号が必ず数式フォントで出力されることを踏まえると,数式に関しては統一して数式フォントで出力するほうが良いと思います.

*17:これは源ノ角フォントをLaTeXやLuaTeXなどでも使えるようにしたものです.cf. LuaTeXで原ノ味フォントを使う - Qiita

*18:大まかな内容を説明すると,まずLaTeX側で対応できるフォントの種類をotfパッケージで増やします.その後にpxchfonパッケージによるフォント変更機能を利用します.3行目の\setboldgothicfontはpxchfonパッケージで読み込まれたコマンドです.ここでは原ノ味ゴシックの中でも太さをmediumのものに設定しています.ちなみに元はBoldです.

*19:\usefontthemeコマンドはフォントのテーマを変更します.

*20:例えば「size=\footnotesize」とすれば指定した部分のフォントサイズが脚註のフォントサイズになります.

*21:作業中に思わずチョコレートの入ったケーキを食べたくなるような配色だと思いました.ただの感想です.

*22:なお,この処理は通常のドキュメントクラスにも適用できます.