PDF 不只是静态页面,还可以包含附件、可切换的图层、动画,甚至媒体。LaTeX 通过一些小包提供这些功能。不过有一个前提:实际能运行到什么程度取决于 PDF 查看器(复杂功能常依赖 Adobe Acrobat,有些功能也因 Flash 停用而失效)。本页在这个前提下概览这些功能。
附加和嵌入文件
可以把文件嵌入 PDF 中。attachfile(以及改进版 attachfile2)的 \attachfile{file} 会放置一个可点击的回形针图标,\textattachfile{file}{link text} 则把任意文字做成链接。embedfile 的 \embedfile{file} 会在没有可见图标的情况下附加文件(例如把 .tex 源文件随 PDF 一起带上)。附件在许多查看器中都有较好支持。
\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 中工作;其他查看器可能只显示初始状态。
\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 等)中运行,比嵌入视频更可移植。
\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 视为遗留方案。