diff --git a/lib/fonts/cmex10.ttf b/lib/fonts/cmex10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/cmmi10.ttf b/lib/fonts/cmmi10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/cmr10.ttf b/lib/fonts/cmr10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/cmsy10.ttf b/lib/fonts/cmsy10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/esint10.ttf b/lib/fonts/esint10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/eufm10.ttf b/lib/fonts/eufm10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/msam10.ttf b/lib/fonts/msam10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/msbm10.ttf b/lib/fonts/msbm10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/rsfs10.ttf b/lib/fonts/rsfs10.ttf old mode 100644 new mode 100755 diff --git a/lib/fonts/wasy10.ttf b/lib/fonts/wasy10.ttf old mode 100644 new mode 100755 diff --git a/src/Buffer.cpp b/src/Buffer.cpp index d131491e98..2ee9422713 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -3544,7 +3544,7 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir, } return false; } - runparams.flavor = converters.getFlavor(path); + runparams.flavor = converters.getFlavor(path, this); } else { backend_format = format; diff --git a/src/Converter.cpp b/src/Converter.cpp index 631b847574..abaae0ea72 100644 --- a/src/Converter.cpp +++ b/src/Converter.cpp @@ -189,16 +189,25 @@ void Converters::add(string const & from, string const & to, } converter.readFlags(); - // If we have both latex & pdflatex, we set latex_command to latex. // The latex_command is used to update the .aux file when running // a converter that uses it. - if (converter.latex - && (latex_command_.empty() || converter.latex_flavor == "latex")) - latex_command_ = subst(command, token_from, ""); - // Similarly, set xelatex_command to xelatex. - if (converter.latex - && (xelatex_command_.empty() || converter.latex_flavor == "xelatex")) - xelatex_command_ = subst(command, token_from, ""); + if (converter.latex) { + if (latex_command_.empty() || + converter.latex_flavor == "latex") + latex_command_ = subst(command, token_from, ""); + if (dvilualatex_command_.empty() || + converter.latex_flavor == "dvilualatex") + dvilualatex_command_ = subst(command, token_from, ""); + if (lualatex_command_.empty() || + converter.latex_flavor == "lualatex") + lualatex_command_ = subst(command, token_from, ""); + if (pdflatex_command_.empty() || + converter.latex_flavor == "pdflatex") + pdflatex_command_ = subst(command, token_from, ""); + if (xelatex_command_.empty() || + converter.latex_flavor == "xelatex") + xelatex_command_ = subst(command, token_from, ""); + } if (it == converterlist_.end()) { converterlist_.push_back(converter); @@ -258,6 +267,7 @@ void Converters::sort() OutputParams::FLAVOR Converters::getFlavor(Graph::EdgePath const & path) + Buffer const * buffer) { for (Graph::EdgePath::const_iterator cit = path.begin(); cit != path.end(); ++cit) { @@ -274,7 +284,8 @@ OutputParams::FLAVOR Converters::getFlavor(Graph::EdgePath const & path) if (conv.xml) return OutputParams::XML; } - return OutputParams::LATEX; + return buffer ? buffer->params().getOutputFlavor() + : OutputParams::LATEX; } @@ -338,7 +349,7 @@ bool Converters::convert(Buffer const * buffer, // buffer is only invalid for importing, and then runparams is not // used anyway. OutputParams runparams(buffer ? &buffer->params().encoding() : 0); - runparams.flavor = getFlavor(edgepath); + runparams.flavor = getFlavor(edgepath, buffer); if (buffer) { runparams.use_japanese = buffer->params().bufferFormat() == "platex"; @@ -403,14 +414,33 @@ bool Converters::convert(Buffer const * buffer, if (!runLaTeX(*buffer, command, runparams, errorList)) return false; } else { - if (conv.need_aux && !run_latex - && !latex_command_.empty()) { - string const command = (buffer && buffer->params().useNonTeXFonts) ? - xelatex_command_ : latex_command_; - LYXERR(Debug::FILES, "Running " << command - << " to update aux file"); - if (!runLaTeX(*buffer, command, runparams, errorList)) - return false; + if (conv.need_aux && !run_latex) { + string command; + switch (runparams.flavor) { + case OutputParams::DVILUATEX: + command = dvilualatex_command_; + break; + case OutputParams::LUATEX: + command = lualatex_command_; + break; + case OutputParams::PDFLATEX: + command = pdflatex_command_; + break; + case OutputParams::XETEX: + command = xelatex_command_; + break; + default: + command = latex_command_; + break; + } + if (!command.empty()) { + LYXERR(Debug::FILES, "Running " + << command + << " to update aux file"); + if (!runLaTeX(*buffer, command, + runparams, errorList)) + return false; + } } // FIXME UNICODE diff --git a/src/Converter.h b/src/Converter.h index 13dc1471f3..c0f34e47ae 100644 --- a/src/Converter.h +++ b/src/Converter.h @@ -115,7 +115,8 @@ public: /// Graph::EdgePath getPath(std::string const & from, std::string const & to); /// - OutputParams::FLAVOR getFlavor(Graph::EdgePath const & path); + OutputParams::FLAVOR getFlavor(Graph::EdgePath const & path, + Buffer const * buffer = 0); /// Flags for converting files enum ConversionFlags { /// No special flags @@ -158,6 +159,12 @@ private: /// std::string latex_command_; /// + std::string dvilualatex_command_; + /// + std::string lualatex_command_; + /// + std::string pdflatex_command_; + /// std::string xelatex_command_; /// If \p from = /path/file.ext and \p to = /path2/file2.ext2 then /// this method moves each /path/file*.ext file to /path2/file2*.ext2 diff --git a/status.20x b/status.20x index 3b13998b73..ce42ae5f96 100644 --- a/status.20x +++ b/status.20x @@ -85,6 +85,10 @@ What's new - Fixed reading the bounding box from EPS figures with negative values (bug 8114). +- Fix generation of auxiliary files for converters specifying the needaux + flag by using the same latex backend used for previewing the document + instead of always using the plain latex backend. + * USER INTERFACE