仅当超链接是外部链接时才显示?

仅当超链接是外部链接时才显示?

我正在尝试制作一份文档,但我不需要 hyperref 来标记内部链接(因为文档只有几页长)。不过,我希望链接能显示在该点外部文档的 URL 和外部文件。我不希望出现公式、页码引用、脚注等。

我特别指的是链接周围出现的彩色边框(但不会打印)。

\documentclass{article}
\usepackage{hyperref}

\begin{document}
    Here's some test text with a footnote\footnote{Some text, but the footnote shouldn't show up as a link.}.

    \url{http://www.google.com} %this should show up as a link.

    \href{http://www.google.com}{Go to Google} %this should also show up as a link.
\end{document}

我无法hidelinks在选项中设置,然后设置urlbordercolor它似乎,我不知道如何将边框颜色设置为透明(或者我可以尝试将每种边框颜色类型设置为透明)。我也不知道urlbordercolor默认情况下蓝色是什么颜色,我真的很喜欢它,所以如果可能的话我宁愿不改变它。我确实从这个帖子urlbordercolor{0 1 1}默认的;我只是最初输入错了,所以我认为我错了。

我无法将链接边框改为全白,因为这会导致一些剪辑问题: 在此处输入图片描述

所以我认为如果我想改变这一点,链接就需要变得透明。

谢谢!

答案1

软件包中hyperref有一个附加包,名为,nohyperref它定义了 的所有命令,hyperref但使它们不执行任何操作。此包旨在完全禁用超链接,而不会在文档使用 定义的任何命令hyperref(例如\hyperref\phantomsection或任何书签命令)时导致错误。

正常加载后hyperref,您可以使用此包中的部分代码有选择地仅禁用您不想要的部分,即内部链接,而其他命令保持不变。

编辑:如评论中所述,您可能希望保留 pdf 中的锚点以允许外部链接。这仅适用于 pdf 中的链接(例如http://mirrors.ctan.org/macros/latex/contrib/hyperref/doc/manual.pdf#subsection.3.8直接链接到 hyperref pdf 手册的第 3.8 小节),而 LaTeX 中的“外部”引用(例如\input\includexr-hyper包)不受此代码的影响。

这种方法的 MWE:

\documentclass{article}
\usepackage{hyperref}
\makeatletter
% first six lines of nohyperref.sty
% keep anchors
%\let\hyper@@anchor\@gobble
\def\hyper@link#1#2#3{#3}%
%\let\hyper@anchorstart\@gobble
%\let\hyper@anchorend\@empty
\let\hyper@linkstart\@gobbletwo
\let\hyper@linkend\@empty
\makeatother

\begin{document}
\section{A section}
\label{mysec}
    Here's some test text with a footnote\footnote{Some text, but the 
    footnote shouldn't show up as a link.} 
    in Section~\ref{mysec} on page~\pageref{mysec}.

    \url{http://www.google.com} %this should show up as a link.

    \href{http://www.google.com}{Go to Google} %this should also show up as a link.
\end{document}

结果:

在此处输入图片描述

请注意,插入的代码可能会禁用过多或过少的功能,如果观察到任何意外影响,请仔细检查。

答案2

以下粗暴的黑客攻击似乎跟...共事

  • pdflatex —This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex)...LaTeX2e <2018-12-01>
  • xelatex —This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2019/dev/Debian) (preloaded format=xelatex)...LaTeX2e <2018-12-01>
  • lualatex —This is LuaTeX, Version 1.07.0 (TeX Live 2019/dev/Debian)...LaTeX2e <2018-12-01>

但我不能保证

  • 我并没有真正深入研究 hyperref-driver-files。

  • 评估 pdfborder 和 pdfborderstyle 之类的东西不仅与 pdf 版本和 pdf 规范有关,还与用于查看/显示相关 pdf 文件的程序如何工作有关:

    表 164 — 可移植文档格式 (PDF) 1.7 规范的所有注释词典共有的条目说 border-specification(pdfborder=...带有 hyperref 的 -thingie)是模式的

    [⟨horizontal corner radius⟩ ⟨vertical corner radius⟩ ⟨border width⟩[⟨length of dashes⟩ ⟨length of gap between dashes⟩]]
    ;破折号的规范是可选的;“默认用户空间单位”中指定的所有内容;便携式文档格式 (PDF) 1.7 规范的第 8.3.2.3 节用户空间表示默认情况下用户空间单位为 (1/72) 英寸,即根据第 10 章:TeXbook 的尺寸中所述为 1bp(=1 个大点)。(1bp = 1 个大点 = (1/72) 英寸;1pt = 1 个打印机点 = (1/72.27) 英寸。)

    如果我指定pdfborder={5 5 1 [3 2]},则意味着虚线;长度为 3bp 的虚线;长度为 2bp 的虚线之间的间隙;虚线的粗细为 1bp;垂直和水平方向的圆角半径均为 5bp。

    当使用 Chromium 版本 76.0.3809.100(Developer-Build)显示生成的 pdf 文件时,根本不显示边框。

    当使用 Firefox Quantum 69.0.2 显示生成的 pdf 文件时,会显示带有圆角的实线。

    使用 Okular 1.3.2 和 Adob​​e Acrobat Reader DC 版本 2020.012.20043 显示生成的 pdf 文件时,会显示虚线,没有圆角,但显示方角。

请注意,脚注仍然是一个链接,但没有被彩色边框包围。

\documentclass{article}
\usepackage{iftex}
\usepackage[colorlinks=false,
            %allbordercolors={},
            %citebordercolor={0 1 0},
            %filebordercolor={0 .5 .5},
            %linkbordercolor={1 0 0},
            %menubordercolor={1 0 0},
            %urlbordercolor={0 1 1},
            %runbordercolor={0 .7 .7},
            %pdfborder={0 0 1},
            %pdfborderstyle={/S/S/W 1}
           ]{hyperref}
\makeatletter
\Hy@AtBeginDocument{%
  \ifxetex
    \edef\@innerlinkbordercolor#1]{\@linkbordercolor]/BS<</S/S/W 0>>}%
    \def\@linkbordercolor{\@innerlinkbordercolor}%
  \fi
  \ifluatex\ifpdf
    \edef\@innerlinkbordercolor#1]{\@linkbordercolor]/BS<</S/S/W 0>>}%
    \def\@linkbordercolor{\noexpand\@innerlinkbordercolor}%
  \fi\fi
  \ifPDFTeX\ifpdf
    \edef\@innerlinkbordercolor#1]{\@linkbordercolor]/BS<</S/S/W 0>>}%
    \def\@linkbordercolor{\noexpand\@innerlinkbordercolor}%
  \fi\fi
}%
\makeatother

\begin{document}

    Here's some test text with a footnote\footnote{Some text, but the footnote shouldn't show up as a link.}.

    \url{http://www.google.com} %this should show up as a link.

    \href{http://www.google.com}{Go to Google} %this should also show up as a link.

\end{document}

在此处输入图片描述

相关内容