我正在尝试制作一份文档,但我不需要 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
或\include
或xr-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)是模式的
;破折号的规范是可选的;“默认用户空间单位”中指定的所有内容;便携式文档格式 (PDF) 1.7 规范的第 8.3.2.3 节用户空间表示默认情况下用户空间单位为 (1/72) 英寸,即根据第 10 章:TeXbook 的尺寸中所述为 1bp(=1 个大点)。(1bp = 1 个大点 = (1/72) 英寸;1pt = 1 个打印机点 = (1/72.27) 英寸。)[⟨horizontal corner radius⟩ ⟨vertical corner radius⟩ ⟨border width⟩[⟨length of dashes⟩ ⟨length of gap between dashes⟩]]
如果我指定
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 和 Adobe 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}