大学で理工系に進学すると、多くの人がLaTeXでレポートを書くことを経験するかと思います。レイアウトを整えやすかったり、数式の表現力が高かったりと便利ですよね。ところでLaTeXでスライドも作れることはご存知でしょうか?
この記事ではBeamerというパッケージを用いて、LaTeXでスライドを作る方法を説明します。先にOverleafを使った作り方を説明しますが、VSCodeなどを使ってローカルで作りたいという方もいるかと思いますので、そちらについても説明します。
また、LaTeXといっても色々なエンジンがありますが、今回はupLaTeX(+dvipdfmx)を用いた方法とXeLaTeXを用いた方法について触れます。
一応それぞれのエンジンの特徴をまとめておくと大体こんな感じになります。
| upLaTeX | XeLaTeX |
|---|---|
| ・日本語組版がきれい ・情報が多い ・フォント設定が複雑 |
・フォント設定が楽 ・多言語に対応しやすい |
好きなフォントを使いたい場合は、XeLaTeX一択と考えていいですが、そうでなければ安定性が高く、なにか問題があっても調べれば比較的情報が見つけすいupLaTeXをおすすめします。
なお、LuaLaTeXという、日本語文書を作るうえでは非常に拡張性の高いエンジンがあるのですが、実行に時間がかかるという難点がありOverleafではしばしばタイムアウトするので今回の記事では扱わないこととします。
より詳しい比較をしたい場合Suima君の以前に書いてくれた記事などを見ていただけるといいかもしれません。

Overleaf編
Overleafは、クラウド上でLaTeX文書を作成できるサービスです。多くの学会がフォーマットを公開していたり、共同編集ができたりするので、論文執筆などでも頻繁に使われていいます。環境構築が不要なので、大学の授業でLaTeXの書き方を扱うときもよく使われているイメージです。
upLaTeX
まず、新しいプロジェクトを作成したら'Menu'を開き、'Compiler'を'LaTeX'にしてください。
続いて'New File'をクリックし、latexmkrcというファイルを新たに作成してください。
latexmkrcはlatexmk(LaTeXの自動コンパイルツール)の設定を記述したものになります。
ファイルを作成したら、ファイルの中身を次のように記述してください。
$latex = 'uplatex';
$bibtex = 'upbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$upmakeindex = 'mendex -U %O -o %D %S';
latexmkrcを書き終えたら、もとから存在しているmain.texに次のように記述してください。
\RequirePackage{plautopatch}
\documentclass[aspectratio=43,table,dvipdfmx]{beamer}
\usepackage{bxdpx-beamer}
\usepackage{otf}
\usepackage{bm}
\usefonttheme{serif}
% \renewcommand{\familydefault}{\sfdefault} % 本文(欧文)をサンセリフ体に
% \renewcommand{\kanjifamilydefault}{\gtdefault} % 本文(和文)をゴシック体に
% タイトル等をサンセリフ体 & ゴシック体に
\setbeamerfont{title}{family=\gtfamily}
\setbeamerfont{frametitle}{family=\gtfamily}
\setbeamerfont{structure}{family=\sffamily}
\mode<presentation>
{
\usetheme{Madrid}
}
\title{Title (タイトル)}
\author{Author (著者)}
\date{\today}
\begin{document}
\frame{\titlepage}
\begin{frame}{Frametitle (フレームタイトル)}
This is body text. これは本文です。\\
\end{frame}
\end{document}
これで一旦コンパイルしてみましょう。
次のように出力されれば成功です。

細かい部分について一部コメントアウトでも触れられていますが説明します。
\documentclass[aspectratio=43,table,dvipdfmx]{beamer}
現在、比率が4:3に設定されていますがaspectratio=169とすると、16:9になります。
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\kanjifamilydefault}{\gtdefault}
それぞれ、本文(欧文)がサンセリフ体に、本文(和文)がゴシック体になります。先程のコードではコメントアウトされていますが、スライドの数式以外の部分をすべてサンセリフ体・ゴシック体にしたい場合に外してください。
\setbeamerfont{title}{family=\gtfamily}
\setbeamerfont{frametitle}{family=\gtfamily}
\setbeamerfont{structure}{family=\sffamily}
タイトルなどをサンセリフ体・ゴシック体にします。セリフ体・明朝体にしたい場合は、コメントアウトしてください。
\mode<presentation>
{
\usetheme{Madrid}
}
スライドのテーマを設定します。現在の設定では'Madrid'というおそらく一番使われているテーマに設定されています。他にもこのサイトにあるテーマや有名なものだと'Metropolis'など調べたら色々出てくると思うので気に入ったものを使ってください。何も書かない場合は装飾なしの非常にシンプルなデザインになります。
\title{Title (タイトル)}
\author{Author (著者)}
\date{\today}
タイトルページや、各ページのフッターに表示されるタイトル・著者名・日付を設定します。フッターに表示される文字はデフォルトでは{}内の文字になりますが、\title[フッターに表示される文字]{Title(タイトル)}のように書くことで自由に変えられます。もちろん表示したくなければ[]とすることで消せます。
\frame{\titlepage}
タイトルページを作ります。
\begin{frame}{Frametitle (フレームタイトル)}
This is body text. これは本文です。\\
\end{document}
新たにページを作成するときはこのように書くことで作成できます。
ひとまずこれで一通りの説明は終わりです。あとは普段通りに、フレーム内にLaTeXを書いていけば、スライドができていきます。
XeLaTeX
次にXeLaTeXを使った方法について説明します。
まず、新しいプロジェクトを作成したら'Menu'を開き、'Compiler'を'XeLaTeX'にしてください。
続いてmain.texに次のように書いてください。latexmkrcは必要ありません。
\documentclass[unicode, aspectratio=43]{beamer}
\usepackage{xeCJK}
\usepackage{lmodern}
\xeCJKsetup{CJKspace=true}
\usefonttheme{serif}
% 欧文フォントの設定
\setmainfont{Noto Serif CJK JP}
\setsansfont{Noto Sans CJK JP}
% 日本語フォントの設定
\setCJKmainfont{Noto Serif CJK JP}
\setCJKsansfont{Noto Sans CJK JP}
% タイトル等をサンセリフ体 & ゴシック体に
\setbeamerfont{title}{family=\sffamily}
\setbeamerfont{frametitle}{family=\sffamily}
\setbeamerfont{structure}{family=\sffamily}
\mode<presentation>
{
\usetheme{Madrid}
}
\title{Title (タイトル)}
\author{Author (著者)}
\date{\today}
\begin{document}
\frame{\titlepage}
\begin{frame}{Title (タイトル)}
This is body text. これは本文です。\\
\end{frame}
\end{document}
upLaTeXとフォントの設定が異なるので説明します。ほかはupLaTeXと同じです。
% 欧文フォントの設定
\setmainfont{Noto Serif CJK JP}
\setsansfont{Noto Sans CJK JP}
% 日本語フォントの設定
\setCJKmainfont{Noto Serif CJK JP}
\setCJKsansfont{Noto Sans CJK JP}
欧文フォント・日本語フォントをそれぞれ設定します。現在はどちらもメインフォント(本文)が'Noto Serif CJK JP'で、サンセリフフォントが'Noto Sans CJK JP'に設定されています。Overleafの標準で使えるフォントは他にも色々あるので好きなものを使ってください。
ちなみにXeLaTeXでBeamerを使うと、数式の幅が崩れるという問題が生じたのですが\usepackage{lmodern}で解決するようです。
VSCode編
ここまでは環境構築なしで使えるOverleafでの方法を説明しましたが、ローカルで作成したいという方もいるかと思います。今回はVSCodeで作成する方法を説明します。
まず、VSCodeでLaTeXを使うための環境構築についてですが、Hueter君が以前書いてくれた記事を参考に構築してくれると助かります。今回は、この手順で環境構築したものとして、説明を続けていきます。

upLaTeX
upLaTeXを使った方法については、上記の環境構築ができていれば、Overleaf編のコードでそのまま実行できると思います。ですので説明は以上です。
XeLaTeX
XeLaTeXを使う場合、まずVSCodeのsettings.jsonに書き足す必要があります。settings.jsonを開いたら"latex-workshop.latex.recipes"の要素に次のように書き足してください。
{
"name": "XeLaTeX",
"tools": [
"xelatex",
"xelatex"
]
},
続いて、"latex-workshop.latex.tools"の要素に次のように書き足してください。
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOC%"
]
},
これで設定は完了です。
適当な場所に.texファイルを作成してください。作成したら、その中にOverleaf編で載せたXeLaTeX用のコードを貼り付けてください。
ここで、フォントの設定部分
% 欧文フォントの設定
\setmainfont{ローカルに存在するフォント}
\setsansfont{ローカルに存在するフォント}
% 日本語フォントの設定
\setCJKmainfont{ローカルに存在するフォント}
\setCJKsansfont{ローカルに存在するフォント}
ではローカルに存在するフォントを調べて、好きなものを指定してください。
最後にビルドできるか試してみましょう。'LaTeX'メニューの'Commands'から'Buld LaTeX project'下にある'Recipe: XeLaTeX'をクリックして、ビルドしてください。VSCodeの右上にあるボタンからビルドするとupLaTeXで実行されてしまうので上手くできません。ここをクリックしてできるようにしたい場合は、settings.jsonの"latex-workshop.latex.recipes"の要素で、"XeLaTeX"のほうが"latexmk"よりも前に来るように設定してください。ただし、こうした場合、他のプロジェクトにおいてもXeLaTeXでビルドしようとされるので気をつけてください。
無事ビルドできたら成功です。
XeLaTeXを使った方法の説明は以上になります。
おわりに
いかがだったでしょうか。今回の記事では、LaTeXを使ってスライドを作る方法について説明させていただきました。PowerPointでも数式を書くことはできますが、僕はLaTeXで書くほうが楽なので、Beamerの存在を知ってからは好んで使っています。
ちなみにこれはTipsみたいな感じになりますが、大学の授業でグループワークがあると、だいたい皆Google Slidesで共同編集します。ところがGoogle Slidesって数式入力できないんですよね。そこで、数式が必要な時に僕がよくやっているのは、LaTeXで書いて、該当部分をGoogle Slidesにコピー&ペーストすることです。数式をLaTeXで入力すると、画像としてコピーできるようなサイトもあるのですが、この方法だと、貼り付けたあとにレイアウトを調整する必要があります。この方法だとはじめから適切なレイアウトで出力されているので、貼り付けるだけですみます。
皆さんもぜひBeamerを使ってLaTeXで発表スライドを作ってみてください。きっと気に入ってくれると思います。
明日はharuka1012さん、ikura-hamuさんによる記事です。お楽しみに!
