2013-02-21 29 views

回答

9

这是我找到的解决方案。

Bibutils在Ubuntu repos中提供,它提供了一些将BibTex转换为Word XML的工具,但Word在导入某些字段时出现了一些问题。这里有一些Python代码可以一次完成。到目前为止,我已经得到了它去为@article和@inproceedings项..

#THIS REQUIRES THAT bibutils IS INSTALLED ON YOUR MACHINE 

""" 
Usage: 
./Bib2Word2010XML.py [Input file name] [Output file name] 
""" 

import sys 
import fileinput 
import os 

if __name__ == '__main__': 
    #input a BibTex .bib file 
    fnameIN = sys.argv[1] 
    fnameOUT = sys.argv[2] 

    #run bibutils functions to convert to Word XML 
    os.system("bib2xml " + fnameIN + " > TEMPOUT1.xml") 
    os.system("xml2wordbib TEMPOUT1.xml > TEMPOUT2.xml") 
    os.system("rm TEMPOUT1.xml") 

    #clean up for Word 2010 formatting 
    f1 = open('TEMPOUT2.xml', 'r') 
    f2 = open(fnameOUT, 'w') 
    for line in f1: 
    line = line.replace("ArticleInAPeriodical", "JournalArticle") 
    line = line.replace("PeriodicalName", "JournalName") 
    line = line.replace("Proceedings", "ConferenceProceedings") 
    f2.write(line) 
    f1.close() 
    f2.close() 
    os.system("rm TEMPOUT2.xml") 
16

Java应用程序的JabRef是一个伟大的工具,我已经用它成功地到我的中文提供条目导出到XML和它们导入Word中2013年没有任何问题。

瞧瞧吧:http://www.jabref.org/

3

基于impala79s的回答这一个班轮为我工作使用MS Word 2007中 mybib.bib是我们要转换到Word 输入围兜文件格式和word.xml输出我们要保存wordbib格式的文件的名称。如上所述,您需要安装bibutils软件包。

bib2xml mybib.bib | xml2wordbib | sed -e 's/PeriodicalName/PeriodicalTitle/g' -e 's/>Proceedings/>ConferenceProceedings/g' > word.xml 

PS。您需要在计算机上安装bibutils包同样具有以上回答

1

基于Andreas Grivas脚本,我编写并分享了一个多文件围兜到xml(word compatible)转换器。您应该在包含您的.bib文件的文件夹中运行:

#this script convert a .bib file to xml file and to word xml file. 
#this script use bibutils tools. 


echo -e "===================\nscript to convert multiple .bib (bibtex)  files to word xml\n===================" 

echo -e "Settings\n===================" 

mypwd=$(pwd) 
output=$(pwd)/output 
echo -e "Path:\n$mypwd" 
echo -e "output folder:\n$output" 
mkdir -p "${output}" 

echo -e "===================\nProcessing" 
counter=0 
for file in *.bib; 
do 
    counter=$((counter+1)); 
    name=${file%.*}; 
    echo -e "=================== \n$file" 
    bib2xml $name.bib | xml2wordbib | sed -e "$mypwd" -e "$mypwd" > "$output/$name.xml" 
done 
echo -e "===================" 
echo -e "$counter .bib files were found.\nDone!"enter code here