9

Update

Quite some time has gone by since I asked this question and since @PLK informed me in the comments that an upcoming version of biblatex (which would be out by now) would provide a solution to my problem I would like to ask for an answer that makes use of such a new biblatex feature. I tried finding out how to do it right, but my knowledge of biblatex was not good enough to find what I was searching for. If possible I would like to get a language sensitive solution (I have to write german and english documents) that does not include changing the contents of the .bib files in a way that prevents me from using them with bibtex styles. A possibility I could think of might be to create a new command that works like the \defbibentryset command but takes additional arguments which tell it how to relate the given entries to each other, e.g. what text to add and where to add it (append or prepend). Here is an MWE containing the bibliography entries:

\documentclass{article}

\usepackage{filecontents}

\begin{filecontents}{testbibfile.bib}
@article {Lieb_1983_Int.J.Quantum.Chem._24_p.243,
author = {Lieb, Elliott H.},
title = {Density Functionals for Coulomb Systems},
journal = {Int. J. Quantum Chem.},
volume = {24},
number = {3},
publisher = {John Wiley & Sons, Inc.},
issn = {1097-461X},
url = {http://dx.doi.org/10.1002/qua.560240302},
doi = {10.1002/qua.560240302},
pages = {243--277},
year = {1983}
}

@incollection{Lieb_1982_InBook_Physics.as.Natural.Philosophy_p.111,
author      = {Lieb, Elliott H.},
editor      = {Shimony, Abner and Feshbach, Herman},
booktitle   = {Physics as Natural Philosophy: Essays in Honor of Laszlo Tisza on His Seventy-Fifth Birthday},
title       = {Density Functionals for Coulomb Systems},
year        = {1982},
publisher   = {MIT Press},
address     = {Cambridge, MA},
pages       = {111--149}
}
\end{filecontents}

\usepackage[
backend=biber,
language=german,
style=chem-angew,
pageranges=false,
articletitle=true
]{biblatex}

\bibliography{testbibfile.bib}

\defbibentryset{Lieb_constrained_search}{Lieb_1982_InBook_Physics.as.Natural.Philosophy_p.111,Lieb_1983_Int.J.Quantum.Chem._24_p.243}

\begin{document}

Die ``constrained search'' Formulierung der Dichtefunktionaltheorie stammt von Levy und Lieb\cite{Lieb_constrained_search}.

\printbibliography

\end{document}

Original Question

In my bachelor thesis I have a few references that consist of several bibliography entries that are grouped via biblatex's command \defbibentryset (using biber as backend). Now I wonder if it is possible to add some text within these grouped entries, for example to indicate an erratum paper by adding something like "(E)" after the entry:

[1] J. P. Perdew, K. Burke, M. Ernzerhof, Phys. Rev. Lett. 1996, 77, 3865; J. P. Perdew, K. Burke, M. Ernzerhof, Phys. Rev. Lett. 1997, 78, 1396 (E).

Another example would be the creation of a reference with grouped entries that should look like this:

[2] E. H. Lieb, „Density Functionals for Coulomb Systems“ in Physics as Natural Philosophy: Essays in Honor of Laszlo Tisza on His 75th Birthday (Eds.: A. Shimony, H. Feshbach), MIT Press, Cambridge, MA, 1982, pp. 111–149; a revised version appeared in E. H. Lieb, Int. J. Quantum Chem. 1983, 24, 243.

In the last example the phrase "a revised version appeared in" is the part that should be added to biblatex's standard output.
My question is: Can this be achieved with biblatex (or another package) or do I have to make these changes manually in the *.bbl file.

3
  • 2
    Just a note for completeness - the general issue with related entries like "a revised version appeared in" etc. will be addressed by biblatex probably around the Autumn this year. We already have very decent general functionality for this in biber and are working on the biblatex interface.
    – PLK
    Jul 31, 2011 at 17:20
  • @PLK: Thanks for the info. It would have surprised me if no one else would have stumbled across this issue. I'm looking forward to see what this functionality will look like in biblatex.
    – Philipp
    Jul 31, 2011 at 18:11
  • 2
    According to the biblatex developer, it's one of the most requested extensions, things like "reprinted as", or "included in" fields etc. So it was necessary to come up with a general way of dealing with such things without just adding a load of fields arbitrarily. The solution is a couple of generic fields which cause biber to auto-create some "data only" entries. This is rather nice and works because biber instantiates data source entries in an internal biblatex data model well before any bbl output.
    – PLK
    Jul 31, 2011 at 20:10

2 Answers 2

6
+50

Using sets for this isn't the best way. With the newer "related entries" functionality, simply add these fields to the original entry:

related = {Lieb_1983_Int.J.Quantum.Chem._24_p.243},
relatedstring = {a revised version appeared in}

and then just cite only the original entry.

If you would like language-specific strings so that the string introducing the "related entry" is localisable, you should use the RELATEDTYPE field. To have the relationship be bi-directional, put this in the INCOLLECTION entry:

related = {Lieb_1983_Int.J.Quantum.Chem._24_p.243},
relatedtype = {revisedas}

and this in the ARTICLE entry:

related = {Lieb_1982_InBook_Physics.as.Natural.Philosophy_p.111},
relatedtype = {revisedfrom}

and then define the localisation strings in your preamble (normally a style will do this):

\NewBibliographyString{revisedas}%
\NewBibliographyString{revisedfrom}%
\DefineBibliographyStrings{german}{%
  revisedas = {eine verwandte Version in},
  revisedfrom = {eine verwandte Version von}
}

With this I get (using authoryear style for reasons given below):

enter image description here

I have used the authoryear style for the example because the built-in biblatex styles have the ability to detect related entry loops (which this example has). It seems that the chem-angew style doesn't have this and so you get a LaTeX overflow. It should be easy to add this to chem-angew - see how the related macro is called at the end of all entrytypes in standard.bbx using the related:init macro which is what does the loop detection.

There are also some macros to control the formatting of the related string and data, see section 3.4 of the biblatex manual. Bibtex (the program) shouldn't care about these new fields and will ignore them.

7
  • Thank you very much. I was so fixated on \defbibentryset that I've never come across the "related entries" feature while searching for a solution. Do you think I should add the keyword "related entries" to the question title in order to make it more easy to find for other people searching for this feature?
    – Philipp
    Aug 27, 2013 at 18:51
  • While trying out your solution another little question arose: When using the "related entries" feature the grouped bibliography entry only appears in the final document if the reference containing the related field is cited. If I cite the other reference it appears as a single entry. Is there a way to let the grouped entry appear irrespective of which reference is cited or is this impossible?
    – Philipp
    Aug 27, 2013 at 21:13
  • I have updated the answer - you can certainly do this but you need to make sure your style uses the standard.bbx method of related loop detection which was added this year.
    – PLK
    Aug 28, 2013 at 6:38
  • Thanks again. I actually tried cross-linking both entries with your method before but didn't think of trying it with a standard style and was discouraged afterwards by the LaTeX overflow. Your answer already gives me 99.99 % of what I could wish for, there is only one small point that I'd like to ask you about if you don't mind: Can this functionality be used in such a way that only one certain entry (namely the first one (revisedas) from your output: <ref1>, eine verwandte Version in <ref2>) appears in the bibliography irrespective of which article is cited (maybe even if both are cited)?
    – Philipp
    Aug 28, 2013 at 16:15
  • It would also be ok, if I had to use \cite{<ref1>, <ref2>} to get this. I tried this out using the options field on the revisedfrom-entry together with options like skipbib or dataonly but then I get the wrong reference number appearence (using style=numeric) in the text, namely something like [1,] or [,1]. I'm sorry if I'm asking too many follow up questions but I try to get 100 % of the behavior I'm looking for while I have the chance to ask someone who is so knowledgable about the subject. I could also make a seperate question out of this comment if you'd think that's better.
    – Philipp
    Aug 28, 2013 at 16:16
9

In your first example, "(E)" may simply be added by using the addendum field of the corresponding bibentry. For your second example, I suggest to also use the addendum field (in this case the one of the "Lieb 1982" bibentry) and to remove the closing semicolon by adding \nopunct at the end of the addendum field.

\documentclass{article}

\usepackage{biblatex}

\renewbibmacro{in:}{%
  \ifentrytype{article}{}{%
  \printtext{\bibstring{in}\intitlepunct}}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@incollection{Lie82,
  author = {Lieb, E. H.},
  year = {1982},
  title = {Density Functionals for Coulomb Systems},
  booktitle = {Physics as Natural Philosophy: Essays in Honor of Laszlo Tisza on His 75th Birthday},
  editor = {Shimony, A., and Feshbach, H.},
  location = {Cambridge, \mkbibacro{MA}},
  publisher = {\mkbibacro{MIT} Press},
  pages = {111--149},
  addendum = {A revised version appeared in\nopunct},
}
@article{Lie83,
  author = {Lieb, E. H.},
  year = {1983},
  journaltitle = {Int. J. Quantum Chem.},
  volume = {24},
  pages = {243},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\defbibentryset{Lie}{Lie82,Lie83}

\begin{document}

\printbibliography

\end{document}
3
  • Thank you very much. This produces the output I desired. Of course, I would prefer not to meddle too much with the *.bib files but as PLK pointed out in his comment there will be some functionality added in biblatex to solve the problem and so your solution will help me format my thesis the way I intended. But I have a little question concerning your answer: Why do you use smallcaps (via the \mkbibacro command) for MIT and MA? Is this a common thing in bibliographies?
    – Philipp
    Jul 31, 2011 at 17:58
  • @Philipp: I think small caps do look nicer because they don't stand as much out. For two- or three-letter abbrevations it's a matter of taste; longer acronyms like UNESCO cry for small caps.
    – lockstep
    Jul 31, 2011 at 18:10
  • Ah, you definetly have a point there. I thought it might also be some kind of typographical rule, which would have been an interesting information for me in view of the documents I have to write in the future.
    – Philipp
    Jul 31, 2011 at 18:28

You must log in to answer this question.

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