hyperref 包上的文本显示

hyperref 包上的文本显示

我在 overleaf.com latex 项目中有以下代码

%document class
\usepackage[unicode]{hyperref}
\begin{document}
 \href{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}
      {http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}
\end{document}

我知道格式是,\href{link}{text display}但文本显示部分不接受特殊字符。我也试过

\href{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}
     {\url{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}}

但我得到的是无效的 URL。此外,我尝试了

\href[http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf]
      {http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}

并再次收到错误。

我应该尝试什么?我想在 .pdf 输出中显示准确的网页链接。提前感谢您的帮助。

答案1

第二个参数中出现的~(波浪号)和(下划线)字符_\href造成了麻烦。事实上,任何TeX 特殊字符 —— 例如,&#,在 URL 字符串中会引起麻烦。

解决这个问题的一个方法是将 的第二个参数放入“包装器”\href\detokenize。这将删除 参数中所有字符的 TeX 特殊含义\detokenize

更好的方法是认识到由于的两个参数\href是相同的,因此可以\href用单参数指令替换双参数\url指令。

如果您加载包,则可以获得“更好的方法”的显著附加好处xurl,它允许轻松换行包含在 中的长 URL 字符串。重要的是,如果使用 ,\url{...}则无法保证 LaTeX 会找到令人满意的换行符。\href{<URL string>}{\detokenize{<URL string>}

下面的屏幕截图说明了这一点,其中显示了\href{...}{\detokenize{...}}和的输出\url{...}。(黑色垂直线表示文本块的边缘 - 请注意,第一个 URL 字符串突出到右边距。)

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc} % needed to render '_' characters
\usepackage{showframe}
\usepackage{xurl}
\urlstyle{same}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\begin{document}

\href{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}
     {\detokenize{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}}

\url{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}

\end{document}

答案2

首先,请发布一个可行的示例。发布代码片段会让用户难以调试。我认为错误在于文本显示中的“_”。

只需在文本显示参数中的“_”下划线前添加“\”即可更正它,并且可以正常工作。

\documentclass{article}
\usepackage{standalone}
\usepackage[unicode]{hyperref}
\begin{document}
\href{http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001_CoursePack_08.pdf}
  {http://www.cs.unc.edu/~tracker/media/pdf/SIGGRAPH2001\_CoursePack\_08.pdf}
\end{document}

在此处输入图片描述

相关内容