LaTeX Beamerでスライド書いた

プレゼン資料プレゼン資料したプレゼン資料ぽいものを作る必要があったので、とりあえず研究室でライセンスもらったPowerPointで書いたりしてみたんだけど、なんかこう、すさまじく窮屈だったのでLaTeXで書いた。最初slides classとか使ってみてたのですが、どうもBeamerとやらの方がモダンっぽいぞと気付いたのでBeamer を使ってみるなど参考にBeamerで書きました。

デフォルト表示からちょっといじりたかったので適当なstyleファイル書いた。コンパイルする.texファイルと同ディレクトリに置くか、texmf以下に置いておいて、texファイル中のdocumentの前に

\usepackage{my_slides}

などと書いておく。

my_slides.sty

\voffset=0in
\hoffset=0in
\voffset=0in

\mathversion{bold}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\kanjifamilydefault}{\gtdefault}
\setbeamerfont{title}{size=\large,series=\bfseries}
\setbeamerfont{frametitle}{size=\large,series=\bfseries}
\setbeamertemplate{frametitle}[default][center]

\usefonttheme{professionalfonts}
\useoutertheme{default}

% maketitle
\def\event#1{\gdef\@event{#1}}
\def\group#1{\gdef\@group{#1}}
\def\stdid#1{\gdef\@stdid{#1}}

\renewcommand{\maketitle}{
\frametitle{\inserttitle}
{\footnotesize
\@event{\hfill}
\\
\@group \hspace{1.5zw} \@stdid \hspace{1.5zw} \insertauthor
\vspace{1.5zw}
}
}

適当にコピペとかでやってるので、TeXの文法とか全然知らない。コンパイル

$ platex hoge.tex
$ dvipdfmx hoge.dvi

などと。エラーが大量に出るのがなんなのかはよく知らない。あとdviファイルは読めないものができる。


以下用例。
出力はopencampus.pdfのようになります

\documentclass[14pt,dvipdfm]{beamer}
\usetheme{Luebeck}
%\usetheme{Pittsburgh}
\setbeamertemplate{navigation symbols}{} 

\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
% フォントはお好みで
%\usepackage{txfonts}

\usepackage{arydshln}
\usepackage{my_slides}

\event{2008年度電気通信大学オープンキャンパス}
\title{わかったつもりになるガベージコレクション}
\group{電気通信大学 情報工学科四年 阿部研究室}
\stdid{0311048}
\author{小室 直}
\date{2008年7月20日}

\begin{document}
\begin{frame}
\maketitle

\begin{description}
\item[ガベージコレクションとは?] \hspace{1pt} \\
動的に確保したメモリ領域のうち,
いらなくなったものを自動で捨ててくれる仕組み,
それがガベージコレクション(GC)です.
\end{description}
\end{frame}

\begin{frame}
\frametitle{GC解説 -- 計算機の構成}
計算機(コンピュータ)が計算するのに欠かせないのは
CPUとメモリです.
\begin{description}
\item[CPU] \hspace{1pt} \\
脳味噌のようなもの.計算をするところです.

\item[メモリ] \hspace{1pt} \\
計算用紙のようなもの.
人が計算するときも,長い計算のときは
計算用紙に計算途中の式を書いて忘れないようにしますね.
\end{description}
\end{frame}

\begin{frame}
\frametitle{GC解説 -- 忘れっぽい脳味噌(CPU)}
脳味噌が覚えてられるのは本当にほんの少しなので,
それ以外は計算用紙(メモリ)に記録しておく必要があります.

\begin{tabular}{|l|}
\hline
$ y = 3x^2 + 8x - 1$ \\
\hline
$ y = -x^2 + 13x + 2$ \\
\hline
$ 0 = 4x^2 - 5x - 3$ \\
\hline
$ x^2 - \frac{5}{4}x - \frac{3}{4}$ \\
\hline
$ (x - \frac{5}{2})^2 - \frac{25}{4} - \frac{3}{4} = 0$ \\
\hline
\multicolumn{1}{:l:}{$(x - \frac{5}{2})^2 - \frac{28}{4} = 0$}
 \\
\hdashline
\multicolumn{1}{:l:}{$x = \frac{5 \pm \sqrt{28}}{2}$}
 \\
\hdashline
\end{tabular}

例えば5行しか書けない計算用紙だったら,下2行は書いておく場所がありません.
\end{frame}

\begin{frame}
\frametitle{GC解説 -- 計算用紙が足りなくなったら}
計算用紙の余白が無くなってしまったので,
いらない途中式を消してしまいましょう.
\begin{tabular}{|l|}
\hline
$ (x - \frac{5}{2})^2 - \frac{25}{4} - \frac{3}{4} = 0$ \\
\hline
$(x - \frac{5}{2})^2 - \frac{28}{4} = 0$ \\
\hline
$x = \frac{5 \pm \sqrt{28}}{2}$ \\
\hline
\hspace{1pt} \\
\hline
\hspace{1pt} \\
\hline
\end{tabular}

結果を求めるまでに,残り二つの式を書く必要があったわけですが,
直前以外のいらない式を消すことでそれを書く場所が空きました.

この「いらない途中式を消しゴムにかける」作業のことを
「メモリの解放」と言います.
\end{frame}

\begin{frame}
\frametitle{GC解説 -- 正しい消しゴムの使い方}
例えばプログラミング言語Cでは普通
「メモリの解放」は全てプログラマが
いちいち指示する必要があります.

{\color{red}
「だけどそれは面倒だし,
必要な式を消しちゃったりなんて間違いも多いから
その作業も計算機にやらせちゃおう」
}

この考え方がガベージコレクションです.
\end{frame}

\begin{frame}
\frametitle{GC解説 -- 簡単な分類}
GC手法を
おおざっぱに分類すると
\begin{itemize}
 \item 手動メモリ管理
 \item 自動メモリ管理
       \begin{itemize}
        \item 静的メモリ管理
              \begin{itemize}
               \item エスケープ解析
               \item リージョン推論
              \end{itemize}
        \item 動的メモリ管理
              \begin{itemize}
               \item 参照カウント
               \item トレースGC
              \end{itemize}
       \end{itemize}
\end{itemize}
分類だけでこれほどになります.
個々の手法に至っては三桁を越えるでしょう.
しかしそれだけあっても,
「これが一番良い!」
とされる手法はありません.
\end{frame}

\begin{frame}
\frametitle{研究の取り組み -- 研究内容}
\begin{itemize}
\item キャッシュヒット率の高いGC手法の開発
\item 電力消費の少ないGC手法の開発
\item 特定状況において効率の良いGCの開発
\item 既存言語処理系のGCの改善
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{研究の取り組み -- 最近の取り組み}
\begin{itemize}
\item
スクリプト言語Rubyの処理系メモリ管理機構の改善
に取り組んでいます.
提案は世代仮説に基づいて
メモリ利用効率を高める
といった手法.

\item
Squawk VMというJava VMについて,
低電力なGCを組み込めないかと
取り組んでいます.
具体的にはキャッシュヒット率を
高くすることで,それが実現できると
考えています.
\end{itemize}
\end{frame}

\end{document}

test