我已经写了一段时间的数学课本,鉴于现在是 21 世纪,我希望这篇课本具有交互性和动态性,可能采用 PDF 格式。我希望实现的主要功能是一种“剧透文本”环境,用户可以单击按钮来显示原本折叠和看不见的内容。这可以用来隐藏练习答案或定理证明等。
我相信这可以通过使用嵌入在 LaTeX 中的某种形式的 Javascript 来实现。有人能给我指出一个可以让我实现这一点的参考资料吗?或者更好的是,向我解释一下我应该如何设计这个“剧透文本”环境?
答案1
好吧,这是一个丑陋的黑客,但如果没有其他办法,那么这个可以奏效。这是来自PracTEX 期刊,2006 年,第 4 期,文章修订于 2006/11/03,pdfTEX 的超文本功能,作者:Federico Garcia。
\pdfannot width w height h depth d { /Subtype /Text
/Contents (htexti)}
这是通过 pdfTEX 原语实现的,所以我不知道它是怎么回事。它会在文档中制作一张便条,单击即可查看文本。
指示:
w、h 和 d 这三个尺寸都是 LATEX 尺寸。但最重要的是 h(高度),因为它决定了注释相对于文本基线的位置。在其后使用 \qquad 也是一个好主意。
还要注意:这在 Adobe 中工作正常。但在 Sumatra PDF 中根本不起作用。好吧,注释出现了,但你无法点击它。所以这有点冒险(就此而言,javascript 也是如此,因为很多 PDF 阅读器出于安全原因避免使用它)。
文章中还有更多内容:
关于便利贴,需要注意的一点是,便利贴的具体行为(颜色、大小、打开时间、关闭方式等)并不是非常标准化,并且往往会因 Acrobat Reader 版本的不同而有所差异。也就是说,如果在 \pdfannot 的括号之间附加 /C [rgb],便利贴的颜色可能会有所不同;便利贴的标题由 /T(title)确定,并且如果 /Open true,便利贴可以默认显示为打开状态。
嗯,这是一种方法。虽然这种方法非常糟糕,但从技术上讲还是可行的。