原帖地址:http://blog.csdn.net/sdfgh2046/article/details/5791009

注:现在官方下载的版本也集成了中文界面,在Options->Preferences->General->Language中更改(此时我的版本是2.6稳定版)。

摘要:这篇博客主要介绍文献管理软件 JabRef 及其使用方法,适用对象为 LaTeX 用户、非 Windows 操作系统用户和用不起 EndNote 的 Windows 用户。

我曾经非常愚蠢地认为手工维护自己的参考文献库就可以了,但随着看过论文的增加,文献的管理成为一件痛苦的差事。最近才领略到使用文献管理软件的方便。 JabRef 的中文教程比较少而不全,所以就写了这篇博客,简要介绍一下这个软件的使用方法。

目录
1. 软件介绍
2. 建立数据库
3. 导入文献条目
4. 管理文献条目
5. 与 vim 结合使用
6. 其它应用
7. 结语

1. 软件介绍

JabRef 是一个开源的参考文献管理软件,使用 Java 语言编写,所以天生具有跨平台特性,通用于安装有 Java 支持的 Windows, Linux 和 Mac,软件主页在:http://jabref.sourceforge.net/ 。它可以很方便地管理下载到本机的文献,生成 BibTeX 文献数据库,供 LaTeX 或其它软件使用,可以与 Kile, Emacs, Vim, WinEdt 等多种软件结合使用。

JabRef 适合什么人使用?总的来说 JabRef 最大的特点就是使用 BibTeX 格式的数据库,所以它最适合 LaTeX 用户使用;如果仅仅使用它的管理功能,也可以用于本地电子书的管理;对于使用 M$ Office 写论文的用户来说,EndNote 是最好的选择,它能集成到 M$ Word 中,所以不推荐使用 JabRef。

JabRef 当前最新版本是 2.4.1,如果你发现自己的 JabRef 不支持某些特性,最好检查一下版本信息。本文使用 Linux 下的 JabRef 演示,其它系统下应该没有什么不同。

2. 建立数据库

JabRef 的文献数据库是纯文本的 bib 文件,可以将该数据库文件放在该主题文献的目录下。比如要建立一个 p2p 方向相关文献的数据库,只需建立一个 p2p 目录,在 JabRef 中选择 File->New Database,然后 Ctrl-s,将该数据库起名 p2p.bib,保存在 p2p 目录下。然后将 File->Database properties 中的 Database Encoding 设置为 UTF-8(这是因为论文的作者可能是法国人和我们会经常用中文写些注释,所以最好用国际化的字符集), Directory 都设置成点号 .(表示当前目录,这样你就可以将整个目录打个包,扔到另一台 Linux/Win/Mac 机器上照常使用)。

3. 导入文献条目

文献数据库的内容自然是一篇一篇的论文,每篇论文在数据库中占一条记录。那么如何添加论文呢?自然不必全部手工添加,几乎所有的数据库在提供论文下 载的同时都有该论文 citation 信息的下载,下面这张图上是计算机科学类常用数据库网站的 citation 下载链接示例。也许你以前不知道它们是做什么用的,但你总能在文章下载页面的某个地方找到它们。

聪明如你,肯定知道该怎么做吧。点开 citation 的链接,将内容保存为相应的文件名。比如 BibTeX 格式的 citation 信息,将其保存到名为 xxx.bib 的纯文本文件中,然后到 JabRef 里选择 File->Import into current database,将该文件导入当前数据库,你就会发现数据库中多了一条记录。当然,JabRef 支持很多 citation 信息格式,但是既然 JabRef 采用 BibTeX 格式管理数据库,我们还是尽量下载 BibTeX 格式的 citation。

每次只导入一条记录未免太麻烦了些,由于很多参考文献信息都是纯文本格式的,那么我们可以将很多条记录分段拷贝到 xxx.bib(或者 xxx.ris 等) 里,然后集中导入。

如果你已经下载到了论文的 pdf 文件,知道论文的标题名和数据库名,那么你就不用再去网站下载 citation 信息,可以直接在 JabRef 中用标题名搜索该论文。比如你知道论文标题叫做 A Survey of xxxxxxx,可以从 IEEEXplore 数据库中获得,那么你可以直接在 JabRef 中选择 Web search->Search IEEEXplore,然后用标题名搜索,点 Fetch,就可以直接得到 citation 信息(但搜索可能出现错误,那么你就需要用 Google Scholar 并且到论文网站上下载了)。

4. 管理文献条目

文献数据库的条目建立起来了,但是这只是一些 citation 和 abstract 信息,那么如何将下载下来的论文 pdf/ps 文件和它们对应的条目关联起来呢?

只需要将下载下来论文的文件名保存成特定的格式,一种方法是文件名中包含 BibTeXkey,如果是 A. Yao 在 2005 年发表的文章,文件名就起为 xxx-Yao2005-yyy.pdf;一种方法是文件名包含论文名。然后修改匹配规 则:Options->Preferences->External Programs->Use Regular Expression Search 文本框,比如在当前目录下匹配包含 BibTeXkey 的文件:“./.*[bibtexkey].*//.[extension]”,在当前目录下匹配包含论文名的文件:“./.*[title].*//. [extension]”,在子目录中匹配包含 BibTeXkek 的文件:“**/.*[bibtexkey].*//.[extension]”。如果我们把文献数据库 bib 文件和 pdf 文件放在同一目录下,只需要使用在当前目录下匹配即可。

文件名和匹配关系修改好了,那么我们就可以将论文记录关联到文件了。如果是一次导入很多文献,可以使用批量处理:Tools->Scan database->Sychronize file links,但是同步的时候不要选择 Check existing file links,那样会很慢;处理单一记录的方法是:双击某论文条目,或者选中后按 Ctrl-e,就可以编辑该条目。进入 General 选项卡,在 File 条目后面点 Auto,JabRef 就会按照匹配规则搜索匹配的文件,关联到该条目。如果能搜索到 pdf 文件,关联后该条目的前面会出现一个 pdf 图标,点击该图标,就可以直接打开该论文的 pdf 文件。除了自动匹配以外,也可以使用 Auto 旁边的 + 号手动添加文件。

当然了,文献条目的其它信息我们也可以编辑。比如 ACM 的 BibTeX 中往往不包含摘要信息,我们可以在 Ctrl-e 以后的 Abstract 选项卡中添加对应论文的摘要信息;Springer 的 ris 信息往往过于简单,我们也可以通过网页信息添加一些条目;如果你对某篇文献有深刻印象或者想记一下笔记,可以在 Review 选项卡中记录下自己的想法。

在一个文献数据库中,文献还可以分组。View->Toggle groups interface,可以新建、修改分组,这样有一个好处是可以将该数据库所属大方向的很多小方向分组浏览,对初期准备了解研究方向大致轮廓的研究人员很有帮助。

5. 与 vim 结合使用

前面说过,JabRef 可以和很多软件结合使用,但是有一些软件我并不熟悉,所以这里仅仅介绍一下 JabRef 和 vim 关联使用的技巧。

JabRef 是使用 vim server 和 vim 通信的,所以这要求双方使用同样的 vim server 名。在 JabRef 一端,Options->Preferences->External Programs->Vim Server Name 文本框中就是 vim server 名,你可以使用默认的 vim 服务器名 vim,也可以修改成任意名字,比如 solrexvim;在 vim 一端,编辑 LaTeX 文件时不要使用通常的命令启动 vim,要加上 vim 服务器名,比如 vim --servername solrexvim --remote-silent xxx.tex,这条命令的意思是:使用 vim 连接到服务器 solrexvim 修改 xxx.tex 文件,如果该服务器不存在,就创建它。

等 JabRef 和 Vim 都启动了以后,如果在编辑 tex 文件的时候想加入某条文献的引用,只需要在 JabRef 上方的工具栏中先选择出 Vim,然后再点击该图标,vim 光标所在位置就会自动加入该文献的引用。

6. 其它应用

总的来说,JabRef 的作用主要是参考文献管理工具,但是也可以使用它来做一些其它的工作,比如个人数字图书馆。每个人电脑里可能都有一些电子书,有的人特别多。为了查阅方 便,一般都会把电子书分门别类放到一个目录树中,每次找文件都要进到很深的目录下;有时候为了系统兼容性,避免使用中文文件名,理解一个文件对应哪本电子 书成为一件痛苦的事。如果使用 JabRef 作为文件管理工具,就可以根据作者,书名排序或者直接检索,会方便很多。

7. 结语

本文简要介绍了 JabRef 的基本使用方法。我也是刚刚接触这个软件,对其体会并不深刻,可能 JabRef 还有很多特性可以加以发掘,就留给大家一起探索吧。

2009年6月6日添加:JabRef 在 2.5beta 版之后已经可以支持中文,中文界面是由我翻译的 。

中文乱码在9.10下:

我尝试Google之,发现竟然没有一个类似的,能搜索到的全是文章开头描述的那种情况,而像我现在遇到的这种情况,搜索不到。有点想放弃解决这个 问题的念头,因为就这种情况也坚持用了一两个礼拜了。最近刚接触了IRC(一个国外用得非常广泛的即时交流工具,可以理解为国外的“QQ群”,就是一大群 人在一个聊天室里讨论问题),出于好奇进入了Ubuntu 官 方的IRC频道,当时就一个目的,厚着脸皮在这学习英语(我的英语相当烂,目前自我感觉是这样的,正常交流也是个问题,一句普通的话可能得想半天),就是 进去瞎逛,脑袋里想着,总得说点什么,感受感受吧,于是找我现在用的Ubuntu的问题。第一个问题我发出去没多久,马上就有一个素不相识的人询问我问题 详情,然后就是教我怎么做可能解决问题,虽然最终这个问题没有解决,但是给我留下了一个很好的印象,大家很友好,IRC秩序也不错,交流技术的气氛很浓, 互帮互助。后来我在用SmartSVN的时候想起了我的这个SmartSVN中文显示成上图那个样子的问题,于是马上就想到了到IRC上来问。没想到不到 10分钟的时候(中间还由于我描述的情况有误,绕了个弯路),解决了这个我两个礼拜一直容忍着的问题,还是跟第一次一样,问题发出去不久,马上就有一朋友 询问问题详情,接下去告诉我尝试做什么样的操作就可以解决这个问题。废话了那么多,貌似有些跑题,以下是解决的方法

sudo update-java-alternatives -s java-6-sun

这句命令的意思是,将默认的jvm改为java-6-sun,之前我装的jvm是java-6-openjdk的,可能问题就出在jvm的版本上。不清楚这个会不会对其它java程序产生影响,不过这已经暂时解决了我SmartSVN中中文无法查看的问题。

BTW:领略到社区的威力了。

jabref学习笔记相关推荐

  1. LaTeX 学习笔记(刘大成版)

    LaTeX \LaTeX LATE​X 学习笔记(刘大成版) 常用参考网站: 目录 LaTeX \LaTeX LATE​X 学习笔记(刘大成版) 1. LaTeX \LaTeX LATE​X的概述与安 ...

  2. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  3. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  5. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  6. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  7. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  8. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  9. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

最新文章

  1. Option Explicit 语句
  2. Python有哪些好用的语言翻译方法
  3. python中列表 元组 字典 集合的区别
  4. 如何开发出优秀的APICloud应用
  5. 数值计算算法-多项式插值算法的实现与分析
  6. 面向智能化软件开发的开源生态大数据
  7. (())、let、expr、bc等计算命令的使用语法和应用技巧
  8. linux 写一个包含test的脚本程序,linux的test命令及相关shell脚本详解
  9. Android开发笔记(一百二十九)使用变换图形
  10. UVA10652木板包装
  11. Vim 实用技术,第 1 部分: 实用技巧(转)
  12. amr转mp3,amr怎么转换mp3?
  13. 如何把多个pdf文件合并成一个?
  14. 让优秀成为一种习惯——笔录
  15. 为什么空集是集合的子集_空集是任何集合的子集对吗
  16. S3C2440原理图导读
  17. TIA博途S7-1200学习笔记——指令集
  18. ACM入门教程-线性递推
  19. 离散数学序关系求解最大/小元,极大/小元,上/下届,上/下确界
  20. 网络协议(二) Socket

热门文章

  1. datetimepicker http://www.bootcss.com/p/bootstrap-datetimepicker/
  2. 张泽华 android ppt,张泽华老师android视频PPT.ppt
  3. 【C++ 之 C++ 操作 json 文件(C++读写json文件)及jsoncpp配置详解】
  4. 主机上的Distributed Switch配置与vCenter Server中的配置不一样
  5. java向窗口添加菜单_Java基础之创建窗口——向窗口中添加菜单(Sketcher)
  6. 基于ARM平台下的GPRS/CQT测试系统设计研究
  7. 数学最高奖菲尔兹奖得主 Laurent Lafforgue 官宣加入华为!
  8. [4G5G专题-24]:架构-5G接入网协议栈规范
  9. 公链纷争:一项悬赏令背后的意图与尴尬 |链捕手
  10. 保存文件时提示‘拒绝访问’