我正在尝试包含指向 OneDrive 上某些代码的链接;该链接包含下划线,这导致了很多麻烦。
我尝试添加如下条目:
@misc{code,
title = {Code},
url = {https://1drv.ms/link_link}
}
我使用\usepackage{url}
和\bibliographystyle{IEEEtran}
。一切都编译正常,参考书目显示正确的条目。但是,如果您单击链接,它会打开一个页面https://1drv.ms/link
- 因此忽略下划线及其后的所有内容,从而导致错误的页面。即使从 PDF 复制和粘贴也不起作用,因为下划线被复制为空格,这又是一个断开的链接。
我该如何添加链接以便可以正确点击和复制?我尝试了、、、\_
不同的 bibtex 条目,但都没有用。而且所有相关的问题/答案都没有回答我的问题。\usepackage{underscore}
{{link}}
答案1
对于 IEEE 模板,使用文件时bib
,将下划线替换为{\_}
应该可以解决问题。对于以下问题:
@misc{code,
title = {Code},
url = {https://1drv.ms/link{\_}link}
}
答案2
只是为了正式回答并结束这个问题:正如 Ulrike Fischer 在评论中回答的那样,解决方案是使用\usepackage{hyperref}
(或\usepackage[hidelinks]{hyperref}
避免使用丑陋的框)和\usepackage[T1]{fontenc}
。这允许正确单击和复制粘贴带有下划线的 URL。
但事实证明,hyperref
在尝试将论文提交给 IEEE 时不允许使用包。所以我最终只是将 URL 更改为没有下划线的内容,使用谷歌(或者比特利因为 goo.gl 已经关闭)。
平均能量损失
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{code,
title = {Code},
url = {https://1drv.ms/link_link}
}
\end{filecontents*}
\begin{document}
\cite{code}
\bibliographystyle{IEEEtran}
\bibliography{\jobname}
\end{document}
结果
答案3
我不知道为什么,但是其他解决方案对我来说不起作用,但是这个却起作用了:
删除辅助文件(.bbl)
在 bib 文件中,将 url 替换为:
url = {{https://doi.org.123345\_6789}}
请注意,双花括号和非包围\_
。
答案4
我建议在 Latex 文件中使用源映射。这样,您就不需要调整 bib 文件或任何其他内容,例如,要转义下划线(unicode 中的符号 5F),可以使用以下命令:
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\step[fieldsource=url, match=\regexp{\x{5F}}, replace=\regexp{\\\x{5F}}]
}
}
}