'Automatically extract a bibitem in LaTex

I am writing a conference paper in which I am required to use the format \bibitem entries rather than a BibTeX file for the references. Google Scholar support BibTeX. Is there an automatic method or a tool to extract \bibitem?

Example: I have the references in BibTeX format as follow:

 @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}
}

and I want to convert BibTeX format into the following format (\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.


Solution 1:[1]

Since there is no other answer, this (not exactly automatic) way could be helpful :

  • Create a *.tex file with your bibliography in BibTeX
  • Compile as usual (latex/bibtex/latex)
  • In the directory of the *.tex file, open the *.bbl : all citations are converted in bibitem.
  • Copy/paste in your document

Source : http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2005-10/msg00552.html

Solution 2:[2]

I created this online bibtex converter, so it could convert your BibTeX text or file to bibitem.

Example:

 @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 output

\bibitem{rieck2011similarity}Rieck, K. Similarity measures for sequential data. {\em Wiley Interdisciplinary Reviews: Data Mining And Knowledge Discovery}. \textbf{1}, 296--304 (2011)

Solution 3:[3]

Well, I used this matlab function to convert it automatically one by one, its more easy to get the job done. You can download it from GitHub, and here is the matlab function as the following.

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 

Sample input:

@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.'

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 JReynaud
Solution 2 asouqi
Solution 3