我想在一些突出显示的文本中包含一个链接。突出显示当前由灵魂包但以下示例显示它返回了一堆警告并且无法呈现链接:
\documentclass{book}
% Package used for highlighting
\usepackage{soul}
% Link setup
\usepackage[ps2pdf]{hyperref}
\hypersetup{breaklinks=true, colorlinks=true, linkcolor=black, urlcolor=blue}
\usepackage[anythingbreaks]{breakurl}
\begin{document}
Link works here: \url{http://google.co.uk/}
Link within highlight fails: \hl{ Highlight \url{http://google.co.uk/} link }
\end{document}
包 hyperref 警告:重新运行以获取 /PageLabels 条目。
! 未定义的控制序列。l.14 当链接在突出显示内时抱怨:\hl {突出显示链接\url{http...
知道如何让链接出现在\hl
命令中吗?
答案1
该\url
命令很脆弱。以下内容有效。
\documentclass{book}
% Package used for highlighting
\usepackage{soul}
% Link setup
\usepackage{hyperref}
\hypersetup{breaklinks=true, colorlinks=true, linkcolor=black, urlcolor=blue}
\usepackage[anythingbreaks]{breakurl}
\begin{document}
Link works here: \url{http://google.co.uk/}
Complains when link is within highlight: \hl{ Highlight link \protect\url{http://google.co.uk/} }
\end{document}
答案2
似乎将强健的\hbox
命令包裹在命令周围\url
可以防止命令的脆弱性url
干扰hl
命令。这确实意味着 URL 不能在行之间中断,但目前只能这样做,除非有人能找到更好的解决方案。
\documentclass{book}
% Package used for highlighting
\usepackage{soul}
% Link setup
\usepackage[ps2pdf]{hyperref}
\hypersetup{breaklinks=true, colorlinks=true, linkcolor=black, urlcolor=blue}
\usepackage[anythingbreaks]{breakurl}
\begin{document}
Link: \url{http://google.co.uk/}
Link within highlight: \hl{Highlight \hbox{\url{http://google.co.uk/}} link}
\end{document}