0

I want to use the biblatex instead of natbib with the elsarticle class. There is an option to that (with nonatibib) according to elsarticle.cls documentation.

The problem came when I want to use it with the 3p and 5p options (which they allow to use double-column style).

I have seen a solution with this answer, but

  • it has been done without the nonatbib option,
  • and it is not recommended to be used in a publication.

However, I want to use it for publication.

here is my working example:

\documentclass[nonatbib,5p,twocolumn]{elsarticle}

\makeatletter \let\c@author\relax \makeatother

\begin{document}
hello world! \end{document}

the 3 lines in the preamble have been added according to this answer but I still get this error

Undefined control sequence. \global\bibsep

You can't use a prefix with `the character ='. \global\bibsep=

Missing \begin{document}. \global\bibsep=

Talha
  • 25
  • 1
    Note that no solution that lets you use biblatex with elsarticle is recommended for publication (unless Elsevier editors specifically tell you otherwise): elsarticle uses natbib and includes matching .bst styles for a reason. The workflow for biblatex is quite different than the workflow with a classic BibTeX bibliography. Very few publishers accept biblatex. See also https://tex.stackexchange.com/q/12175/35864. – moewe Jan 13 '20 at 17:20
  • I only just read the "However, I want to use it for publication.", so I added this warning to my answer as well. – moewe Jan 13 '20 at 17:26

1 Answers1

2

Warning! Unless Elsevier editors or journal staff explicitly tell you otherwise, I strongly recommend against using biblatex for submissions to Elsevier (with elsearticle or any other class). elsarticle loads natbib and includes matching BibTeX styles for a reason. The workflow for biblatex is quite different than the workflow with a classic BibTeX bibliography. In general very few publishers accept biblatex. See also Biblatex: submitting to a journal.

Just use natbib and one of the styles recommended in the bibliography. It is unlikely you will need any of biblatex's advanced features to satisfy journal requirements. And adding fancy stuff that is not common in publications in that journal might not be a great idea anyway (journals like consistency).

Caveat emptor

There are three instances of

\global\bibsep=0pt

in elsarticle.cls.

Unfortunately, these lines fail with the error you describe, when \bibsep is not defined. Usually \bibsep is defined by natbib, but since the MWE doesn't load that package (thanks to nonatbib) the length ends up being undefined.

If the class supports not loading natbib with nonatbib it should probably make guard assignments to \bibsep to make sure it only uses the macro when it is actually defined.

This should be reported as a bug to the elsarticle maintainers.

In the meantime the following MWE compiles fine again

\newlength{\bibsep}
\documentclass[nonatbib,5p,twocolumn]{elsarticle}

\makeatletter \let\c@author\relax \makeatother

\begin{document} hello world! \end{document}

since the \newlength{\bibsep} makes sure the length is defined.

moewe
  • 175,683
  • My reason of wanting to use biblatex instead of natbib is the amount of freedom you have with biblatex's options, especially disabling the url option that I strongly need. Although there are some solutions that deals with this using the natbib package, but they are kind of "tweeks" and not "a really stable solution". Therefore, It seems that I have to stick with using natbib any way! – Talha Jan 14 '20 at 07:38