diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 248826efe3..7024f974d5 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2350,6 +2350,9 @@ BiblioInfo const & Buffer::bibInfo() const void Buffer::registerBibfiles(FileNamePairList const & bf) const { + // We register the bib files in the master buffer, + // if there is one, but also in every single buffer, + // in case a child is compiled alone. Buffer const * const tmp = masterBuffer(); if (tmp != this) tmp->registerBibfiles(bf); @@ -2423,6 +2426,9 @@ void Buffer::collectBibKeys(FileNameList & checkedFiles) const void Buffer::addBiblioInfo(BiblioInfo const & bin) const { + // We add the biblio info to the master buffer, + // if there is one, but also to every single buffer, + // in case a child is compiled alone. BiblioInfo & bi = d->bibinfo_; bi.mergeBiblioInfo(bin); @@ -2433,12 +2439,18 @@ void Buffer::addBiblioInfo(BiblioInfo const & bin) const } -void Buffer::addBibTeXInfo(docstring const & key, BibTeXInfo const & bi) const +void Buffer::addBibTeXInfo(docstring const & key, BibTeXInfo const & bin) const { - Buffer const * tmp = masterBuffer(); - BiblioInfo & masterbi = (tmp == this) ? - d->bibinfo_ : tmp->d->bibinfo_; - masterbi[key] = bi; + // We add the bibtex info to the master buffer, + // if there is one, but also to every single buffer, + // in case a child is compiled alone. + BiblioInfo & bi = d->bibinfo_; + bi[key] = bin; + + if (parent() != 0) { + BiblioInfo & masterbi = parent()->d->bibinfo_; + masterbi[key] = bin; + } } diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp index 0e67483c99..ba45f691a3 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -552,6 +552,8 @@ void InsetCitation::forOutliner(docstring & os, size_t const, bool const) const // engine, e.g. \cite[]{} for the basic engine. void InsetCitation::latex(otexstream & os, OutputParams const & runparams) const { + // When this is a child compiled on its own, we use the childs + // own bibinfo, else the master's BiblioInfo const & bi = runparams.is_child ? buffer().masterBibInfo() : buffer().bibInfo(); docstring const key = getParam("key");