X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeX.cpp;h=cfa6e1d3f96d7daf691f4da19425c140b47550cc;hb=589f49ff366f88e3f3be9424397d9d99ebf44dfe;hp=37c8703b0d125a0c597c143dc1859794d56301cf;hpb=1bd56c8730a55bc78944e3803f4953cd4e733d8a;p=lyx.git diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index 37c8703b0d..cfa6e1d3f9 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -97,7 +97,13 @@ LaTeX::LaTeX(string const & latex, OutputParams const & rp, : cmd(latex), file(f), path(p), lpath(lp), runparams(rp), biber(false) { num_errors = 0; - if (prefixIs(cmd, "pdf")) { // Do we use pdflatex ? + // lualatex can still produce a DVI with --output-format=dvi. However, + // we do not use that internally (we use the "dvilualatex" command) so + // it would only happen from a custom converter. Thus, it is better to + // guess that lualatex produces a PDF than to guess a DVI. + // FIXME we should base the extension on the output format, which we should + // get in a robust way, e.g. from the converter. + if (prefixIs(cmd, "pdf") || prefixIs(cmd, "lualatex") || prefixIs(cmd, "xelatex")) { depfile = FileName(file.absFileName() + ".dep-pdf"); output_file = FileName(changeExtension(file.absFileName(), ".pdf")); @@ -148,6 +154,10 @@ void LaTeX::removeAuxiliaryFiles() const FileName const aux(changeExtension(file.absFileName(), ".aux")); aux.removeFile(); + // Also remove the .out file (e.g. hyperref bookmarks) (#9963) + FileName const out(changeExtension(file.absFileName(), ".out")); + out.removeFile(); + // Remove the output file, which is often generated even if error output_file.removeFile(); } @@ -874,8 +884,9 @@ int LaTeX::scanLogFile(TeXErrors & terr) } else if (contains(token, "Rerun to get citations")) { // Natbib seems to use this. retval |= UNDEF_CIT; - } else if (contains(token, "No pages of output")) { - // A dvi file was not created + } else if (contains(token, "No pages of output") + || contains(token, "no pages of output")) { + // No output file (e.g. the DVI or PDF) was created retval |= NO_OUTPUT; } else if (contains(token, "That makes 100 errors")) { // More than 100 errors were reprted @@ -951,8 +962,7 @@ bool handleFoundFile(string const & ff, DepTable & head) return true; // strip off part after last space and try again string tmp = strippedfile; - string const stripoff = - rsplit(tmp, strippedfile, ' '); + rsplit(tmp, strippedfile, ' '); absname.set(strippedfile); if (insertIfExists(absname, head)) return true; @@ -977,8 +987,7 @@ bool handleFoundFile(string const & ff, DepTable & head) break; // strip off part after last space and try again string strippedfile; - string const stripoff = - rsplit(foundfile, strippedfile, ' '); + rsplit(foundfile, strippedfile, ' '); foundfile = strippedfile; onlyfile = onlyFileName(strippedfile); absname = makeAbsPath(onlyfile);