添付・レイヤー・メディア

PDF は静的なページだけでなく、添付ファイル・切り替え可能な レイヤーアニメーションメディア も持てます。LaTeX はこれらを小さなパッケージで提供します。ただし注意点が 1 つ——どこまで実際に動くかは PDF ビューア次第 です(凝った機能は Adobe Acrobat 頼り、Flash 廃止で壊れたものもある)。このページはその前提で各機能を見ていきます。

ファイルの添付・埋め込み

ファイルを PDF の中に埋め込めます。attachfile(/改良版 attachfile2)の \attachfile{ファイル} は、クリックできる クリップのアイコン を置き、\textattachfile{ファイル}{リンク文字} は任意の文字をリンクにします。embedfile\embedfile{ファイル} は、アイコンを出さずにファイルを添付します(PDF に .tex ソースを同梱する、など)。添付は多くのビューアで広くサポート されています。

latex
\usepackage{attachfile}
\attachfile{data.csv}                  % クリップのアイコン / paperclip icon
\textattachfile{data.csv}{データを開く}  % 任意のリンク文字 / custom link text

レイヤー — ocgx2

PDF の OCG(Optional Content Groups=レイヤー) は、表示・非表示を切り替えられる層です。ocgx2(Alexander Grahn 作)は、内容を \begin{ocg}{名前}{id}{初期表示}…\end{ocg} で包み、クリックで切り替えるリンク(\toggleocgs\showocgs\hideocgs)を提供します。段階的な開示や対話的な図に便利ですが、切り替えは主に Acrobat で動作 し、他のビューアでは初期状態のみ表示されることがあります。

latex
\usepackage{ocgx2}
\begin{ocg}{答え}{ans}{0}   % 0 = 初期は非表示 / initially hidden
  これが答えです。
\end{ocg}
\toggleocgs{ans}{答えの表示/非表示}

アニメーション — animate

animate(Alexander Grahn 作)は、JavaScript 駆動 のアニメーションを PDF 内に作ります。\animategraphics は連番の画像(または複数ページ PDF)を、再生コントロール付きの動く図にします。animateinline 環境は、TikZ/PSTricks/テキストなどのインラインのコマを animation にします。JS ベースなので 複数のビューア(Acrobat・Okular・Foxit・pdf.js など)で動き、埋め込み動画より移植性が高いのが利点です。

latex
\usepackage{animate}
% 12fps、frame-0 … frame-59 を再生 / play frame-0 … frame-59 at 12 fps
\animategraphics[controls,autoplay]{12}{frame-}{0}{59}

マルチメディア — media9(と注意)

media9\includemedia は動画・音声・3D を埋め込み、movie15 はその旧版(廃止)です。重要な注意:media9 は Adobe Reader 内蔵の Flash Player に依存していましたが、Flash は終了したため、埋め込み動画は現在のビューアではほぼ再生できません。新規では、外部メディアへのリンクにするか、コマ送りの動きなら animate を使うのが無難です。media9 はレガシーと考えてください。