批量修改论文参考文献

论文草稿再一次发给了教授,我再一次丰收,得到了一大堆修改意见。其中有几条是关于参考文献列表的。

我的教授对参考文献的要求极其严格,任何小毛病都逃不出他的法眼。举个例子吧,其中一条意见是:期刊的名称里不能一会儿用 and ,一会儿用 & 符号;单词首字母不能有时候大写,有时候小写;要一致。

图 1:某篇科技论文的参考文献列表(图片来源 http://library.humboldt.edu/infoservices/cited_references.jpg)

事实上,我把参考文献列表已经检查了好几遍了,但这个毛病的确没注意。仔细复查,还真是那么回事儿。比如 Agricultural and Forest Meteorology 这个期刊,在我的文献库里出现过多个版本:

Agricultural & Forest Meteorology
Agricultural & forest meteorology 
Agricultural and forest meteorology 

那就改吧。

长远来看,为了免除将来重复犯错而再次挨骂,我打算把文献库里几百篇论文都检查修改一下。但是,几百篇,这也太麻烦了。对于一个懒人来说,这时候我庆幸我用的是 Jabref 这个软件来管理我的文献库。由于 Jabref 的文献库是个简单的文本文件,只需用 vim 打开文献库文件,然后用正则表达式来查找替换一下,一条指令就全部搞定了:

%s/[aA]gricultural [^\s]* [fF]orest [mM]eteorology/Agricultural and Forest Meteorology/gc

如果不使用 vim 或者正则表达式,而只使用记事本最简单的查找替换功能,两次替换也就够了。这种方法可以满足很多关于批量修改参考文献的需求。结合 vim 在文本处理上的几乎无所不能的超能力,我相信,Jabref + vim 的组合,使成千上万文献信息的批量修改也都成为小菜一碟。

同类软件中哪个好用,这种话题往往引来无数不必要的口水战。很久以前,刚开始做科研时,我用 word 写论文,手动整理参考文献列表;后来学会了用收费的或盗版的 Endnote 来整理参考文献;再后来,我用免费正版的 Zotero 来替代 Endnote;现在,我最终抛弃了 Endnote 和 Zotero,投进了 Jabref 的怀抱。遇到上面所说的问题,在 Endnote 和Zotero 里我只能手动逐条修改,无聊,而且容易出错。而 Jabref 则在很大程度上避免了这些问题以及更多的问题(以后有时间再细说),并且是免费,跨平台。

一方面,Jabref 够简单,简单的东西容易长久;另一方面,Jabref 的功能足够用,够用了就不必见异思迁。我想,我基本上不会再换了。如果需要一个能跟随一生的文献管理软件,Jabref 或类似的软件将是最终的归宿。

注:这里为一些读者交代一下背景。一篇科技论文,里面会引用很多前人发表的论文,这些被引用的论文的标题、作者、期刊名称等信息要列在一起,作为新论文的一部分,叫做“参考文献”,就像图 1 那样。这个参考文献列表,可以手动一个字一个字敲进去,也可以用一些专门的计算机软件,从自己的文献数据库里调用需要的信息,按照指定的格式自动生成。我用的方法是后者。自己的文献库,是日常积累得到的,比如说,平时在阅读文献时,收集了 500 篇论文的信息保存在文献库里,而写某一篇自己的论文时只引用其中的 50 篇,那就借助软件把指定这 50 篇给挑出来,并自动整理成列表。文中所述的几个软件就是起这个作用。

批量修改论文参考文献》上有26条评论

  1. 马光

    参考文献、拼写等格式统一是最起码的要求呢。
    之前这些都摸索过,只是后来发现,对于史学论文,这些管理软件一般都不管用,因为牵涉到大量的注释,更要命的是有时候必须要中英文混杂使用。所以,最终还是用的word进行。

    回复
  2. Yang

    为什么会出现有的条目是&,有的是and?这样批量改,治标不治本啊,随着条目持续增加,必须定期修改一下吗?

    回复
    1. dapeng 文章作者

      历史原因造成的,主要是信息来源不同,有从 Endnote 或 Zotero 搬过来的,有从 Google Scholar 下载的,还有手动录入的。治本的不二法门就是平时存一条就检查一条,不然只好日后批量修改。

      回复
  3. 西木

    我用的是Mendeley自动生成的bibtex,也是经常有这个格式不统一的问题,然后得手动改,要命的是下次Mendeley自动sync的时候又给我改回去了。

    回复
    1. dapeng 文章作者

      同步功能本来是为了方便,有时候却平添麻烦。我放弃 zotero 的原因之一就是因为同步得不爽。Jabref 就容易多了,把文件夹丢到 Dropbox 里就好了。

      回复
  4. acheng99

    怎么把noteexpress的题录批量导出来呢?
    用了好几年的noteexpress了,建了很多文件夹和子文件夹,现在要转换出来,非常头疼

    还有,谁知道ubuntu下用什么网络笔记本比较好使?evernote的数据越来越大,打开越来越慢,而且。。。。最近转到ubuntu下以后,才发觉没有linux版本的evernote!!,iOS版都有,就是没有linux版。。。

    回复
    1. dapeng 文章作者

      noteexpress 我没用过,不过我知道 zotero 是可以导出 bibtex 格式,但也有一些问题。这就是我为什么不选别的文献管理软件的原因:太复杂。至于 ubuntu 下的笔记本,我以前用 nevernote,觉得还行,不知道现在有什么更新。

      回复
  5. dedream

    谢谢大鹏博士,刚去搜索了一下,nevernote更名为Nixnote了吗?网上口碑不怎么样,只是在linux下无奈的选择,win下用得顺手的软件真是不少。。。

    回复
    1. dapeng 文章作者

      好像是吧。我已经很久不用了。Windows 下更舒服,能不折腾就不折腾。

      回复
  6. dedream

    在ubuntu下,刚才用ibus输入中文,突然就死机了,这种情况遇到2次了,开源软件之间的兼容性真是个大问题

    回复
        1. dapeng 文章作者

          大概是因为我是在你收到了 rss 之后才设置的密码。我的 feedly 显示该帖的 Rss 阅读也同样需要密码。不管怎样,我也学你,就当给 rss 用户发福利了。

  7. acheng99

    在你加密前我读了你的博文,我在某年的cctv上见过小撒唱歌,而且唱的是刘欢的从头再来,当时把我震得,不过,话说你这个博文有加密的必要吗,我没想明白,哈

    btw:
    你的R系列博文写得真好,我才发觉以前我学不进去,是因为那些书讲得太不地道了,一上来就从头到尾,事无巨细的讲,直接没兴趣读下去,而你的博文,直接来个csv,file.choose,然后plot,summary,对于我这种种上计算机课老师只为了让考过一级、二级,而数学早忘光光的人,是无比期盼的,我才搞明白,R真是为不编程的人准备的利器。。。。

    回复
    1. dapeng 文章作者

      《会唱歌的男人》这个帖子的确没加密的必要。其实事情是这样的:我觉得这个帖子很无聊,照惯例想删掉或设为私密,但是偶然看见了个加密选项,从没用过,就想试一试好了。纯属好玩,别无他意。想看的可以输入密码 “dapengde.com”(不含引号)。

      R 菜鸟入门系列如果对你有帮助,那是非常令我高兴的事儿。就像 R 一样,很多优秀的软件工具,让人感觉阳春白雪遥不可及,其实也可以是下里巴人的,不是人家书写得不好,而是高手们忙着从事更高端的工作,没工夫去普及给菜鸟,所以我这种一瓶子不满半瓶子咣当的水平,才有机会写点东西出来。以后若有时间,我打算写更多类似风格的帖子试试看,比如 Jabref、LaTeX、Markdown 之类的。

      回复
      1. dedream

        非常期待,入门教程很重要,呵呵
        我断断续续接触*nix十来年了,一直入不了vim的大门,不知道vim能干什么,以前一直学着用emacs,因为emacs至少能让我等菜鸟打字,直到我今年无意中撞到酷壳上的vim简明教程,真的是简明,用作者的话来说,是给人上厕所时看的,然后终于开窍了。
        同样total commander我也是装了有卸,卸了又装,今年的某一天突然开窍,然后它就成了我必备的工具之一,ubuntu下也念念不忘,找到一个Krusader,和tc一模一样,哇哈哈

        回复
        1. dapeng 文章作者

          看来我们对这类软件的历程都是类似的。vim 和 tc 我都是在善用佳软的博客那里学的,受益匪浅,并且重度依赖,以致于连 Krusader 我也觉得用得不爽,后来想通了,不折腾,就回到 Windows 了

    1. dapeng 文章作者

      我那个张贴了一年了,只被请过一次,而且请客的还是我大学室友……看你的了。

      回复
        1. dapeng 文章作者

          显然大家对请你吃饭的热情更高,这就是人气博客啊。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax