LaTeX でプレゼンテーション — Beamer

Microsoft PowerPoint でロシア語を記述するとフォントが変更できないという書き込みが私の掲示板にあがった。さっそく Windows XP / PowerPoint 2000 で試行してみたところ,初期入力では Times New Roman 書体でロシア語が表示できるけれども,これをいったん日本語フォント(MSゴシックなど)や Arial Unicode MS などに書体変更すると,再度フォント指定ツールで Times New Roman や Palatino といった欧文書体に変更しようとしても不可能なのである。「書式コピー/貼付け」ツールで別の欧文書体の文字列から書体コピー/貼付けを行って,やっと変更ができることが判った。これは PowerPoint のバグだと思う。

そういうこともあり,多言語プレゼンテーション文書も LaTeX で作成する方法を探ってみた。奥村先生の『美文書』には Hyperref スタイル併用で slide オプションを用いる方法が記されている。インターネットを探索すると,TeXPower,Beamer などいくつも提案がある。私も弘前大学葛西先生の頁『LaTeXでプレゼンテーション・シリーズ:まとめ』を参考に Beamer を使って多言語 LaTeX プレゼンテーションを作ってみた。multi.pdf を置いておく。pLaTeX2e と Dvipds, Ghostscript で PDF を生成した。Adobe Reader などの PDF ビュアでフルスクリーンにして閲覧してみてください。

Beamer は最新バージョン 3.07 が sourceforge からダウンロードできる。LaTeX のグラフィック・パッケージ pgf 1.01,xcolor 2.00 も必要である (同じところからダウンロードできる)。TeX ツリーに格納すればよい。Beamer には様々なテーマ(プレゼンテーション・テンプレート)が添付され,かつよくできており,multi.pdf も Warsaw というテーマを用いている。Beamer の使い方詳細は添付のユーザーズガイドを参照。

Dvipdfmx で PDF を作成する場合,PDF のしおりで日本語が文字化けを起こさないようプリアンブルで以下を指定しおくとよい。Dvips の場合,これは不要である。

\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}

multi.pdf はロシア語 (Babel),古典ギリシア語 (Babel),教会スラヴ語 (OldSlav),サンスクリット語 (skt),タイ語 (ThaiLaTeX),ヴェトナム語 (VnTeX),韓国語,簡体中文,繁体中文 (以上 OTF),アラビア語,ヘブライ語 (以上 ArabTeX) の例文を掲載した。例文は CJK パッケージ,稲垣さん CTAN Directory の ArabTeX 解説,ThaiLaTeX / skt ドキュメントなどから拝借した。

通常の LaTeX でも複数の言語を混在させると問題を生ずることがある。今回 Beamer クラスを用いて多国語プレゼンテーションを作成するに際してもいくつか問題解決が必要であった。

OldSlav 教会スラヴ語パッケージと skt サンスクリット語パッケージとの間で \ZH コントロールシーケンス名が重複するので,skt.sty を読み込む直前において,さしあたり使用しない OldSlav の \ZH を無効にする (\let\ZH=\relax) 必要があった。

アラビア語,ヘブライ語については私自身で 7 ビット化した ArabTeX パッケージを使用した。しかしながら multi.tex 単一原稿に ArabTeX テキストを記述すると dimen が枯渇してしまうエラーが発生した。Beamer と ArabTeX どちらかが dimen レジスタを多用しているようである。そこで ArabTeX を使った部分だけ別原稿にして EPS ファイルに出力し,multi.tex において \includegraphics 命令でこれを挿入する手段をとってみた。この方法ならば 7 ビット化しない標準の ArabTeX を LaTeX (latex コマンド) で処理してもよい。

サンプルの原稿と素材すべてのリンクを以下に掲げる。

主原稿のコンパイルには Utf82TeX プリプロセッサ,角藤先生の bkmk2uni が必要である。multi.pdf を生成するには以下のとおりとする。

% utf82tex -qtx < multi.tex | nkf -e > multi.euc
% platex --kanji=euc multi.euc
% platex --kanji=euc multi.euc
% dvips -Ppdf -T128mm,96mm -z -f multi.dvi | bkmk2uni -e > multi.ps
% gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=multi.pdf multi.ps

Beamer は本来 pdfLaTeX で PDF を生成することを想定している。PS to PDF 変換は ps2pdf (Ghostscript) でもよい。CJK フォントが含まれると ps2pdf はエラーとなるかも知れない。そのときは上記のとおり gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=出力PDF psファイル で PDF 変換を行う。CJK 向けの Ghostscript の調整については,Ghostscript 8.54 についてのブログ記事に纏めた。Dvipdfmx の場合はアイコンのリンクが機能しないなど制限があるようである。そのうち解決されるかも知れない。

arab.tex から独自に EPS を生成したいなら,次のようにする。ArabTeX の Type1 フォントが使えないと EPS の生成 (Dvips) はおそらくエラーになるだろう (PK フォントが埋め込まれるのをチェックアウトするため私は -D 10000 オプションを使うことが多い)。

% platex arab.tex
% dvips -E -D 10000 arab.dvi -o arab.eps

余談。サンプル作成のため Gnuplot のグラフを準備した。グラフの座標軸を普段は英字ですませているが,今回は日本語の文字化けを正すのに苦労した。このため奥村先生のサイトの記事を参考に Ghostscript 8.54 をインストールし,EPS 出力時のフォント指定 (Gnuplot の命令による) を GothicBBB-Medium-EUC-H として EUC で日本語を書いたところ,きれいな日本語が出力できた。

※ 永田先生にいろいろ教えていただきました。ありがとうございます:永田先生の Weblog

beamer-multi-exs.jpg