&
BibTeX(Ubuntu上的 TeX Live 2013)无法逃避网址.%
逃脱但没有&
。
例如我有以下参考:
@article{benson1975,
title = {The Interorganizational Network as a Political Economy},
volume = {20},
issn = {00018392},
url = {http://www.jstor.org/discover/10.2307/2391696?uid=3737664&uid=2134&uid=2129&uid=2&uid=70&uid=4&sid=21102581457607},
doi = {10.2307/2391696},
number = {2},
urldate = {2013-08-25},
journal = {Administrative Science Quarterly},
author = {Benson, J. Kenneth},
month = jun,
year = {1975},
pages = {229}
}
当我引用它时,bbl
文件保持&
完整,如下所示:
\htmladdnormallink{$<$http:\-/\-/www\-.jstor\-.org\-/discover\-/10\-.2307\-/2391696?uid=3737664&uid=2134&uid=2129&uid=2&uid=70&uid=4&sid=21102581457607$>$}{http://www.jstor.org/discover/10.2307/2391696?uid=3737664&uid=2134&uid=2129&uid=2&uid=70&uid=4&sid=21102581457607}.}
当我手动用LaTeX 替换&
里面的内容时,编译完美,所以我确信有一种方法可以逃避这个问题&它会像魔法一样发挥作用。\htmladdnormallink
\&
请注意,在 BibTeX ( ) 上转义 &\&
不起作用(在 URL 之外有效,但在 URL 中无效)。结果bbl
是 { \textbackslash
}&
而不是\&
:
\htmladdnormallink{$<$http:\-/\-/www\-.jstor\-.org\-/discover\-/10\-.2307\-/2391696?uid=3737664{\textbackslash}&uid=2134{\textbackslash}&uid=2129{\textbackslash}&uid=2{\textbackslash}&uid=70{\textbackslash}&uid=4{\textbackslash}&sid=21102581457607$>$}{http://www.jstor.org/discover/10.2307/2391696?uid=3737664\&uid=2134\&uid=2129\&uid=2\&uid=70\&uid=4\&sid=21102581457607}.}
如果有什么不同的话,我会使用:
\documentclass[
article,
11pt,
oneside,
a4paper,
english,
brazil
]{abntex2}
\usepackage{cmap}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{indentfirst}
\usepackage{nomencl}
\usepackage{color}
\usepackage{graphicx}
\usepackage[brazilian,hyperpageref]{backref}
\usepackage[alf]{abntex2cite}
\hypersetup{
pdftitle={\@title},
pdfauthor={\@author},
pdfcreator={\@author},
colorlinks=true,
linkcolor=blue,
citecolor=blue,
filecolor=magenta,
urlcolor=blue,
bookmarksdepth=4
}
答案1
因此经过一番摆弄之后,我找到了一个选项,可以将abntex2cite
url 包从 更改hyperref
为url
。
\usepackage[alf, abnt-url-package=url]{abntex2cite}
这解决了 的问题&
,但 又产生了 的相同问题%
。幸运的是,可以使用 进行转义\%
。其他特殊字符也可能发生同样的情况。
无论如何,当我检查时,.bbl
我注意到&
那里没有被转义,即使它可以编译:
\url{http://www.jstor.org/discover/10.2307/2391696?uid=3737664&uid=2134&uid=2129&uid=2&uid=70&uid=4&sid=21102581457607}.}
现在我不知道这个错误是否真的来自hyperref
(应该能够&
随着url
包一起逃逸)或者它是否是一个abntex2
错误。无论是哪种情况,我都检查了abntex2-alf.bst
包abntex2
,并能够通过在函数中间插入以下行来解决问题filter.url.tex
:
duplicate$ "&" = {pop$ "\&" } 'skip$ if$
我将在 bugtracker 上发布此错误并进行修复abntex2
。