更新 JabRef 2.7 中文版

JabRef 的中文版是我翻译的。但是好久没有关注邮件列表,偶然瞄到才发现又有新增的部分需要翻译。于是今天就花了些时间更新了一下中文翻译,将会集成到 JabRef 的 2.7 版本中。“抢先版”请看这里 ^_^

另外,在我 Windows 平台下的 JabRef 2.6 以后版本中,列表页中文文献名都显示为方框,由于下方细节中有正确显示,我也就没管它。但是 Linux 下却显示正常,这点让我比较好奇。今天才发现 Windows 平台下需要设置列表页字体为中文字体才能正确显示。这样看原来的显示正常到方框,大概与 Java 不同版本的默认字体设置有关系。

再另外,sourceforge 的 svn checkout 速度可是真慢啊!不知道是不是帝国的网络条件导致的。

ACM 图灵奖演讲论文集

今天尝试了一下 JabRef 论文数据库的 HTML 导出,将我搜集的 ACM Turing Award Lectures 的 BibTeX 信息输出到了这个页面

由于版权问题,无法给出 PDF 文件下载,但是每篇论文后面都给出了 DOI 链接,有 ACM 数据库访问权限的用户可以自己去下载。如果您是我的朋友且对此感兴趣且无法访问 ACM Portal,可以在 IM 上联系我索取 PDF 包(为个人学习、研究或者欣赏使用),Email 是不行的,因为太大了。

事实上,这个页面的大部分文章是收入《ACM Turing Award Lectures -- The First Twenty Years : 1966 to 1985》中的,中国的苏运霖教授翻译后出版了《ACM图灵奖演讲集:前20年》。

再为 JabRef 做个广告。我不知道其它的论文管理工具能否做这样的事情,不过 JabRef 输出的 HTML 页面真的很不错。我以后要是成为学术男,就用它来发布我发表的论文列表 :)

请测试 JabRef 2.4.3 中文版

JabRef 2.4.3(未发布)对中文用户的一大改进就是开始支持中文界面。中文化的工作本来是由另外一个朋友和我共同来做,但由于他工作繁忙,后来就是我一个人在进行了。

目前我已经翻译了大约 80% 的样子,菜单和选项窗口基本上都翻译完了,还剩下一些少用的选项和状态栏信息。因为水平有限,也并不能遍用 JabRef 的所有 feature,很多地方可能翻译的不合适,所以想找大家帮忙测试一下,给提些意见。(JabRef 使用问题请参考“文献管理软件 JabRef 快速入门”)

您可以在 http://share.solrex.org/ibuild/ 下载到编译好的 jar 文件,jar 文件以 JabRef-2.4.3-Chinese-编译日期.jar 格式命名。您可以使用

java -jar JabRef-2.4.3-Chinese-编译日期.jar

来执行它。

如果您已经安装 JabRef 2.4.2 版,您可以覆盖 JabRef 2.4.2 的 jar 来实现直接从原有快捷方式启动 JabRef 2.4.3,方法为:

Windows:

首先到您的 JabRef 2.4.2 安装目录,我们假设为:C:Program FilesJabRef,备份 JabRef-2.4.2.jar(修改文件名为另外的名字即可),然后将 JabRef-2.4.3-Chinese-编译日期.jar 拷贝到安装目录 C:Program FilesJabRef 下,修改文件名为 JabRef-2.4.2.jar,然后再执行 JabRef.exe 就调用的是 2.4.3 版本的 JabRef 了。

Linux:

sudo mv /usr/share/java/JabRef-2.4.2.jar /usr/share/java/JabRef-2.4.2.jar.bak
sudo cp JabRef-2.4.3-Chinese-编译日期.jar /usr/share/java/JabRef-2.4.2.jar
当然,您也可以修改软链接 /usr/share/java/jabref.jar 指向 JabRef-2.4.3-Chinese-编译日期.jar

启动 JabRef 2.4.3 之后,请到 Options->Preferences->General->Language 中选择 Chinese,然后重启 JabRef 才能进入中文界面。目前只有简体中文,但是我已经提请维护者增加并区分简体中文和繁体中文,大概会在以后添加。

您可以通过以下途径将有关翻译的意见反馈给我:
1. 评论这篇文章,任何人。
2. 在我侧栏的 Google Friend Connect 留言簿留言,需要 Google 或 OpenID 帐户。
3. 给我发送 Email,我的联系方式可以在导航栏的“关于我”链接中找到。

目前所有翻译都是我的工作,所以所有错误都该归我一个人身上。有您的帮助,我才能不将这个错误带给更多人,我将很感激您为此付出的时间和努力。

下面是中文版的一个截图:
JabRef 中文版界面

文献管理软件 JabRef 2.4.3 r2919

For JabRef version 2.4.2 with bug "Could not parse number of hits" (while searching ACM portal) fixed, please click here.

参考文献管理软件 JabRef 主页上的版本是 2.4.2,这个版本有一些 bug,最讨厌的就是无法在线搜索 ACM 论文库,老出现“Could not parse number of hits” 错误。

曾经用老版本的时候还没有这个问题,而 ACM 又是我常用的论文库之一。今天实在无奈了,就到 SF 上把 JabRef 最新的代码 check out 出来,用 ant 编译了一下,运行后发现这个 bug 解决了。因此我顺便打了个 jar 包和 deb 包,扔到了 http://share.solrex.org/ibuild/,有兴趣的同学自己去下吧。

注意:这个包基于 SVN 版本 r2919,不是 JabRef 官方发布,下载请注意,若有 bug,造成的后果请自负。关于此软件的使用方法,请看这里

PS:有同学报告说排序不可用,我试了一下,确实如此。而且虽然 2.4.3 貌似有中文的语言选项,但其实是不能选的。那我还是先解决 ACM 的问题吧,同时上传了 2.4.2 fix ACM 的版本,如果不愿意测试 2.4.3,可以选择这个。

DEB Packages of qRFCview and JabRef

由于最近的学习和研究有些不顺利,加上自制力过差,时间的利用上也是无法让自己满意,每每长吁短叹。今天下午心情格外不好,于是就回去闷头大睡到五点。幸好有女朋友劝慰,一通电话后感觉好多了。还是要有勇气,就像奥巴马一样,遇到挫折时吼一句:“Yes We Can!“

下午的时候利用工作时间打包了两个软件:qRFCview 和 JabRef,主要想着为了方便自己使用。反正时间已经浪费了,希望放出来能方便更多人吧。打包这两个软件的主要原因:

qRFCview:这是一个在 Linux 下看 RFC 文档的软件,输入 RFC 的编号就可以自动下载并格式化显示出来。这个软件已经两年多没有更新,想想当今世界两年时间会发生多少事吧!它在软件中限制 RFC 编号的范围是 1-5000,而现在 RFC 已经有 5389 个了,所以我就将这个范围扩大到 1-10000,重新编译了一下,打成 DEB 包,算是一个 bug fix 吧。

JabRef:这是一个文献管理软件,我曾经在博客中推荐过。它在 2008 年 11 月 1 号发布了 2.42 版,而 Ubuntu 软件仓库中的版本仍是 2.31,有很多特性不支持。所以我将新的 Jar 替换了旧的 Jar,重新打了一个 DEB 包。

这两个 DEB 软件包都可以在我的共享网站:http://share.solrex.org/ibuild/ 目录下找到。

文献管理软件 JabRef 快速入门

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

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

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 下载链接

聪明如你,肯定知道该怎么做吧。点开 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 版之后已经可以支持中文,中文界面是由我翻译的