LaTeX插入含特殊参数的超链接运行报错如何解决
LaTeX插入含特殊字符超链接报错解决方法
- 首先确认导言区已经加载
hyperref宏包,该宏包建议放在所有导言区宏包的最后加载,避免出现兼容性冲突:
\usepackage{hyperref}
- 报错核心原因:你使用的URL中包含
&符号,这是LaTeX的内置保留字符,直接写入会被识别为宏参数分隔符或表格列分隔符,触发编译错误,可选择以下任意一种方案解决:
方案1:直接转义特殊字符
将URL中所有的&替换为转义后的\&即可正常编译,示例代码如下:
\href{https://www.bing.com/search?q=latex%20\&qs=n\&form=QBRE\&=Search%20%7B0%7D%20for%20%7B1%7D\&=Search%20work%20for%20%7B0%7D\&msbsrank=6_9_File_2\&sp=-1\&ghc=1\&pq=latex%20\&sc=9-6\&sk=\&cvid=9E08663E21964006BFBDECC6DB1F0884}{\textit{\textbf{\underline{Something Linky}}}}
方案2:预定义长链接(适合特殊字符较多的场景)
使用hyperref提供的\urldef命令预先定义链接,不需要手动转义特殊字符,示例代码如下:
% 可在导言区或正文前完成链接定义 \urldef{\bingsearch}\url{https://www.bing.com/search?q=latex%20&qs=n&form=QBRE&=Search%20%7B0%7D%20for%20%7B1%7D&=Search%20work%20for%20%7B0%7D&msbsrank=6_9_File_2&sp=-1&ghc=1&pq=latex%20&sc=9-6&sk=&cvid=9E08663E21964006BFBDECC6DB1F0884} % 正文区域直接调用定义好的链接即可 \href{\bingsearch}{\textit{\textbf{\underline{Something Linky}}}}
如果需要调整链接的默认样式,可在加载hyperref时添加对应参数,例如设置彩色链接、自定义链接颜色等,可根据实际需求调整。
内容的提问来源于stack exchange,提问作者Nour
相关产品推荐
相关产品推荐

