重新排序 Bibtex 记录日记帐分录中的逗号两侧

重新排序 Bibtex 记录日记帐分录中的逗号两侧

从网络下载 bibtex 记录时,大多数数据库都会用逗号列出日记条目,例如:

期刊={信息理论,IEEE 论文集}

但是,在参考文献中,需要将其中间不带逗号列出,在本例中为“IEEE Transactions on Information Theory”。我们是否需要手动编辑所有日记条目以删除逗号,或者是否有特定的 bibtex 命令可以为我们完成此操作?

如果是后者,那么使用从网络下载记录的参考管理系统将会非常有帮助。

答案1

您可以使用源映射进行搜索和替换。这些采用正则表达式,并将括号表达式(...)分配给$1$2、 ...\s*收集任何空格。因此搜索

 \s*(.+),\s*(.+)

(即空格某物=$1 逗号空格某物=$2)并替换为

 $2 $1

期刊领域内的内容正是您所需要的。

示例输出

\documentclass{article}

\usepackage[backend=biber]{biblatex}
\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
     \step[fieldsource=journal,match=\regexp{\s*(.+),\s*(.+)},replace={$2 $1}]
}}}
\addbibresource{ref.bib}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

ref.bib

@Article{Author:Title-One,
  author =   {Author, A.},
  title =    {Title One Title},
  journal =  {Information Theory, IEEE Transactions on},
  year =     2000
}

@Article{Author:Title-Three,
  author =   {Author, C.},
  title =    {Title Three Title},
  journal =  {Journal, Unknown},
  year =     2000
}

@Article{Author:Title-Two,
  author =   {Author, B.},
  title =    {Title Two Title},
  journal =  {Ord. J. Title},
  year =     2000
}

相关内容