xhsh的个人博客分享 http://blog.sciencenet.cn/u/xhsh

博文

Endnote向Bibtex格式的转换

已有 27815 次阅读 2012-2-13 21:11 |个人分类:Linux|系统分类:科研笔记| bibtex, 转换

    大多数人不会否认,Endnote是一个很好的文献管理软件,尤其对于用word写文章的人来说。我刚开始对它不怎么感冒,是因为我不知道它还可以输出为bibtex的格式,因为我工作在Linux下,用Latex写论文。后来终于知道了可以输出为bibtex格式,就对它产生了兴趣。然而我发现,转换后的bibtex文件,每条文献都没有Label,这就没法引用。手工一条一条加,可以,但不现实。到网上查别人是不是有办法,还真发现有人解决了这个问题。不过我还是喜欢自己动手,于是写了一个shell脚本,完成这种转换。怕忘了,就把从Endnote到BibTex的转换步骤写下来,以备后查:

 
1. 在Endnote的界面中,选择Edit->Output Styles->BibTex Export。如果没有BibTex Export,则先Edit->Output Styles->Open Style Mananger,找到Bibtex Export那一行,在前面的方框打上勾。另外此时还可以点击下面的Edit按钮,找到Bibliography-Templates,这里可以修改你要输出哪些信息,例如:作者,题目,刊物名称,卷号,页号,发表年份等等。这里最好修改一下,只输出自己需要的部分,不需要把全部信息都输出来。我们会发现,对于每类文献,第一个项目都是author,最后一个都是year。第一个项目和最后一个项目最好不要变。这样就可以利用我下面写的Linux脚本,给bibtex格式的参考文献添加Label。
 
2. 选择File->Export,输入你想输出的文件的名字,比如“ref_old.txt“。这时候,你会看到Output Style是BibTex Export。保存类型就选Text File(*.txt)。然后点保存。把这个文件ref_old.txt放到Linux操作系统的某个目录下。你会看到,这个文件里在每篇文献的“@article{”后是没有Label的。
 
3. 利用我所编写的shell脚本endnote_bibtex.sh,加上可执行属性,放到$PATH所包含的一个路径下,运行命令
 
endnote_bibtex.sh ref_old.txt
 
这时候,就会得到一个新的文件ref.bib。你会看到,这个文件里,每条参考文献都已经加上了Label了。
 
这里要说明一下,用我这个脚本得到的Label,由第一作者的姓、发表年和页号按“姓_年_页号”来构成。所以在你平时建立Endnote数据库的时候,一定要保证这三项是非空的,如果有一项是空的,转换为bibtex的时候就有可能出错。至于这三项是不是非空,你可以在Endnote Program分别按照这三个中的一个排序,如果是空的,会跑到最前面或者最后面,很快就能发现。如果哪一项空了,就补上。只要每条文献的这三项都是正确的,是肯定不会出错的。所以平时最好养成一个习惯,每导入一条文献,下面这些信息都要保证完整:作者、题目、杂志名称、卷号、页号和发表年。事实上,如果哪一条不完整,你在编辑latex文件的时候,也还要补充完整,还不如平时养成一个好习惯呢。
 
附件是我写的转换脚本。

endnote2bibtex.sh


这篇博文写完后,谢老师推荐了Mendeley这个文献管理软件。确实非常好用。只是在导出为bibtex的格式的时候,所有的信息全部导出来了,使得文件显得有点乱,label也不是我需要的。暂时还不知道如何只导出自己需要的信息。于是自己动手修改了上面的脚本,用于剔除一些不想要的信息。

mendeley2bibtex.sh

 

 


https://blog.sciencenet.cn/blog-47991-537062.html

上一篇:关于eps图形文件的一些处理
下一篇:inkscape中使用latex的设置
收藏 IP: 114.96.26.*| 热度|

1 王振亭

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 04:36

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部