使用 biblatex/biber 在参考文献列表中显示期刊缩写

使用 biblatex/biber 在参考文献列表中显示期刊缩写

这个问题之前曾被问过约塔姆安迪·托马斯 (Andy Thomas) 回答说他应该编辑该biber.conf文件以便使用 biber 的正则表达式功能。

我尝试使用我的设置:biblatex1.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本质上说的是:查看journaljournaltitle字段,如果它们与正则表达式“Applied[space]and[space]Environmental[space]Microbiology”匹配,则将它们替换为“Appl Environ Microbiol”。

相关内容