我知道可以使用书签打开 PDF 文件。但是是否可以通过点击书签来打开非 PDF 文件?
我已经阅读了所有文件超链接和书签包,但找不到任何信息或示例。
我猜这是可能的,因为 Acrobat 可以让你做到这一点...我只是不知道如何使用 Latex 来做到这一点。
编辑:非 PDF 文件使用 \embeddedfile 嵌入,可以在 PDF 附件中找到。
答案1
该包bookmark
还支持书签中的 URI 操作,可用于链接到其他文件或 URL。
\documentclass{article}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{open,numbered}
\begin{document}
\section{Hello World}
\bookmark[
level=subsection,
uri={https://tex.stackexchange.com/},
]{URI: TeX.SX}
\end{document}
但是,这取决于 PDF 查看器对其的支持程度。
打开嵌入的文件
感谢 Max Wyss评论,该示例可以扩展。嵌入example-image.png
来自包的文件mwe
并创建书签,将文件保存到临时位置并根据 PDF 查看器和操作系统配置打开文件。打开文件之前可能会发出安全警告。AR 关闭时会删除临时文件。
如果参数nLaunch
设置为0,则仅保存文件。如果值为1,则保存并启动文件。
cDIPath
当文件被永久保存时,除非参数设置为与当前文档无关的绝对路径或相对路径,否则会要求用户提供一个位置。
看“Acrobat 的 JavaScript API 参考”更多细节。
\documentclass{article}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{open,numbered}
\usepackage{embedfile}
\begin{document}
\section{Embedded example image}
\embedfile[
id={example-image},
desc={example image from package mwe},
]{example-image.png}
\bookmark[
level=subsection,
rawaction={%
/S/JavaScript/JS(%
this.exportDataObject({cName: "example-image.png", nLaunch: 2})%
)%
},
]{Embedded: example-image.png}
\bookmark[
level=subsection,
uri={https://tex.stackexchange.com/},
]{URI: TeX.SX}
\end{document}