Closed Quintus closed 2 years ago
Thanks for the report! Prima facie it looks like a bug in the parsebib
library, which citeproc-el uses for parsing BibTeX and biblatex bibliographies (parsebib
seems to parse everything according to BibTeX inheritance rules disregarding even expicit requests to use biblatex inheritance). I will either submit a bugreport or a PR concerning this shortly.
parsebib seems to parse everything according to BibTeX inheritance rules disregarding even expicit requests to use biblatex inheritance
Oh, I did not even know there are differences. To be fair, I have not even ever thought about inheritence rules proper; I just assumed crossref
does the right thing. Maybe my initial example is actually invalid Biblatex? I will have to read up how Biblatex actually implements inheritance and fix my DB accordingly if required.
Sorry for my bad research. I will follow up here once I have read up what the correct inheritance rules are for Biblatex and whether I am in error here or not.
Oh, I did not even know there are differences.
Yes, there are differences. In fact, BibTeX inheritance rules make bibtex's crossref mechanism actually unusable for most tasks. (With BibTeX, a title
field in the parent entry will end up in the title
field of the child entry. With BibLaTeX, it will end up as `booktitle.)
I've submitted a parsebib PR (see https://github.com/joostkremers/parsebib/pull/17) to improve/fix biblatex inheritance.
The PRs were merged so I think this particular problem has been solved.
Thanks! As soon as there’s a new release of parsebib out I’ll report if this problem has disappeared (I’m already running citeproc-el and org from Git, I’d rather not want to do the same with parsebib and then by extension Ebib). For the time being, I work around this issue by simply providing the affected entries directly as CSL-JSON directly.
I think the version with the changes is already available in MELPA.
I think the version with the changes is already available in MELPA.
It is, so updating your packages should do the trick.
Hmmm. I updated my packages and now have parsebib 3.1 and Ebib 2.34. Revisiting the example in the OP, it does not appear to propagate the title
entry in breidenbach-glatz2021lt
to booktitle
in breidenbach2021indurecht
. At least, if I open a .bib
file with exactly the content from the OP in Ebib, selecting breidenbach2021indurecht
shows booktitle
empty, while e.g. editor
and publisher
are inherited as expected. When exporting the org document, container-title
in CSL appears to be empty still as well. I took a look at the Biblatex documentation, and in fact § 2.4.1 actually uses title -> booktitle
propagation as an example. The larger table in section B also includes said propagation for book
to inbook
(p. 329, last row in the table).
It seems your are using the parsebib package from MELPA stable, which doesn't contain the changes yet. The version with the updates is in MELPA (with version number 20220116.2336).
I changed from melpa-stable to melpa now. Ebib is now at version 20220121.2236 and parsebib at 20220116.2336, but the result remains the same: booktitle
is empty in Ebib and exporting shows that container-title
also is.
Strange, using the latest parsebib in MELPA and citeproc-el with your CSL style I get the seemingly correct
This is a test.[1]
/Breidenbach/, in: Breidenbach/Glatz (Hrsg.), Rechtshandbuch Legal Tech,
2. Aufl. 2021, Kap. 2.1: Industrielle Rechtsdienstleistungen –
Standardisierung von Recht auf hohem Niveau (zit:
Breidenbach/Glatz//Breidenbach/ Rechtshandbuch Legal Tech Kap. 2.1)
Fußnoten
────────
[1] Breidenbach/Glatz//Breidenbach/ Rechtshandbuch Legal Tech Kap. 2.1
Rn. 22.
(With ebib I'm not sure how it's supposed to treat cross-references by default.)
facepalm You are right. I looked at the wrong HTML file. It now is correct.
(With ebib I'm not sure how it's supposed to treat cross-references by default.)
It does, as it properly shows e.g. editor
and publisher
as inherited from breidenbach-glatz2021lt
. The inheritance seems broken for booktitle
, though, but that doesn’t belong here.
facepalm You are right. I looked at the wrong HTML file. It now is correct.
(With ebib I'm not sure how it's supposed to treat cross-references by default.)
It does, as it properly shows e.g.
editor
andpublisher
as inherited frombreidenbach-glatz2021lt
. The inheritance seems broken forbooktitle
, though, but that doesn’t belong here.
Ebib doesn't use parsebib to resolve cross-references, so the fix that was applied to parsebib needs to be applied separately to Ebib. I'll try to do that ASAP.
Thanks!
Dear Andras,
I am not entirely sure where the problem lies. I am currently coding on a CSL style for a commentary I am working on and I have problems with getting
container-title
values right. Take this org file:with this
mwe.bib
Biblatex file:I now export this with the CSL style attached below. What I receive in footnote 1 is this:
The long bibliography entry looks is produced as follows:
For one, it misses the information about the
chapter
value; for that I filed #90. The more important thing is thatcontainer-title
appears to be empty. The footnote should have looked like this:The long entry should have been
These are the relevant XML constructs. First, footnote:
Then, long bibliography format:
citeproc should fill in
container-title
from the cross-referenced entry’stitle
andshorttitle
fields, should it not? Or is it me writing my .bib file incorrectly?Please find my complete custom CSL file below. Note that this is not a finished CSL file, it’s just my current point of progress.
-quintus