23

I am a LaTeX really entusiastic newbie. Thus I am writing all my reports and articles using this wonderful tool. Unfortunately the editors of scientific review do not all have the same entusiasm concerning LaTeX. I plan to submit my future paper in the ICES Journal of Science which (fortunately or not) has a kind of LaTeX template available online (http://www.oxfordjournals.org/our_journals/icesjms/ices.zip) and guidelines available here (http://www.oxfordjournals.org/for_authors/latex.html).

My main problem is concerning bibliography. In all my writing I use biblatex with in the preamble:

\usepackage[style=authoryear,
firstinits=true,
uniquename=false,
uniquelist=false,
maxcitenames=2,
maxbibnames=7,
backend=biber]{biblatex}.

In the text I call citation using \autocite, \textcite, \citeauthor and \citeyear.

As requested by the journal I tried to convert my bibliography into a \bibitem list. I went to check the .bbl file as advised online but the structure seemed really complicated and nowhere \bibitem was mentionned. I found online some method that I managed to make work in my case by creating a dummy .tex file:

\documentclass{article}
\begin{document}
\nocite{*}
sdryfj
\bibliography{BIB.testbib.bib}
\bibliographystyle{plain}
\cite{NumR}
\end{document}

I run some compilation and got a .bbl file with \bibitems list. I thought I was seeing the end of it and paste this list in thebibliography environment at the end of my document.

Unfortunately all my citations references (\autocite etc..) seems to not be compatible with this different way of bibliography input. In addition, all the references are printed cited or not....

I was wondering if there is a way to reach the same results directly from biber biblatex so I would not have to modify my document too much...

Thank you for your help,

Xochitl C.

PS: I also tried to redefine commands like this but it did not work:

\renewcommand{\autocite}{\cite}

\renewcommand{\citeauthor}{\cite}

\renewcommand{\citeyear}{\cite}

\renewcommand{\textcite}{\cite}
3
  • 1
    A tip: If you indent lines by 4 spaces, they'll be marked as a code sample. You can also highlight the code and click the "code" button (with "{}" on it). You can also use backticks ` to mark your inline code as I did in my edit.
    – Adam Liter
    Jan 15, 2014 at 15:49
  • 1
    Does Biblatex: submitting to a journal help you? Unfortunately, the answer there is: It is quite complicated.
    – moewe
    Jan 18, 2014 at 8:33
  • Thank you for the thread. §Unfortunately it doesn't really help as my journal specify it wants the references with \bibitem structure and I dont think that's what the other code does. I did manage to convert my biblatex into bibitem but cannot deal with the reference in the text.... Any clue?
    – Xochitl C.
    Jan 20, 2014 at 9:19

2 Answers 2

20

I have found a somewhat more or less complex workaround, which I hope helps you at least a little bit. Consider this MWE, I will call main.tex

\begin{filecontents}{\jobname.bib}
@BOOK{testA,
author = {A. Uthor},
title = {A title},
year = {2014},
publisher = {A Company}
}
@BOOK{testB,
author = {B. Uthor},
title = {B title},
year = {2014},
publisher = {B Company}
}
@BOOK{testC,
author = {C. Uthor},
title = {C title},
year = {2014},
publisher = {C Company}
}
@BOOK{testD,
author = {D. Uthor},
title = {D title},
year = {2014},
publisher = {D Company}
}
\end{filecontents}

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=authoryear,
            firstinits=true,
            uniquename=false,
            uniquelist=false,
            maxcitenames=2,
            maxbibnames=7,
            backend=biber]{biblatex}
\addbibresource{\jobname.bib}

\begin{document}
Initial order in the bib file was A, B, C and D.

We will cite D\cite{testD} first, then A\cite{testA} and B\cite{testB} and C not at all.

You can refer to A\cite{testA} again.

    \printbibliography
\end{document}

This will result in

output of main.tex

I will assume your document will compile without error, so you can run the following command:

biber --output_format=bibtex main[.bcf]

This will create a file main_biber.bib in which all references are sorted according to the biblatex style you chose. Compare here.

Then create the following dummy.tex file:

\documentclass{article}
\begin{document}
\nocite{*}
\bibliography{main_biber.bib}
\bibliographystyle{unsrt}
\end{document}

Note: main_biber.bib was created automagically. Use unsrt to keep the order created by biber. See here.

Run the following commands: pdflatex dummy; bibtex dummy

Please see also here.

This will create a file dummy.bbl in the bibitem format. Clean your initial main.tex of all biblatex stuff and append dummy.bbl. For convenience this will be called newmain.tex and should look like this:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
Initial order in the bib file was A, B, C and D.

We will cite D\cite{testD} first, then A\cite{testA} and B\cite{testB} and C not at all.

You can refer to A\cite{testA} again.

\begin{thebibliography}{1}

\bibitem{testD}
D.~Uthor.
\newblock {\em D title}.
\newblock D Company, 2014.

\bibitem{testA}
A.~Uthor.
\newblock {\em A title}.
\newblock A Company, 2014.

\bibitem{testB}
B.~Uthor.
\newblock {\em B title}.
\newblock B Company, 2014.

\end{thebibliography}

\end{document}

It will then change to a numerical citation order, but I think that will be dealt with by the journal editors. Run pdflatex (at least twice) and you will obtain:

output of newmain.tex

Your document should then be ready for submission.

6
  • I just saw, that you still have to (re)define any biblatex citations you use to match \cite. Of course most/all of the perks of biblatex are removed by all of this. Jan 21, 2014 at 3:18
  • Hi! thank you for the help. 2 questions: What does mean : biber --output_format=bibtex main[.bcf]? I think it's some code used while using Linux but I am using Windows and do not really understand what to do. Is there a way to redefine biblatex citations to match \cite automatically without having to go trought the text? I try renewcommand but it was giving me errors. Thanks!
    – Xochitl C.
    Jan 21, 2014 at 8:43
  • 2
    What tools do you use in windows? They probably come with a build in terminal editor. You may be able to run biber from the commandline, which you can get with cmd (search in startmenu). 2) Because you have to remove all biblatex stuff, the \*cite commands are not available, you have to define them with \newcommand{\autocite}[1]{\cite{#1}} of course any biblatex functionality is lost therefore. Jan 21, 2014 at 10:31
  • Excellent post, thanks Martin. At the time of my comment\addbibresource{\jobname.bib} did not compile but \addbibresource{jobname.bib} did. That is, second backslash removed. Presumably this is due to a change in Biblatex processing. As a separate note: the environment beginning \begin{filecontents}{jobname.bib} can be placed after \end{document} without problems. Some of us will prefer to structure our document that way. May 9, 2016 at 4:30
  • 1
    @JohnBentley The command \jobname is a tex primitive (comp. here) and should simply use the name of your name file. You might just have forgotten the slash in the filecontents command. They do of course need to match. Also note that I am not using filecontents, only the built-in functionality. Therefore the environment has to go in the preamble. I personally only use this command for MWEs to make it more convenient to copy and try. May 9, 2016 at 4:50
6

In support of the accepted answer, I just wanted to add a test file for reference.

Basically, a bibliography can be compiled either with "plain" bibtex, or with biblatex with bibtex backend, or with biblatex with biber backend. In all three cases a .bbl file is produced - but in all three cases the format of the .bbl file is different!

\bibitem occurs in the .bbl file only when "plain" bibtex is used. (biblatex uses \entry, \strng, \field etc)

In this particular test file, there is no difference in (pdf) output between backends when biblatex is used - but there is a slight difference (e.g. quotation marks and capitalization in title, the "In:" ...) between the "plain" bibtex (left) and biblatex outputs (right, click for full res):

bibtest_01_plainbibtex bibtext_02_biblatex

The test file is this, let's call it bibtest.tex:

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}

@book{smith1,
  author={John Smith and Mike Someone},
  title={The book with a very very very very very long title},
  year={2006},
  location={New York},
  publisher={Publisher},
}

@article{audactor2005pflanzen,
  title = {Wie Pflanzen hören... die Geheimnisse der Sonobotanik},
  author = {Prof. Dr. Hortensia Audactor},
  journal = {Draft: \url{http://www.inventionen.de/2005/sonobotanik.html}},
  year = {2005}
}

\end{filecontents*}

\usepackage[utf8]{inputenx}
\usepackage[T1]{fontenc}
\usepackage{hyperref}

% btype: 1: bibtex ; 2: biblatex+bibtex ; 3: biblatex+biber
\ifx\btype\undefined %
  \def\btype{1} %
\fi
\ifnum\btype=2 %
  \usepackage[url=true,backend=bibtex]{biblatex} %
  \bibliography{\jobname} %
\fi
\ifnum\btype=3 %
  \usepackage[url=true,backend=biber]{biblatex} %
  \bibliography{\jobname} %
\fi

\begin{document}

Just testing the bibliography: the book \cite{smith1}, and the article \cite{audactor2005pflanzen}.

\ifnum\btype=1 %
  \bibliographystyle{plain}         % Style BST file
  \bibliography{\jobname}           % Bibliography file ('*.bib' )
\else % \btype=2 or 3
  %\bibliography{\jobname}           % for biblatex, only in preamble!
  \printbibliography %
\fi

\end{document}

% clean: rm $(ls --hide=*.tex)

Here are the steps and results of the compilation:

1. plain bibtex

# \btype=1
pdflatex bibtest.tex  # creates: .aux, .bib, .log, .out, .pdf
bibtex bibtest        # creates: .bbl, .blg
pdflatex bibtest.tex
pdflatex bibtest.tex

The produced bibtest.bbl file is:

\begin{thebibliography}{1}

\bibitem{audactor2005pflanzen}
Prof. Dr.~Hortensia Audactor.
\newblock Wie pflanzen hören... die geheimnisse der sonobotanik.
\newblock {\em Draft: \url{http://www.inventionen.de/2005/sonobotanik.html}},
  2005.

\bibitem{smith1}
John Smith and Mike Someone.
\newblock {\em The book with a very very very very very long title}.
\newblock Publisher, 2006.

\end{thebibliography}

2. biblatex and backend bibtex

pdflatex "\def\btype{2}\input{bibtest.tex}" # creates: .aux, .bib, -blx.bib, .log, .out, .pdf, .run.xml
bibtex bibtest                              # creates: .bbl, .blg
pdflatex "\def\btype{2}\input{bibtest.tex}" # biblatex Warning: Data encoding is 'utf8'. Use backend=biber.

The produced bibtest.bbl file is:

% $ biblatex auxiliary file $
% $ biblatex version 1.7 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated as
% required.
%
\begingroup
\makeatletter
\@ifundefined{[email protected]}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup

\entry{audactor2005pflanzen}{article}{}
  \name{author}{1}{}{%
    {{}%
     {Audactor}{A.}%
     {Prof. Dr.~Hortensia}{P.~D.~H.}%
     {}{}%
     {}{}}%
  }
  \strng{namehash}{APDH1}
  \strng{fullhash}{APDH1}
  \field{sortinit}{A}
  \field{title}{Wie Pflanzen hören... die Geheimnisse der Sonobotanik}
  \field{journaltitle}{Draft:
  \url{http://www.inventionen.de/2005/sonobotanik.html}}
  \field{year}{2005}
\endentry

\entry{smith1}{book}{}
  \name{author}{2}{}{%
    {{}%
     {Smith}{S.}%
     {John}{J.}%
     {}{}%
     {}{}}%
    {{}%
     {Someone}{S.}%
     {Mike}{M.}%
     {}{}%
     {}{}}%
  }
  \list{publisher}{1}{%
    {Publisher}%
  }
  \strng{namehash}{SJSM1}
  \strng{fullhash}{SJSM1}
  \field{sortinit}{S}
  \field{title}{The book with a very very very very very long title}
  \list{location}{1}{%
    {New York}%
  }
  \field{year}{2006}
\endentry

\lossort
\endlossort

\endinput

2. biblatex and backend biber

pdflatex "\def\btype{3}\input{bibtest.tex}" # creates: .aux, .bcf, .bib, .log, .out, .pdf, .run.xml
LANG=en_US.UTF-8 biber bibtest              # creates: .bbl, .blg
pdflatex "\def\btype{3}\input{bibtest.tex}"

The produced bibtest.bbl file is:

% $ biblatex auxiliary file $
% $ biblatex version 1.7 $
% $ biber version 0.9.9 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber or bibtex as required.
%
\begingroup
\makeatletter
\@ifundefined{[email protected]}
  {\@latex@error
     {Missing 'biblatex' package}
     {The bibliography requires the 'biblatex' package.}
      \aftergroup\endinput}
  {}
\endgroup


\refsection{0}
  \entry{audactor2005pflanzen}{article}{}
    \name{labelname}{1}{}{%
      {{hash=1d15dc798dec1fd384ab9a796ebab9f5}{Audactor}{A\bibinitperiod}{Prof.\bibnamedelimi Dr.\bibnamedelimi Hortensia}{P\bibinitperiod\bibinitdelim D\bibinitperiod\bibinitdelim H\bibinitperiod}{}{}{}{}}%
    }
    \name{author}{1}{}{%
      {{hash=1d15dc798dec1fd384ab9a796ebab9f5}{Audactor}{A\bibinitperiod}{Prof.\bibnamedelimi Dr.\bibnamedelimi Hortensia}{P\bibinitperiod\bibinitdelim D\bibinitperiod\bibinitdelim H\bibinitperiod}{}{}{}{}}%
    }
    \strng{namehash}{1d15dc798dec1fd384ab9a796ebab9f5}
    \strng{fullhash}{1d15dc798dec1fd384ab9a796ebab9f5}
    \field{sortinit}{A}
    \field{journaltitle}{Draft: \url{http://www.inventionen.de/2005/sonobotanik.html}}
    \field{title}{Wie Pflanzen hören... die Geheimnisse der Sonobotanik}
    \field{year}{2005}
  \endentry

  \entry{smith1}{book}{}
    \name{labelname}{2}{}{%
      {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\bibinitperiod}{John}{J\bibinitperiod}{}{}{}{}}%
      {{hash=51e9bdc59ecfdbdb5cf9ee7ecd37d83f}{Someone}{S\bibinitperiod}{Mike}{M\bibinitperiod}{}{}{}{}}%
    }
    \name{author}{2}{}{%
      {{hash=5d0ddda3a367ceb26fbaeca02e391c22}{Smith}{S\bibinitperiod}{John}{J\bibinitperiod}{}{}{}{}}%
      {{hash=51e9bdc59ecfdbdb5cf9ee7ecd37d83f}{Someone}{S\bibinitperiod}{Mike}{M\bibinitperiod}{}{}{}{}}%
    }
    \list{location}{1}{%
      {New York}%
    }
    \list{publisher}{1}{%
      {Publisher}%
    }
    \strng{namehash}{bdb6caeb721d71d176dbc1db99a48c69}
    \strng{fullhash}{bdb6caeb721d71d176dbc1db99a48c69}
    \field{sortinit}{S}
    \field{title}{The book with a very very very very very long title}
    \field{year}{2006}
  \endentry

\endrefsection
\endinput

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .