使超链接在新浏览器窗口中打开,以便于导航

使超链接在新浏览器窗口中打开,以便于导航

我使用 LaTeX 编辑新闻稿,但我发现hyperref它非常有限。我hyperref只使用一个参数:hidelinks。如果我点击\url新闻稿中的链接,URL 会在同一窗口中打开,但无法通过浏览器的“后退”按钮返回新闻稿。真烦人!我如何模拟 HTML 目标值功能并在新窗口中_blank打开?\url

答案1

pdfnewwindow该命令有一个选项\href。该选项不与该命令一起使用\url,但\url{URL}实际上相当于\href{URL}{\nolinkurl{URL}}

这意味着您可以像这样定义新命令:

\newcommand{\urlNewWindow}[1]{\href[pdfnewwindow=true]{#1}{\nolinkurl{#1}}}

然后说

\urlNewWindow{URL}

答案2

我的问题的答案是:hyperref没有指示 Web 浏览器从 PDF 文档在新选项卡中打开的功能。Adobe PDF 规范定义了一种从 PDF 文档打开新浏览器选项卡的方法,但 Adob​​e 提供的示例是 Javascript 实现,不适用于 LaTeX。

线程中的一个子问题:创建一个命令 - 使用\href- 在 PDF 文档中可点击的 Web 链接下放置一条彩色线而无需调用,\hypersetup解决方法如下:

\documentclass{article}  
\usepackage{xcolor}  
\usepackage[hidelinks]{hyperref}  
\newcommand{\click}[2]{\href{http://#1}{\colorlet{temp}{.}\color{blue}{\underline{\color{temp}#2}}\color{temp}}}  
\newcommand{\clicks}[2]{\href{https://#1}{\colorlet{temp}{.}\color{blue}{\underline{\color{temp}#2}}\color{temp}}}  
\begin{document}  
Please visit \click{www.disney.com}{Disneyland} and sign the visitors' book. 
This is how engineers make \clicks{www.youtube.com/watch?v=aX4Oi6pPOpQ}{tea}.  
\end{document} 

我已经说明了两个命令:\click对于普通http访问\clickshttps访问。可以通过更改协议指示符来创建其他协议的命令。更改下划线的颜色以满足您的需要。

使用这些命令的主要好处是能够在使用标准时以不同的方式处理不同的协议hyperref,例如,不带下划线的电子邮件地址,用彩色下划线突出显示的网址。另一个好处是这些命令不会更改背景字体。

答案3

鲍里斯的回答应该工作,但我敢说,我认为我们在中发现了一个错误hyperref,至少在hpdftex.def驱动程序中v6.83m(我还没有检查任何其他的)。

问题是该pdfnewwindow=true选项被忽略了。如果你在文本编辑器中检查输出的 pdf 文件,你应该注意到类似这样的内容:

/Subtype/Link/A<</Type/Action/S/URI/NewWindow true/URI(http://www.ieee.org/queensland)>>

具体来说,应该有一些内容说/NewWindow true,但它似乎不存在,除非我们先进行以下修补(基本上\Hy@SetNewWindow在适当的位置添加一个调用):

\documentclass{article}
\usepackage[hidelinks]{hyperref}
\newcommand{\click}[1]{\href[pdfnewwindow=true]{http://#1}{\nolinkurl{#1}}}
\makeatletter
\def\hyper@linkurl#1#2{%
  \begingroup
    \Hy@pstringdef\Hy@pstringURI{#2}%
    \hyper@chars
    \leavevmode
    \pdfstartlink
      attr{%
        \Hy@setpdfborder
        \ifx\@pdfhightlight\@empty
        \else
          /H\@pdfhighlight
        \fi
        \ifx\@urlbordercolor\relax
        \else
          /C[\@urlbordercolor]%
        \fi
      }%
      user{%
       /Subtype/Link%
       \ifHy@pdfa /F 4\fi
       /A<<%
         /Type/Action%
         /S/URI%
          \Hy@SetNewWindow
         /URI(\Hy@pstringURI)%
         \ifHy@href@ismap
           /IsMap true%
         \fi
         \Hy@href@nextactionraw
       >>%
      }%
      \relax
    \Hy@colorlink\@urlcolor#1\Hy@xspace@end
    \close@pdflink
  \endgroup
}
\makeatother
\begin{document}
In the meantime please keep yourself updated by visiting our website at \click{www.ieee.org/queensland}.
\end{document}

相关内容