MacOS X:在 LaTeX 中插入本地文件的超链接(完整路径)?(仅适用于相对路径)

MacOS X:在 LaTeX 中插入本地文件的超链接(完整路径)?(仅适用于相对路径)

我想将外部 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 测试,我得出了以下结论

  1. 我假设 Skim 被定义为默认的 PDF 查看器,而 Preview 是默认的 PNG 和 JPG 查看器。

  2. \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}

  3. \href{file://absolute path to/calledfile.pdf}{link} 不适用于 Skim。例如:\href{file:///Users/altermundus/Desktop/Newton.pdf}{Newton.pdf absolute path}

  4. 可以使用\href{run:calledfile.pdf\href{run:calledfile.png,但调用的文件必须与初始 PDF 位于同一文件夹中。备注:使用 Skim 我们可以看到链接是:file://localhost/.../calledfile.pdf localhost/...是文件的绝对路径main.pdf

  5. 可能:\href{run:/tmp/file.pdf您需要将被调用的文件放在里面,tmp/ 被调用文件的路径是相对于main.pdf文件的: <path to the main file>/tmp/calledfile.pdf

  6. 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}并且只有 Adob​​e Reader 和 Adob​​e 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 文件,我需要用 Adob​​e Reader 打开第一个 pdf。这个问题似乎只存在于 Mac OS X 和 pdf 查看器中。

答案4

我找到了一个非常简短但非常棘手的解决方案。只需滥用良好且有效的相对链接即可:

\href{../../../../../../../../../../../../home/juve/phd/papers/my-linked-paper.pdf}{file}

我在我的 bib 文件中生成了这样的链接,现在可以快速从我的参考文献跳转到论文本身。

相关内容