0

I'm using natbib and JabRef to produce the bibligraphy for my project.

It was working correctly, but after trying to enter the reference of a software (@software{, ), it started to give me this error, which has persisted, in which the references appear numerically.

Package natbib Error: Bibliography not compatible with author-year citations. ...mand\NAT@force@numbers{}\NAT@force@numbers

I fixed the bib file, as JabRef informed me that some authors were not spelled correctly, however it did not solve the problem.

The only thing I can think of is that in the name of the journal in some cases the message "abbreviation dettected" appears, since the diminutive of the journal matches the full name (Cell = Cell), but I don't know how to solve this, or if this is what is producing the error.

An example of a software bib entry:

@software{hadoop,
  author = {{Apache Software Foundation}},
  title = {Hadoop},
  url = {https://hadoop.apache.org},
  version = {0.20.2},
  date = {2010-02-19},
}

However, I don't have any software entry in my bib file right now, but the error keeps appearing.

I'm using:

    \bibliographystyle{apalike}

Below I list all the packages I'm using:

\documentclass[12pt, oneside]{article}
\usepackage[utf8]{inputenc} %Escribir en castellano.
\usepackage{mathptmx }%Adobe Times Roman (or equivalent) as default font
\usepackage{titlesec} %Selection from various title styles
\usepackage[letterpaper,left=3.5cm,right=3cm,top=3cm,bottom=3cm]{geometry} %control de tamaño de papel y márgenes
\usepackage{graphicx} %para poder incluir figuras 
\usepackage{siunitx} %para notación científica
\usepackage{float} %complemento para figura
\usepackage{import} %para poder dividir el texto en varios archivos
\usepackage{natbib} %para la bibliografía
\usepackage{setspace} \onehalfspacing %Control del espacio entre lineas
\usepackage{xcolor} %Para cambiar el color de texto
\usepackage{listings}
\usepackage{pgfgantt} %Diagrama de Gantt
\usepackage[spanish]{babel} 
\lstset{basicstyle=\ttfamily,
    showstringspaces=false,
    commentstyle=\color{red},
    keywordstyle=\color{blue}
}
5
  • Can you post an example of the bibliography with a `@software bib entry?
    – Guido
    Commented May 30, 2021 at 2:31
  • Already did @Guido
    – roybatty
    Commented May 30, 2021 at 9:30
  • @roybatty What \bibliographystyle are you using?
    – egreg
    Commented May 30, 2021 at 9:59
  • @egreg I'm using apalike
    – roybatty
    Commented May 30, 2021 at 10:19
  • The problem is probably that (most if not all) BibTeX styles cannot deal with a date field. The publication year must be given in the year field (the month field can be used to specify the month of publication, there is in general no day field). Since your style does not know date, it is simply ignored. But if there is no year, natbib can't do all of its magic.
    – moewe
    Commented May 30, 2021 at 11:42

2 Answers 2

3

There are several issues at play here.

Firstly, as mentioned in Christoph S's answer, your bibliography style apalike does not technically know the @software entry type. It will therefore fall back to @misc. (biblatex styles generally know @software since it is part of the standard data model there.) This need not be a big deal. You could switch to @misc to avoid a warning, or you could stick to @software for the more semantic name.

Secondly and more importantly, apalike (and I believe it is the same for all BibTeX styles) does not know the date field (again date is something from the biblatex world). BibTeX styles generally only have year and month fields. The following will compile

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{natbib}

\begin{filecontents}{\jobname.bib}
@software{hadoop,
  author  = {{Apache Software Foundation}},
  title   = {Hadoop},
  url     = {https://hadoop.apache.org},
  version = {0.20.2},
  year    = {2010},
  month   = feb,
}
\end{filecontents}


\begin{document}
Lorem \citep{hadoop}

\bibliographystyle{apalike}
\bibliography{\jobname}
\end{document}

Thirdly, and this is probably a minor point, apalike was not designed specifically to be used with natbib. That's why there not being a year causes an error. If you use a style from the natbib bundle like \bibliographystyle{plainnat} a missing year does not cause errors. In general you can use apalike and natbib together and usually you get good results, but this is one of the cases where there is a bit of an issue.

Note that neither of the styles suggested here knows the version field, so it will be ignored. If you want/have to stick to BibTeX, you may have to play around with the available fields like howpublished etc. to get good output for this entry.

Overall it looks like this entry was designed for biblatex.

1

@Software is from the biblatex software package which requires biblatex + biber as backend.

If you want to stick to BibTeX you need to change your bib entry to @Misc

1
  • 1
    @software is also a stock entry type in standard biblatex (see p. 13 of the biblatex documentation), biblatex-software is only needed for additional specialised software entry types and additional fields. All fields shown in the entry in the question will work absolutely fine with standard biblatex.
    – moewe
    Commented May 30, 2021 at 11:57

You must log in to answer this question.

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