}
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);
OutputParams::FLAVOR Converters::getFlavor(Graph::EdgePath const & path)
+ Buffer const * buffer)
{
for (Graph::EdgePath::const_iterator cit = path.begin();
cit != path.end(); ++cit) {
if (conv.xml)
return OutputParams::XML;
}
- return OutputParams::LATEX;
+ return buffer ? buffer->params().getOutputFlavor()
+ : OutputParams::LATEX;
}
// 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";
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
///
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
///
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