我正在撰写会议论文,其中我需要使用格式 \ bibitem 条目而不是BibTeX文件作为参考。 Google学术搜索支持 BibTeX 。是否有自动方法或工具来提取 \ bibitem ?
示例: 我有BibTeX格式的参考文献如下:
@article{rieck2011similarity,
title={Similarity measures for sequential data},
author={Rieck, Konrad},
journal={Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery},
volume={1},
number={4},
pages={296--304},
year={2011},
publisher={Wiley Online Library}
}
我希望将BibTeX格式转换为以下格式(\ bibitem):
\bibitem{rieck2011similarity} K.~Rieck, \emph{Similarity measures for sequential data},\hskip 1em plus 0.5em minus 0.4em\relax Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery, 2011.
答案 0 :(得分:3)
由于没有其他答案,这种(不是完全自动的)方式可能会有所帮助:
来源:http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2005-10/msg00552.html
答案 1 :(得分:1)
好吧,我使用了这个matlab函数来自动将其一次一转换,它更容易完成工作。您可以从GitHub下载它,以下是matlab函数。
function [bibitem] = bibtex2bibitem(bibtexpath)
path = bibtexpath;
cells = importdata(path);
A = string(cells);
n = length(cells);
K_name = strings(n,1);
citecode = extractBetween(A(1),'{',',');
for i = 2:1:n-1
rawleft = extractBefore(A(i),'=');
K_name(i) = strtrim(rawleft);
%--------------------------------------------------------------------
if strcmp(K_name(i),"author")
SVacI(1) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
author = strtrim(extractBetween(A(i),'{','}'));
else
author = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"title")
SVacI(2) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
title = strtrim(extractBetween(A(i),'{','}'));
else
title = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"journal")
SVacI(3) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
journal = strtrim(extractBetween(A(i),'{','}'));
else
journal = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"volume")
SVacI(4) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
volume = strtrim(extractBetween(A(i),'{','}'));
else
volume = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif (strcmp(K_name(i),"number"))||(strcmp(K_name(i),"issue"))
SVacI(5) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
number = strtrim(extractBetween(A(i),'{','}'));
else
number = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"pages")
SVacI(6) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
pages = strtrim(extractBetween(A(i),'{','}'));
else
pages = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"month")
SVacI(7) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
month = strtrim(extractBetween(A(i),'{','}'));
else
month = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"year")
SVacI(8) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
year = strtrim(extractBetween(A(i),'{','}'));
else
year = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
elseif strcmp(K_name(i),"publisher")
SVacI(9) = 1;
rawright = extractAfter(A(i),'=');
ccb = regexp(rawright,'}'); % ccb = [check curly bracket]
if (ccb~=0)
publisher = strtrim(extractBetween(A(i),'{','}'));
else
publisher = strtrim(extractBetween(A(i),'=',','));
end
%--------------------------------------------------------------------
else
msg = join(["Sorry!","[", K_name(i), "]","is not being handled by the program."]);
disp(msg)
end
end
%--------------------------------------------------------------------
% @-> Style reference term code varifications.
% msg = join(["author","=",SVacI(1);...
% "title","=",SVacI(2);...
% "journal","=",SVacI(3);...
% "volume","=",SVacI(4);...
% "number","=",SVacI(5);...
% "pages","=",SVacI(6);...
% "month","=",SVacI(7);...
% "year","=",SVacI(8);...
% "publisher","=",SVacI(9)]);
% disp(SVacI)
if all(SVacI(1)==0)||(SVacI(2)==0)||(SVacI(3)==0)||(SVacI(8)==0)
bibitem = sprintf('THE ARTICLE IS NOT CORRECT. THE AUTHOR, TITLE, JOURNAL AND YEAR SECTIONS ARE COMPULSORY! PLEASE INCLUDE THEM AND RE-RUN THE SOFTWARE:)');
elseif all(SVacI == [1 1 1 0 0 0 0 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/},(%s).',citecode,author,title,journal,year);
elseif all(SVacI == [1 1 1 0 0 0 0 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/},(%s). %s.\n',citecode,author,title,journal,year,publisher);
elseif all(SVacI == [1 1 1 0 0 0 1 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/},(%s %s).',citecode,author,title,journal,month,year);
elseif all(SVacI == [1 1 1 0 0 0 1 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/},(%s %s). %s.',citecode,author,title,journal,month,year,publisher);
elseif all(SVacI == [1 1 1 0 0 1 0 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, %s,(%s).',citecode,author,title,journal,pages,year);
elseif all(SVacI == [1 1 1 0 0 1 0 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, %s,(%s). %s.',citecode,author,title,journal,pages,year,publisher);
elseif all(SVacI == [1 1 1 0 0 1 1 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, %s,(%s %s).',citecode,author,title,journal,pages,month,year);
elseif all(SVacI == [1 1 1 0 0 1 1 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, %s,(%s %s). %s.',citecode,author,title,journal,pages,month,year,publisher);
elseif all(SVacI == [1 1 1 0 1 0 0 1 0])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s,(%s).',citecode,author,title,journal,number,year);
elseif all(SVacI == [1 1 1 0 1 0 0 1 1])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s,(%s). %s.',citecode,author,title,journal,number,year,publisher);
elseif all(SVacI == [1 1 1 0 1 0 1 1 0])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s,(%s %s).',citecode,author,title,journal,number,month,year);
elseif all(SVacI == [1 1 1 0 1 0 1 1 1])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s,(%s %s). %s.',citecode,author,title,journal,number,month,year,publisher);
elseif all(SVacI == [1 1 1 0 1 1 0 1 0])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s, %s,(%s).',citecode,author,title,journal,number,pages,year);
elseif all(SVacI == [1 1 1 0 1 1 0 1 1])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s, %s,(%s). %s.',citecode,author,title,journal,number,pages,year,publisher);
elseif all(SVacI == [1 1 1 0 1 1 1 1 0])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s, %s,(%s %s).',citecode,author,title,journal,number,pages,month,year);
elseif all(SVacI == [1 1 1 0 1 1 1 1 1])
disp("Attention! THE VOLUME HAS TO BE ASSOCIATED WITH NUMBER, PLEASE CHECK!")
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, No.~%s, %s,(%s %s). %s.',citecode,author,title,journal,number,pages,month,year,publisher);
elseif all(SVacI == [1 1 1 1 1 0 0 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s,(%s).',citecode,author,title,journal,volume,number,year);
elseif all(SVacI == [1 1 1 1 1 0 0 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s,(%s). %s.',citecode,author,title,journal,volume,number,year,publisher);
elseif all(SVacI == [1 1 1 1 1 0 1 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s,(%s %s).',citecode,author,title,journal,volume,number,month,year);
elseif all(SVacI == [1 1 1 1 1 0 1 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s,(%s %s). %s.',citecode,author,title,journal,volume,number,month,year,publisher);
elseif all(SVacI == [1 1 1 1 1 1 0 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s, %s,(%s).',citecode,author,title,journal,volume,number,pages,year);
elseif all(SVacI == [1 1 1 1 1 1 0 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s, %s,(%s). %s.',citecode,author,title,journal,volume,number,pages,year,publisher);
elseif all(SVacI == [1 1 1 1 1 1 1 1 0])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s, %s,(%s %s).',citecode,author,title,journal,volume,number,pages,month,year);
elseif all(SVacI == [1 1 1 1 1 1 1 1 1])
bibitem = sprintf('\\bibitem{%s} %s,``%s," {\\it %s\\/}, Vol.~%s, No.~%s, %s,(%s %s). %s.',citecode,author,title,journal,volume,number,pages,month,year,publisher);
end
clipboard('copy',bibitem);
disp('The bibitem has been copied to the clipboard!')
end
示例输入:
@article{hamid1969microwave,
title={Microwave pasteurization of raw milk},
author={Hamid, MAK and Boulanger, RJ and Tong, SC and Gallop, RA and Pereira, RR},
journal={Journal of Microwave Power},
volume={4},
number={4},
pages={272--275},
year={1969},
publisher={Taylor \& Francis}
}
Sample Output:
'\bibitem{hamid1969microwave} Hamid, MAK and Boulanger, RJ and Tong, SC and Gallop, RA and Pereira, RR,``Microwave pasteurization of raw milk," {\it Journal of Microwave Power\/}, Vol.~4, No.~4, 272--275,(1969). Taylor \& Francis.'
答案 2 :(得分:0)
在此处看到一个Python脚本,该脚本可以从 .bib 文件( BibTeX 格式)转换为 \ bibitem 格式:
答案 3 :(得分:0)
我创建了这个 online bibtex converter,因此它可以将您的 BibTeX 文本或文件转换为 bibitem。
示例:
@article{rieck2011similarity,
title={Similarity measures for sequential data},
author={Rieck, Konrad},
journal={Wiley Interdisciplinary Reviews: Data Mining and Knowledge Discovery},
volume={1},
number={4},
pages={296--304},
year={2011},
publisher={Wiley Online Library}
}
书目输出
\bibitem{rieck2011similarity}Rieck, K. Similarity measures for sequential data. {\em Wiley Interdisciplinary Reviews: Data Mining And Knowledge Discovery}. \textbf{1}, 296--304 (2011)