[Tex/LaTex] Is it possible to have several entries in a bibtex-date field

biblatexbibtex

My documents are often referring to articles that span several issues of the same journal, as in the following example. In building the file, biber complains that this would not be a correct date format and accordingly, the date is omitted from the reference output.

This is kind of an expected behaviour since the bibtex date format has to be YYYY-MM-DD, as I understand it.

But: is there a way to include several dates for an article?

Here is the example:

@ARTICLE{Lazarus1856,
  author = {Lazarus},
  title = {Hebräische Poesie},
  journal = {Literaturblatt des Deutschen Kunstblatts},
  volume = {3},
  year = {1856},
  pages = {6-8, 11-12},
  number = {2,3},
  date = {1856-01-24,1856-02-07},
  timestamp = {2011.12.12}
}

I'm using JabRef, TexLive, Kile, XeLaTex, Biblatex-Biber.

Best Answer

There is no way to add multiple dates to any of biblatex's standard date fields. date fields must be populated in ISO 8601/EDTF format and Biber will ignore malformed fields. That means you can add a date span (interval), but that is not what we want here.

Normally, a work is published on one specific date and there is no need for multiple dates. One of the few cases where this is actually a problem is in cases of multiple instalments of an article or multi-volume books. biblatex can deal with multi-volume books quite well out of the box, so we will focus on adding a similar support for series articles.

We will have a look at how biblatex handles multi-volume books first. In biblatex-examples.bib you will find

@book{knuth:ct:related,
  author       = {Knuth, Donald E.},
  title        = {Computers \& Typesetting},
  date         = {1984/1986},
  volumes      = 5,
  publisher    = {Addison-Wesley},
  location     = {Reading, Mass.},
  sortyear     = {1984-0},
  related      = {knuth:ct:a,knuth:ct:b,knuth:ct:c,knuth:ct:d,knuth:ct:e},
  relatedtype  = {multivolume},
}

And then separate entries for all the volumes knuth:ct:a etc.

Some time ago there was a feature request about this on the biblatex bugtracker. We will follow the idea there. Analogously to the multivolume approach above we create a relatedtype serialarticle. For related serialarticles only volume, number, (eid, issue), date and the pages are printed (of course this could be extended to print additional fields, such as DOIs and URLs).

\DeclareFieldFormat{related:serialarticle}{#1}
\renewcommand*{\relateddelim}{\adddot\par\nobreak}
\newcommand*{\relateddelimserialarticle}{\addcomma\space}

\newbibmacro*{related:serialarticle}[1]{%
  \entrydata{#1}{%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \iffieldundef{pages}
    {}
    {\setunit{\bibpagespunct}%
     \printfield{pages}}}}

Your example then would look like this

@article{Lazarus1856,
  author      = {Lazarus},
  title       = {Hebräische Poesie},
  journal     = {Literaturblatt des Deutschen Kunstblatts},
  volume      = {3},
  date        = {1856},
  related     = {Lazarus1856-1,Lazarus1856-2},
  relatedtype = {serialarticle},
}
@article{Lazarus1856-1,
  crossref  = {Lazarus1856},
  pages     = {6-8},
  number    = {2},
  date      = {1856-01-24},
  options   = {dataonly},
}
@article{Lazarus1856-2,
  crossref  = {Lazarus1856},
  pages     = {11-12},
  number    = {3},
  date      = {1856-02-07},
  options   = {dataonly},
}

It consist of a "main" entry that contains the invariants (author, title, also volume, should also have a date/year) and two dataonly entries for the actual parts that contains the number, date and pages (we also crossref it back to Lazarus1856 such that the two entries could also stand on their own). The main entry relates back to its parts just like a multi-volume book does

  related     = {Lazarus1856-1,Lazarus1856-2},
  relatedtype = {serialarticle},

MWE

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=authortitle,backend=biber]{biblatex}

\DeclareFieldFormat{related:serialarticle}{#1}
\renewcommand*{\relateddelim}{\adddot\par\nobreak}
\newcommand*{\relateddelimserialarticle}{\addcomma\space}

\newbibmacro*{related:serialarticle}[1]{%
  \entrydata{#1}{%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \iffieldundef{pages}
    {}
    {\setunit{\bibpagespunct}%
     \printfield{pages}}}}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{Lazarus1856,
  author      = {Lazarus},
  title       = {Hebräische Poesie},
  journal     = {Literaturblatt des Deutschen Kunstblatts},
  volume      = {3},
  date        = {1856},
  related     = {Lazarus1856-1,Lazarus1856-2},
  relatedtype = {serialarticle},
}
@article{Lazarus1856-1,
  crossref  = {Lazarus1856},
  pages     = {6-8},
  number    = {2},
  date      = {1856-01-24},
  options   = {dataonly},
}
@article{Lazarus1856-2,
  crossref  = {Lazarus1856},
  pages     = {11-12},
  number    = {3},
  date      = {1856-02-07},
  options   = {dataonly},
}
\end{filecontents*}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
  \nocite{Lazarus1856,knuth:ct:related}
  \printbibliography
\end{document}

Lazarus. “Hebräische Poesie”. In: Literaturblatt des Deutschen Kunstblatts 3 (1856). 3.2 (Jan. 24, 1856), pp. 6–8, 3.3 (Feb. 7, 1856), pp. 11–12.