在 LaTeX 文档中插入文档级 JavaScript 的最佳方法是什么

在 LaTeX 文档中插入文档级 JavaScript 的最佳方法是什么

我一直在考虑将工作中的一些表单转换为交互式表单。我尝试了一些韋斯特,但它们似乎有点过时了。这个想法非常吸引人。我正在寻找更新的信息、链接和指针。Beamer 使用 JavaScript 吗?

答案1

最近,德国新闻组 de.comp.text.tex 上也发布了类似的问题。

使用 pdfLaTeX 可以轻松在文档级别添加 JavaScript。用户定义的 JavaScript 函数可以作为 Action 字典(简单的 pdf 对象)添加到文档中。然后,必须使用 pdfTeX 原语 \pdfnames 将它们的名称映射到 PDF 目录中 /Names 字典的 /JavaScript 名称树中相应的 PDF 对象编号。最后,可以在任何接受 Action 字典的 PDF 对象(链接、小部件、页面等)中使用这些函数。所有这些都记录在 PDF 参考和 Acrobat 的 JavaScript 参考中:

这是一个可以作为起点的简单示例。其中,接受参数的文档级 JavaScript 函数用于两个链接的 Action 字典中:

\documentclass{article}

\immediate\pdfobj{<<
  /S/JavaScript/JS (someFunc=function(arg){app.alert('I say ' + arg);})
>>}
\edef\someFunc{\the\pdflastobj\space 0 R}

\immediate\pdfobj{<<
  /S/JavaScript/JS (otherFunc=function(arg){app.alert('You say ' + arg);})
>>}
\edef\otherFunc{\the\pdflastobj\space 0 R}

\pdfnames{
  /JavaScript <<
    %name tree mapping doc. level JavaScript functions to object numbers
    /Names [(someFunc) \someFunc (otherFunc) \otherFunc ]
    /Limits [(otherFunc) (someFunc)] %first and last in alphab. order
  >>
}

\begin{document}
   \leavevmode
   \pdfstartlink user {
      /Subtype /Link
      /A <<
        /S/JavaScript
        /JS (someFunc('Hello!'))
      >>
   }Hello!\pdfendlink

   \leavevmode
   \pdfstartlink user {
      /Subtype /Link
      /A <<
        /S/JavaScript
        /JS (otherFunc('Good bye!'))
      >>
   }Good bye!\pdfendlink
\end{document}

亚历山大

答案2

据我所知,Beamer 不使用 JavaScript。我没有直接回答 LaTeX 的问题,但有一些提示可能会有用。

ConTeXt 提供了一种包含任意 JS 的机制。请参阅小工具手册了解详情。ConTeXt 演示模块(s-pre-60 及以上版本)也使用 JavaScript 按顺序显示页面上的内容(与创建多个页面的 Beamer 不同),Paul Isambert 的讲师包(适用于纯 TeX、LaTeX 和 ConTeXt)。

相关内容