Is it possible to have several entries in a bibtex-date field?
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.
biblatex bibtex
|
show 2 more comments
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.
biblatex bibtex
There's aneventdatefield. I've never used though, and the documentation forbiblatexdoesn't say much about it.
– Gonzalo Medina
Mar 11 '15 at 13:20
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
You can have date spans, but not two dates in thedatefields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different.bibentries, both works are separated by the fact that they appeared in differentnumbersof a journal (not even on consecutive pages), maybe combined into one@set.
– moewe
Mar 11 '15 at 15:41
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17
|
show 2 more comments
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.
biblatex bibtex
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.
biblatex bibtex
biblatex bibtex
asked Mar 11 '15 at 13:13
shevekshevek
528
528
There's aneventdatefield. I've never used though, and the documentation forbiblatexdoesn't say much about it.
– Gonzalo Medina
Mar 11 '15 at 13:20
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
You can have date spans, but not two dates in thedatefields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different.bibentries, both works are separated by the fact that they appeared in differentnumbersof a journal (not even on consecutive pages), maybe combined into one@set.
– moewe
Mar 11 '15 at 15:41
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17
|
show 2 more comments
There's aneventdatefield. I've never used though, and the documentation forbiblatexdoesn't say much about it.
– Gonzalo Medina
Mar 11 '15 at 13:20
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
You can have date spans, but not two dates in thedatefields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different.bibentries, both works are separated by the fact that they appeared in differentnumbersof a journal (not even on consecutive pages), maybe combined into one@set.
– moewe
Mar 11 '15 at 15:41
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17
There's an
eventdate field. I've never used though, and the documentation for biblatex doesn't say much about it.– Gonzalo Medina
Mar 11 '15 at 13:20
There's an
eventdate field. I've never used though, and the documentation for biblatex doesn't say much about it.– Gonzalo Medina
Mar 11 '15 at 13:20
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
You can have date spans, but not two dates in the
date fields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different .bib entries, both works are separated by the fact that they appeared in different numbers of a journal (not even on consecutive pages), maybe combined into one @set.– moewe
Mar 11 '15 at 15:41
You can have date spans, but not two dates in the
date fields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different .bib entries, both works are separated by the fact that they appeared in different numbers of a journal (not even on consecutive pages), maybe combined into one @set.– moewe
Mar 11 '15 at 15:41
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17
|
show 2 more comments
2 Answers
2
active
oldest
votes
There is no way to add multiple dates to any of biblatex's date fields, you can add a date span though, 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}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
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{filecontents}
usepackage[style=authortitle,backend=biber]{biblatex}
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}
DeclareFieldFormat{related:serialarticle}{#1}
renewcommand*{relateddelim}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
iffieldundef{pages}
{}
{setunit{bibpagespunct}%
printfield{pages}}}}
begin{document}
nocite{Lazarus1856,knuth:ct:related}
printbibliography
end{document}

This awesome answer resolves my question. One small additional question: Where would I put anobreakor the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?
– shevek
Mar 13 '15 at 11:34
@shevek This is done withrelateddelim, I have added a solution to my answer that adds a comma.
– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
add a comment |
This is fiendishly clever. But isn't it also a bit insane?
If I'm cataloguing a two-volume book, where each volume was published in a different year, then it should be possible to say "date = {1996, 1997}". It's that simple. It's common sense. Rather than the verbose solution given above, biber/biblatex should be altered slightly to accomodate the real-world situation.
I guess the workaround is to use the year field.
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existingrelatedfield andrelatedtype = {multivolume}.
– gusbrs
Jan 3 '18 at 9:35
It is possible to saydate = {1996/1997}for date ranges (following ISO 8601/EDTF standard). Thedatefield needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.
– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f232526%2fis-it-possible-to-have-several-entries-in-a-bibtex-date-field%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
There is no way to add multiple dates to any of biblatex's date fields, you can add a date span though, 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}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
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{filecontents}
usepackage[style=authortitle,backend=biber]{biblatex}
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}
DeclareFieldFormat{related:serialarticle}{#1}
renewcommand*{relateddelim}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
iffieldundef{pages}
{}
{setunit{bibpagespunct}%
printfield{pages}}}}
begin{document}
nocite{Lazarus1856,knuth:ct:related}
printbibliography
end{document}

This awesome answer resolves my question. One small additional question: Where would I put anobreakor the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?
– shevek
Mar 13 '15 at 11:34
@shevek This is done withrelateddelim, I have added a solution to my answer that adds a comma.
– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
add a comment |
There is no way to add multiple dates to any of biblatex's date fields, you can add a date span though, 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}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
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{filecontents}
usepackage[style=authortitle,backend=biber]{biblatex}
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}
DeclareFieldFormat{related:serialarticle}{#1}
renewcommand*{relateddelim}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
iffieldundef{pages}
{}
{setunit{bibpagespunct}%
printfield{pages}}}}
begin{document}
nocite{Lazarus1856,knuth:ct:related}
printbibliography
end{document}

This awesome answer resolves my question. One small additional question: Where would I put anobreakor the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?
– shevek
Mar 13 '15 at 11:34
@shevek This is done withrelateddelim, I have added a solution to my answer that adds a comma.
– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
add a comment |
There is no way to add multiple dates to any of biblatex's date fields, you can add a date span though, 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}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
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{filecontents}
usepackage[style=authortitle,backend=biber]{biblatex}
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}
DeclareFieldFormat{related:serialarticle}{#1}
renewcommand*{relateddelim}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
iffieldundef{pages}
{}
{setunit{bibpagespunct}%
printfield{pages}}}}
begin{document}
nocite{Lazarus1856,knuth:ct:related}
printbibliography
end{document}

There is no way to add multiple dates to any of biblatex's date fields, you can add a date span though, 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}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
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{filecontents}
usepackage[style=authortitle,backend=biber]{biblatex}
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}
DeclareFieldFormat{related:serialarticle}{#1}
renewcommand*{relateddelim}{%
iffieldequalstr{relatedtype}{serialarticle}
{addcommaspace}
{adddotparnobreak}}
newbibmacro*{related:serialarticle}[1]{%
entrydata{#1}{%
usebibmacro{volume+number+eid}%
setunit{addspace}%
usebibmacro{issue+date}%
setunit{addcolonspace}%
iffieldundef{pages}
{}
{setunit{bibpagespunct}%
printfield{pages}}}}
begin{document}
nocite{Lazarus1856,knuth:ct:related}
printbibliography
end{document}

edited Feb 1 at 19:11
answered Mar 12 '15 at 9:50
moewemoewe
89.9k10110339
89.9k10110339
This awesome answer resolves my question. One small additional question: Where would I put anobreakor the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?
– shevek
Mar 13 '15 at 11:34
@shevek This is done withrelateddelim, I have added a solution to my answer that adds a comma.
– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
add a comment |
This awesome answer resolves my question. One small additional question: Where would I put anobreakor the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?
– shevek
Mar 13 '15 at 11:34
@shevek This is done withrelateddelim, I have added a solution to my answer that adds a comma.
– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
This awesome answer resolves my question. One small additional question: Where would I put a
nobreak or the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?– shevek
Mar 13 '15 at 11:34
This awesome answer resolves my question. One small additional question: Where would I put a
nobreak or the like, in order to have the serial entries on the same line as the main entry, just separated by semicolons or commata?– shevek
Mar 13 '15 at 11:34
@shevek This is done with
relateddelim, I have added a solution to my answer that adds a comma.– moewe
Mar 13 '15 at 11:47
@shevek This is done with
relateddelim, I have added a solution to my answer that adds a comma.– moewe
Mar 13 '15 at 11:47
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
Great, that is exactly the solution for my problem. Thank you, moewe, for your great help, and sorry, I have to express my appreciation this way because I do not have enough repution yet to vote your answer up.
– shevek
Mar 13 '15 at 11:53
add a comment |
This is fiendishly clever. But isn't it also a bit insane?
If I'm cataloguing a two-volume book, where each volume was published in a different year, then it should be possible to say "date = {1996, 1997}". It's that simple. It's common sense. Rather than the verbose solution given above, biber/biblatex should be altered slightly to accomodate the real-world situation.
I guess the workaround is to use the year field.
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existingrelatedfield andrelatedtype = {multivolume}.
– gusbrs
Jan 3 '18 at 9:35
It is possible to saydate = {1996/1997}for date ranges (following ISO 8601/EDTF standard). Thedatefield needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.
– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
add a comment |
This is fiendishly clever. But isn't it also a bit insane?
If I'm cataloguing a two-volume book, where each volume was published in a different year, then it should be possible to say "date = {1996, 1997}". It's that simple. It's common sense. Rather than the verbose solution given above, biber/biblatex should be altered slightly to accomodate the real-world situation.
I guess the workaround is to use the year field.
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existingrelatedfield andrelatedtype = {multivolume}.
– gusbrs
Jan 3 '18 at 9:35
It is possible to saydate = {1996/1997}for date ranges (following ISO 8601/EDTF standard). Thedatefield needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.
– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
add a comment |
This is fiendishly clever. But isn't it also a bit insane?
If I'm cataloguing a two-volume book, where each volume was published in a different year, then it should be possible to say "date = {1996, 1997}". It's that simple. It's common sense. Rather than the verbose solution given above, biber/biblatex should be altered slightly to accomodate the real-world situation.
I guess the workaround is to use the year field.
This is fiendishly clever. But isn't it also a bit insane?
If I'm cataloguing a two-volume book, where each volume was published in a different year, then it should be possible to say "date = {1996, 1997}". It's that simple. It's common sense. Rather than the verbose solution given above, biber/biblatex should be altered slightly to accomodate the real-world situation.
I guess the workaround is to use the year field.
answered Jan 3 '18 at 5:50
DominikDominik
1046
1046
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existingrelatedfield andrelatedtype = {multivolume}.
– gusbrs
Jan 3 '18 at 9:35
It is possible to saydate = {1996/1997}for date ranges (following ISO 8601/EDTF standard). Thedatefield needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.
– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
add a comment |
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existingrelatedfield andrelatedtype = {multivolume}.
– gusbrs
Jan 3 '18 at 9:35
It is possible to saydate = {1996/1997}for date ranges (following ISO 8601/EDTF standard). Thedatefield needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.
– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existing
related field and relatedtype = {multivolume}.– gusbrs
Jan 3 '18 at 9:35
Actually, a multi-volume book is handled out of the box by biblatex, as is shown with the Knuth book case in moewe's answer. It is enough to use the existing
related field and relatedtype = {multivolume}.– gusbrs
Jan 3 '18 at 9:35
It is possible to say
date = {1996/1997} for date ranges (following ISO 8601/EDTF standard). The date field needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.– moewe
Jan 4 '18 at 20:22
It is possible to say
date = {1996/1997} for date ranges (following ISO 8601/EDTF standard). The date field needs to be a valid date range, it can not be arbitrary input as it needs to be parsed.– moewe
Jan 4 '18 at 20:22
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
sure. But that gives "1993-1997" instead of "1993, 1997". Two volumes are not published across several years, but at specific dates. A better example would be three or more volumes.
– Dominik
Jan 5 '18 at 21:32
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
Thank you, @gusbrs, this does work. But the output is like the Knuth volumes above, with a new block for each volume. In Humanities, one typically wants bibliography entries like this: Ram, Labhu and Bala Sahai Shastri (1932, 1941). Catalogue of Sanskrit Manuscripts in the Panjab University Library. 2 vols. Lahore: Labhu Ram, Librarian for the University of the Panjab.
– Dominik
Sep 6 '18 at 19:28
add a comment |
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f232526%2fis-it-possible-to-have-several-entries-in-a-bibtex-date-field%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
There's an
eventdatefield. I've never used though, and the documentation forbiblatexdoesn't say much about it.– Gonzalo Medina
Mar 11 '15 at 13:20
Welcome to TeX.SX! I would be inclined to make an EntrySet out of the different parts.
– Andrew Swann
Mar 11 '15 at 13:25
@Gonzalo Medina: If I understand it correctly, you can have date spans, but not several separated dates - notwithstanding if it's ´date´, ´eventdate´ or ´origdate´.
– shevek
Mar 11 '15 at 13:26
You can have date spans, but not two dates in the
datefields. The (maybe in some cases too simplifying) idea being that a particular work will have been published at one exact date (spans then are for multi-volumes, or for conference dates etc.). In your case, however I would go for two different.bibentries, both works are separated by the fact that they appeared in differentnumbersof a journal (not even on consecutive pages), maybe combined into one@set.– moewe
Mar 11 '15 at 15:41
See also Serial Articles -- Articles in Installments / relatedtype=serial.
– moewe
Mar 11 '15 at 16:17