]> git.lyx.org Git - lyx.git/blobdiff - src/Converter.cpp
tex2lyx: improve module support
[lyx.git] / src / Converter.cpp
index e1a47db7cc081476aa0ca9bb7693dca2a900b24d..8c22b1c42aed4f412fdffe8b0f2f6655ec2b6574 100644 (file)
@@ -123,9 +123,11 @@ void Converter::readFlags()
                                "latex" : flag_value;
                } else if (flag_name == "xml")
                        xml_ = true;
-               else if (flag_name == "needaux")
+               else if (flag_name == "needaux") {
                        need_aux_ = true;
-               else if (flag_name == "resultdir")
+                       latex_flavor_ = flag_value.empty() ?
+                               "latex" : flag_value;
+               } else if (flag_name == "resultdir")
                        result_dir_ = (flag_value.empty())
                                ? token_base : flag_value;
                else if (flag_name == "resultfile")
@@ -265,7 +267,7 @@ OutputParams::FLAVOR Converters::getFlavor(Graph::EdgePath const & path,
        for (Graph::EdgePath::const_iterator cit = path.begin();
             cit != path.end(); ++cit) {
                Converter const & conv = converterlist_[*cit];
-               if (conv.latex()) {
+               if (conv.latex() || conv.need_aux()) {
                        if (conv.latex_flavor() == "latex")
                                return OutputParams::LATEX;
                        if (conv.latex_flavor() == "xelatex")
@@ -474,18 +476,21 @@ Converters::RetVal Converters::convert(Buffer const * buffer,
        runparams.flavor = getFlavor(edgepath, buffer);
 
        if (buffer) {
+               BufferParams const & bp = buffer->params();
                runparams.use_japanese =
-                       (buffer->params().bufferFormat() == "latex"
-                        || suffixIs(buffer->params().bufferFormat(), "-ja"))
-                       && buffer->params().encoding().package() == Encoding::japanese;
-               runparams.use_indices = buffer->params().use_indices;
-               runparams.bibtex_command = buffer->params().bibtexCommand();
-               runparams.index_command = (buffer->params().index_command == "default") ?
-                       string() : buffer->params().index_command;
-               runparams.document_language = buffer->params().language->babel();
-               runparams.only_childbibs = !buffer->params().useBiblatex()
-                               && !buffer->params().useBibtopic()
-                               && buffer->params().multibib == "child";
+                       (bp.bufferFormat() == "latex"
+                        || suffixIs(bp.bufferFormat(), "-ja"))
+                       && bp.encoding().package() == Encoding::japanese;
+               runparams.use_indices = bp.use_indices;
+               runparams.bibtex_command = bp.bibtexCommand();
+               runparams.index_command = (bp.index_command == "default") ?
+                       string() : bp.index_command;
+               runparams.document_language = bp.language->babel();
+               // Some macros rely on font encoding
+               runparams.main_fontenc = bp.main_font_encoding();
+               runparams.only_childbibs = !bp.useBiblatex()
+                               && !bp.useBibtopic()
+                               && bp.multibib == "child";
        }
 
        // Some converters (e.g. lilypond) can only output files to the