从 .bib 条目中的 url 字段中删除反斜杠

从 .bib 条目中的 url 字段中删除反斜杠

我遇到的问题是.bib文件中带有反斜杠的 URL 无法正确链接。

我正在使用 Mendeley 生成一个 .bib 文件,该文件通过包导入并用于文档的参考文献部分biblatex

Mendeley 使用反斜杠转义 url 字段中的一些特殊字符(因此 _ 变为 \_)。据我了解,biblatex希望这些 url 不带转义字符。这很可能是导致问题的原因。

所以我认为没有一个干净的包选项可以告诉biblatex如何处理 URL 字段中的反斜杠。如果有的话,那将是解决问题的理想方法。

如果没有,我考虑对urlLaTeX 中的字段进行 for 循环并删除所有 '\'。但我对 LaTeX 编程还不够熟悉,无法做到这一点。

答案1

如果biber用作后端,解决方案是用来\DeclareSourcemap清理url

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=url,
        match=\regexp{\\_},
        replace=\regexp{_}]
    }
  }
}

答案2

要通过命令行执行此操作(以便包含在其他处理工具中),您可以执行一个简短的 python 脚本:

f=open("in.bib", "r")
for line in f:
    if "url" in line:
        print line.replace("\\_","_"),
    else:
        print line,

并像这样启动它:

python filter.py > out.bib

相关内容