从网络下载 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
}