这个问题之前曾被问过约塔姆安迪·托马斯 (Andy Thomas) 回答说他应该编辑该biber.conf
文件以便使用 biber 的正则表达式功能。
我尝试使用我的设置:biblatex
1.7.1;biber
并在 Kubuntu 12.04 上使用 LyX。我的主目录中没有任何.biber.conf
文件,所以我只创建了一个文件并写入其中:
<map>
<bibtex>
BMAP_OVERWRITE 1
<globalfield journal>
BMAP_MATCH Applies\sand\sEnvironmental\sMicrobiology
BMAP_REPLACE "Appl Environ Microbiol"
</globalfield>
</bibtex>
</map>
结果我根本没得到任何参考列表。
我的错误在哪里?
答案1
如果你看看 PLK 对你提到的问题,你会发现他提到了句法的有意变化。事实上,比伯已经从回答这个问题时的状态发生了很大变化。
现在有两种方法可以做到这一点。一种(我认为,适用于 0.9.7 之后的 Biber 版本,包括当前版本),是创建一个biber.conf
包含如下条目的文件:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<sourcemap>
<maps datatype="bibtex">
<map map_overwrite="1">
<map_step map_field_source="journal"
map_match = "Applied\sand\sEnvironmental\sMicrobiology"
map_replace = "Appl Environ Microbiol"/>
</map>
<map map_overwrite="1">
<map_step map_field_source="journaltitle"
map_match = "Applied\sand\sEnvironmental\sMicrobiology"
map_replace = "Appl Environ Microbiol"/>
</map>
</maps>
</sourcemap>
</config>
(注意:我已经更正了您的正则表达式,该表达式与“应用......”匹配,并使其适用于 journal 和 journaltitle 字段。)
另一种方法可以使用 Biblatex 2.0+ 和 Biber 1.0+(我强烈建议您升级到该方法)来实现,它允许您使用该工具在文档代码本身中,或者在 biblatex 配置或样式文件中执行此操作\DeclareSourcemap
。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{art1,
author = {Someone},
title = {Something},
journal = {Applied and Environmental Microbiology},
date = {1994},
pages = {100},
}
@article{art2,
author = {Someone},
title = {Something},
journaltitle = {Applied and Environmental Microbiology},
date = {1994},
pages = {100},
}
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex,overwrite=true]{
\map{
\step[fieldsource=journal,
match=\regexp{Applied\sand\sEnvironmental\sMicrobiology},
replace={Appl Environ Microbiol}]
\step[fieldsource=journaltitle,
match=\regexp{Applied\sand\sEnvironmental\sMicrobiology},
replace={Appl Environ Microbiol}]
}
}
}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
在每种情况下,尽管方法不同(一种是直接编写配置文件,一种是间接使用编写配置文件,\DeclareSourcemap
本质上说的是:查看journal
或journaltitle
字段,如果它们与正则表达式“Applied[space]and[space]Environmental[space]Microbiology”匹配,则将它们替换为“Appl Environ Microbiol”。