附件、图层与媒体

PDF 不只是静态页面,还可以包含附件、可切换的图层动画,甚至媒体。LaTeX 通过一些小包提供这些功能。不过有一个前提:实际能运行到什么程度取决于 PDF 查看器(复杂功能常依赖 Adobe Acrobat,有些功能也因 Flash 停用而失效)。本页在这个前提下概览这些功能。

附加和嵌入文件

可以把文件嵌入 PDF 中。attachfile(以及改进版 attachfile2)的 \attachfile{file} 会放置一个可点击的回形针图标\textattachfile{file}{link text} 则把任意文字做成链接。embedfile\embedfile{file} 会在没有可见图标的情况下附加文件(例如把 .tex 源文件随 PDF 一起带上)。附件在许多查看器中都有较好支持

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}{name}{id}{initial visibility}…\end{ocg} 包住内容,并提供可点击的切换链接(\toggleocgs\showocgs\hideocgs)。它适合逐步显示或交互式图,但切换主要在 Acrobat 中工作;其他查看器可能只显示初始状态。

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

动画 — animate

animate(Alexander Grahn)在 PDF 中创建由 JavaScript 驱动的动画。\animategraphics 可把连续编号的图片(或多页 PDF)变成带播放控制的动态图;animateinline 环境则把 TikZ、PSTricks、文本等内联帧做成动画。由于基于 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 视为遗留方案。