Acetaminophen’s diary

化学に関すること,TeXに関すること,ゆきだるまに関すること。

PowerPointやPDFにいろいろなマルチメディアを埋め込む(1)

今回から数回にわたり、今までに僕が使用したさまざまなソフトウェアの中から、PowerPoint や PDF にマルチメディアを埋め込む機能をもったものをまとめて紹介しようと思う。便利な割には意外とどれもあまり知られていないか、利用者が少ないような気がするので、ぜひ知っておいてほしい。

なお現状では、Mac ユーザーの読者の方には TeX を利用する方法しか役に立たない部分もあるので、申し訳ない。また、紹介するソフトウェアの中には教育機関に所属していなければ入手できないものも含まれ、一般の方にはその商用版を入手していただくほかないが、ご了承いただきたい*1

Mac で使える便利なソフトウェアをご存じであれば、ぜひコメントで知らせていただきたい(今後の課題は後日の記事でまとめる)。

 

すべての記事で

を用いたテストを行った。また、PDF ビューアは

を前提とする。現在思いつくネタとしては以下の通り(2014-09-26 追記あり)。

  • GIF アニメの挿入:PowerPoint の場合→第1回
  • GIF アニメの挿入:PDF の場合(TeX 使用)→第1回
  • 動画や音声の挿入:PowerPoint の場合→第2回
  • 動画や音声の挿入:PDF の場合(TeX 不使用)→第2回
  • 動画や音声の挿入:PDF の場合(TeX 使用)→第2回
  • 動く 3D 模型の挿入:PowerPoint の場合→第3回
  • 動く 3D 模型の挿入:PDF の場合(TeX不使用)→第7回
  • 動く 3D 模型の挿入:PDF の場合(TeX 使用)→第4567回

僕の場合は「ある方法で結果的に目的の動作が可能ならば、わざわざ他の方法を検証することはしない」という方針なので、現在では obsolete となっている TeX パッケージをわざわざ取ってきたりしている。もちろんこのような点に関しては自分でも気持ち悪いのだが、おそらく誰かが最新のより好ましい方法を解説してくださると信じている。

というわけで、第1回は GIF アニメ。

 

GIF アニメの挿入:PowerPoint の場合

これは問題ないだろう。Windows でも Mac でもドラッグアンドドロップで一発*2

 

GIF アニメの挿入:PDF の場合(TeX 使用)

LaTeX を使用しない方法は今のところ思いつかない。以下で LaTeX を使用する場合について解説する。

GIF アニメーションを LaTeX で貼り付けるとき、事実上の標準は animate パッケージである。使い方については、GeoGebra という作図ソフトウェアのサイトの以下の記事が参考になる:

GIF アニメーションを platex + dvipdfmx で PDF に取り込むための手順を以下に簡単にまとめると

  1. GIF アニメを ImageMagick を用いて1枚ずつの画像ファイルとして出力する:EPS ファイルの場合は以下の通り。
    convert animation.gif -coalesce animation_%03d.eps
    
    出力ファイル名に "%03d" などと追加することで、"0"から始まる連番の桁数を指定できる。
  2. LaTeX ソースに以下のように記述する:

    プリアンブル部:

    \usepackage[dvipdfmx]{graphicx}
    \usepackage[dvipdfmx]{animate}
    

    本文:

    \animategraphics[height=2.8in,autoplay,controls,loop]{12}{animation_}{000}{015}
    

    書式は \animategraphics[<options>]{<frame rate>}{<file basename>}{<first>}{<last>} である。上の場合は animation_000 から animation_015 までのファイルを読む。

これを platex + dvipdfmx で処理すると、Adobe Reader で開くとアニメーションが実行されているのが確認できる。autoplay オプションを入れている場合は、GIF アニメが入ったページを表示するとその瞬間に自動再生される。controls オプションで表示されている再生ボタンや一時停止ボタン、速度調節ボタンなどをいろいろいじってみてほしい。サンプルはこちら (GitHub)

備考:jsarticle クラスでコンパイルに失敗する場合に

(c:/w32tex/share/texmf-dist/tex/latex/oberdiek/ifdraft.sty
! LaTeX Error: Command \ifdraft already defined.
Or name \end... illegal, see p.192 of the manual. See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.

というメッセージが出ることがある。この場合 \ifdraft というコマンドの重複定義が問題であるので、こちらを参照。

 

ちなみに、今回使用した波の GIF アニメは、gnuplot を使って出力した。例えば、以下のようなサイトが参考になる:

あらかじめ gnuplot に PATH を通しておくとコマンドプロンプトから起動できる。まずテキストエディタで以下のようなファイルを作成する:ファイル名は wave.plt とする。

set size ratio 0.6
set samples 2048
set xrange [0:16]
set yrange [-2.4:2.4]
set noxtics
set noytics
set nokey

if (exist("n")==0 || n<0) n=0

t = 1.0/32 * n
plot 2 * sin(pi*(x - 4*t))

if (n<15)  n=n+1; reread

そして、コマンドプロンプトで wave.plt があるディレクトリに移動してから

gnuplot

と入力すると gnuplot が起動するので、以下を順に入力する。

n = 0
set terminal gif animate optimize size 648, 432
set output "wave.gif"
load "wave.plt"

最後に

q()

と入力すると gnuplot が終了し、wave.plt と同じディレクトリに wave.gif が生成している。

f:id:acetaminophen:20140913093907g:plain

この方法で以前「波動現象の可視化」を実現した PDF ファイルを公開したことがあるが、そのことについては次回まとめて説明する。

*1:学生がソフトウェアを紹介している記事がほぼ皆無なので、学生である僕がここで紹介するだけで意義があるのではないかというのが今回の意図の一つである。

*2:編集画面では一見動いていないようだが、スライドショーを実行すると動く。