我想将外部 pdf(保存在本地文件系统中)的超链接以及这些 pdf 的特定页面添加到 MacOS X 上的 LaTeX 文档中,然后使用 Skim.app(默认)打开它们。
我的问题是:如果 pdf 与 latex 文档位于同一路径并且我使用,它就可以工作\href{./filename.pdf}
(但是,该[page=2]
选项不起作用。)
但如果我尝试使用像\href{/Users/myaccount/folder/test.pdf}
或 这样的绝对路径{/Volumes/Data/folder/folder/test.pdf}
,单击 LaTeX 创建的 pdf 中的链接不会打开链接的文件。
我也尝试使用“ file:///Volumes/..
”和“ run:///volumes..
”,但不起作用。但是,我可以file:///Volumes/Data/Folder/file.pdf
在 Safari 中成功打开“ ”这样的链接!
我该如何修复它?
我在 OS X 10.6.5 上使用 TeXLive 2010pdflatex
进行编译。
最小示例:
\documentclass[11pt]{scrreprt}
\usepackage{hyperref}
\hypersetup{bookmarksopenlevel={2}, bookmarksopen = true,
colorlinks= false, linkbordercolor = 0 1 0.5, urlbordercolor = 0 0 1
}
\begin{document}
that works, but it opens on page 1 and not on page 3
\href[page=3]{run://test.pdf}{relative path}
that does not work:
\href[]{/Volumes/Daten/test.pdf}{absolute path}
\end{document}
答案1
经过几个小时的 Skim 测试,我得出了以下结论
我假设 Skim 被定义为默认的 PDF 查看器,而 Preview 是默认的 PNG 和 JPG 查看器。
\href{file://absolute path to/calledfile.png}{link}
与 Skim 配合使用效果很好,您可以使用 JPG 代替 PNG。示例:\href{file:///Users/altermundus/Desktop/bosch2.jpg}{jpg abs link}
或\href{file:///Users/altermundus/Desktop/Einstein.png}{png abs link}
但
\href{file://absolute path to/calledfile.pdf}{link}
不适用于 Skim。例如:\href{file:///Users/altermundus/Desktop/Newton.pdf}{Newton.pdf absolute path}
可以使用
\href{run:calledfile.pdf
或\href{run:calledfile.png
,但调用的文件必须与初始 PDF 位于同一文件夹中。备注:使用 Skim 我们可以看到链接是:file://localhost/.../calledfile.pdf
localhost/...
是文件的绝对路径main.pdf
。可能:
\href{run:/tmp/file.pdf
您需要将被调用的文件放在里面,tmp/
被调用文件的路径是相对于main.pdf
文件的:<path to the main file>/tmp/calledfile.pdf
。PDF 文件的新尝试。您可以使用以下名称
\href{run:myscript.sh}{myscript}
创建脚本文件名myscript.sh
\#!/bin/bash open -a skim /Users/altermundus/Desktop/Newto.pdf
此脚本必须是可执行的:
$ chmod +x /Users/altermundus/Desktop/myscript.sh
然后,main.pdf
你写入\href{run:myscript.sh}{myscript}
该脚本必须位于同一文件夹
main.pdf
或其子文件夹中。我的测试文件是:
% the file is compiled inside a folder named : myfolder % /Users/altermundus/myfolder \documentclass{scrartcl} \usepackage{graphicx} \usepackage{hyperref} \begin{document} % absolute path problem with pdf file \href{file:///Users/altermundus/Desktop/bosch.jpg}{bosch.jpg absolute path}\par % relative path \href{run:Einstein.png}{Einstein in the same folder}\par % myfolder/Einstein.png \href{run:tmp/Einstein.png}{Einstein in a subfolder}\par % myfolder/tmp/Einstein.png \href{run:texteinv.pdf}{Newton.pdf}\par % myfolder/Newton.pdf \href{run:bosch.jpg}{run:bosch.jpg}\par % myfolder/bosch.jpg \href{run:/tmp/myscript.sh}{Newton.pdf}\par % myfolder/tmp/myscript.sh % but myscript calls /Users/altermundus/Desktop/Newton.pdf \href{file:///Users/altermundus/Desktop/myscript.sh}{Newton.pdf absolute path}\par \end{document}
最后说明:仅使用预览功能,
\href[]{run:texteinv.pdf}{Newton.pdf}
并且只有 Adobe Reader 和 Adobe Acrobat Pro 能够打开\href{file:///Users/altermundus/Desktop/Newton.pdf}{Newton.pdf absolute path}
。
我等待克里斯蒂安霍夫曼(Skim 的作者)的答复。
答案2
我四处查找并找到了与您相同的信息:
\href{run:file.pdf}{file}
将在默认的 PDF 应用程序中打开 PDF\href{run:///global/path/to/file.pdf}
将尝试打开由以下路径点给出的文件当前的目录///global/path/to/file.pdf
附加了内容。显然该文件不存在,因此会出现错误。\href{file:///global/path/to/file.pdf}
在 PDF 中创建一个文件链接,位置为“Macintosh HD:Volumes:global:path:to:file.pdf”。请注意冒号。不过,我不确定这是否是正确的路径,因为在 POSIX 样式路径中,Volumes 排在第一位,然后是 Macintosh HD。无论如何,该链接不会打开任何内容。编辑:我在 Acrobat (Pro) 中打开了 PDF 以验证链接的位置。当我在 Acrobat 中手动编辑链接以打开我想要的文件时,位置被更改为“Macintosh HD:global:path:to:file.pdf”(无卷)。所以有些代理误写或误读了该位置。
我没有解决方案,但有一种解决方法是将目标文件的符号链接放入文档目录中。然后您可以使用\href{run:test.pdf}{local}
上面描述的语法。
答案3
我这样做
\href[]{file:///Users/ego/Desktop/bosch2.jpg}{absolute path}
Skim
这对于和 都适用Preview
,但是如果链接是 pdf 文件,我需要用 Adobe Reader 打开第一个 pdf。这个问题似乎只存在于 Mac OS X 和 pdf 查看器中。
答案4
我找到了一个非常简短但非常棘手的解决方案。只需滥用良好且有效的相对链接即可:
\href{../../../../../../../../../../../../home/juve/phd/papers/my-linked-paper.pdf}{file}
我在我的 bib 文件中生成了这样的链接,现在可以快速从我的参考文献跳转到论文本身。