只要不使用该选项,参考书目项目中带有%20
(代表空格)的 URL 就可以在该包中正常工作。如果使用该选项,Latex 会失败,并显示:hyperref
pagebackref
xxx.bbl:xx: Paragraph ended before \BR@@bibitem was complete,
即百分号不会自动转义,因此 URL 字段未正确终止。在 .bib 文件中使用反斜杠对其进行转义可以解决这个问题,但每次生成新的 .bib 文件时都需要手动操作。
还有其他方法可以解决这个问题吗?
梅威瑟:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@MISC{refID,
title="title",
url = {http://www.somesite.com/8%20report}
}
\end{filecontents}
\documentclass{article}
\usepackage[pagebackref=true]{hyperref}
\begin{document}
\cite{refID}
\bibliography{\jobname}
\bibliographystyle{IEEEtran}
\end{document}
答案1
在backref
活动状态下,文件中的整个书目记录.bbl
将被读取作为参数,因此所制作的类别代码技巧\url
不起作用。
但是, bib 样式提供了在参考书目开始时执行的IEEEtran
钩子;使用它将其变成可打印的字符。生成的文件不应该在后面有注释,至少就我所见是这样。\BIBdecl
%
.bbl
\BIBdecl
\begin{filecontents*}{\jobname.bib}
@MISC{refID,
title="title",
url = {http://www.somesite.com/8%20report}
}
\end{filecontents*}
\documentclass{article}
\usepackage[pagebackref=true]{hyperref}
\newcommand{\BIBdecl}{\catcode`\%=12 }
\begin{document}
\cite{refID}
\bibliography{\jobname}
\bibliographystyle{IEEEtran}
\end{document}