mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-12 16:50:39 +00:00
* LaTeX.{cpp,h}: run biber if necessary (bug 7281).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X@37539 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
3a3e21e333
commit
202d7e34ae
@ -126,6 +126,10 @@ void LaTeX::deleteFilesOnError() const
|
|||||||
FileName const bbl(changeExtension(file.absFilename(), ".bbl"));
|
FileName const bbl(changeExtension(file.absFilename(), ".bbl"));
|
||||||
bbl.removeFile();
|
bbl.removeFile();
|
||||||
|
|
||||||
|
// biber file
|
||||||
|
FileName const bcf(changeExtension(file.absFilename(), ".bcf"));
|
||||||
|
bcf.removeFile();
|
||||||
|
|
||||||
// makeindex file
|
// makeindex file
|
||||||
FileName const ind(changeExtension(file.absFilename(), ".ind"));
|
FileName const ind(changeExtension(file.absFilename(), ".ind"));
|
||||||
ind.removeFile();
|
ind.removeFile();
|
||||||
@ -207,7 +211,8 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
LYXERR(Debug::DEPEND, "Dependency file has changed");
|
LYXERR(Debug::DEPEND, "Dependency file has changed");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (head.extchanged(".bib") || head.extchanged(".bst"))
|
if (head.extchanged(".bib") || head.extchanged(".bst")
|
||||||
|
|| head.extchanged(".bcf"))
|
||||||
run_bibtex = true;
|
run_bibtex = true;
|
||||||
} else
|
} else
|
||||||
LYXERR(Debug::DEPEND,
|
LYXERR(Debug::DEPEND,
|
||||||
@ -273,6 +278,12 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
if (head.haschanged(glofile))
|
if (head.haschanged(glofile))
|
||||||
rerun |= runMakeIndexNomencl(file, ".glo", ".gls");
|
rerun |= runMakeIndexNomencl(file, ".glo", ".gls");
|
||||||
|
|
||||||
|
// check if we're using biber instead of bibtex
|
||||||
|
// biber writes no info to the aux file, so we just check
|
||||||
|
// if a bcf file exists (and, above, if it was updated)
|
||||||
|
FileName const bcffile(changeExtension(file.absFilename(), ".bcf"));
|
||||||
|
bool const biber = bcffile.exists();
|
||||||
|
|
||||||
// run bibtex
|
// run bibtex
|
||||||
// if (scanres & UNDEF_CIT || scanres & RERUN || run_bibtex)
|
// if (scanres & UNDEF_CIT || scanres & RERUN || run_bibtex)
|
||||||
if (scanres & UNDEF_CIT || run_bibtex) {
|
if (scanres & UNDEF_CIT || run_bibtex) {
|
||||||
@ -283,7 +294,7 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
LYXERR(Debug::LATEX, "Running BibTeX.");
|
LYXERR(Debug::LATEX, "Running BibTeX.");
|
||||||
message(_("Running BibTeX."));
|
message(_("Running BibTeX."));
|
||||||
updateBibtexDependencies(head, bibtex_info);
|
updateBibtexDependencies(head, bibtex_info);
|
||||||
rerun |= runBibTeX(bibtex_info, runparams);
|
rerun |= runBibTeX(bibtex_info, runparams, biber);
|
||||||
} else if (!had_depfile) {
|
} else if (!had_depfile) {
|
||||||
/// If we run pdflatex on the file after running latex on it,
|
/// If we run pdflatex on the file after running latex on it,
|
||||||
/// then we do not need to run bibtex, but we do need to
|
/// then we do not need to run bibtex, but we do need to
|
||||||
@ -335,7 +346,7 @@ int LaTeX::run(TeXErrors & terr)
|
|||||||
LYXERR(Debug::LATEX, "Running BibTeX.");
|
LYXERR(Debug::LATEX, "Running BibTeX.");
|
||||||
message(_("Running BibTeX."));
|
message(_("Running BibTeX."));
|
||||||
updateBibtexDependencies(head, bibtex_info);
|
updateBibtexDependencies(head, bibtex_info);
|
||||||
rerun |= runBibTeX(bibtex_info, runparams);
|
rerun |= runBibTeX(bibtex_info, runparams, biber);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4
|
// 4
|
||||||
@ -552,12 +563,12 @@ void LaTeX::updateBibtexDependencies(DepTable & dep,
|
|||||||
|
|
||||||
|
|
||||||
bool LaTeX::runBibTeX(vector<Aux_Info> const & bibtex_info,
|
bool LaTeX::runBibTeX(vector<Aux_Info> const & bibtex_info,
|
||||||
OutputParams const & runparams)
|
OutputParams const & runparams, bool biber)
|
||||||
{
|
{
|
||||||
bool result = false;
|
bool result = false;
|
||||||
for (vector<Aux_Info>::const_iterator it = bibtex_info.begin();
|
for (vector<Aux_Info>::const_iterator it = bibtex_info.begin();
|
||||||
it != bibtex_info.end(); ++it) {
|
it != bibtex_info.end(); ++it) {
|
||||||
if (it->databases.empty())
|
if (!biber && it->databases.empty())
|
||||||
continue;
|
continue;
|
||||||
result = true;
|
result = true;
|
||||||
|
|
||||||
|
@ -189,7 +189,8 @@ private:
|
|||||||
std::vector<Aux_Info> const &);
|
std::vector<Aux_Info> const &);
|
||||||
|
|
||||||
///
|
///
|
||||||
bool runBibTeX(std::vector<Aux_Info> const &, OutputParams const &);
|
bool runBibTeX(std::vector<Aux_Info> const &,
|
||||||
|
OutputParams const &, bool biber);
|
||||||
|
|
||||||
///
|
///
|
||||||
void deleteFilesOnError() const;
|
void deleteFilesOnError() const;
|
||||||
|
@ -24,6 +24,7 @@ What's new
|
|||||||
|
|
||||||
* DOCUMENT INPUT/OUTPUT
|
* DOCUMENT INPUT/OUTPUT
|
||||||
|
|
||||||
|
- Run biber instead of bibtex if requested (bug 7281).
|
||||||
|
|
||||||
|
|
||||||
* USER INTERFACE
|
* USER INTERFACE
|
||||||
|
Loading…
Reference in New Issue
Block a user