\usepackage{breakurl} 和带有“)”的 URL 不起作用

\usepackage{breakurl} 和带有“)”的 URL 不起作用

参见以下两个文件:paper.bib 和 test.tex

1)

%\usepackage{breakurl}

=> 可以正常工作,但网址太长 - 应该中断一下

2)

\usepackage{breakurl}

=> 有效

=> 但如果网址中有“(”或“)”(数字应该不同)(参见 paper.bib),则不起作用

error: Error: /syntaxerror in -file-
Operand stack:
   BU.L   (http://www.website.com/define.php?term=2)
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1930   1   3   %oparray_pop   1929   1   3   %oparray_pop   1913   1   3   %oparray_pop   1803   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push
Dictionary stack:
   --dict:1174/1684(ro)(G)--   --dict:0/20(G)--   --dict:80/200(L)--   --dict:102/300(L)--   --dict:45/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
MiKTeX GPL Ghostscript 9.05: Unrecoverable error, exit code 1

在 url 中我也尝试过\)- 但不起作用

我做错了什么 :(?有人能解决这个问题吗?谢谢

测试.tex

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{makeidx}
\usepackage{hyperref}
%\usepackage{breakurl} ------------- without % it doesnt work

\usepackage[hyperref,sortcites=false,style=authoryear,bibstyle=authoryear,minnames=1,maxnames=999,backend=bibtex,sorting=nyvt]{biblatex}
\bibliography{paper}

\begin{document}
  I hereby cite \cite{abc}.

\printbibliography
\printindex

\end{document}

论文集

@misc{abc,
  author = {{UB}},
  title = {{abc}},
  year = {2014},
  note = {\url{http://www.website.com/define.php?term=2222222222222222222222222222222222222222222)}},
}

答案1

biblatex可以很好地控制断开的 URL,没有使用breakurl包。特别是,您可以设置biburlnumpenalty为非零数字以允许数字后中断。它是一个计数器,因此使用例如\setcounter{biburlnumpenalty}{10}

示例输出

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{makeidx}
\usepackage{hyperref}

\usepackage[hyperref,sortcites=false,style=authoryear,bibstyle=authoryear,minnames=1,maxnames=999,backend=bibtex,sorting=nyvt]{biblatex}
\bibliography{paper}

\setcounter{biburlnumpenalty}{10}

\begin{document}
  I hereby cite \cite{abc}.

\printbibliography
\printindex

\end{document}

请参阅biblatex文档biburl对于可以设定的其他处罚。

相关内容