]> git.lyx.org Git - lyx.git/blobdiff - src/Converter.cpp
ru/Tutorial.lyx: update by Yuriy
[lyx.git] / src / Converter.cpp
index e1a47db7cc081476aa0ca9bb7693dca2a900b24d..4dab2413dbd408495af5fd3d3f6bab7f6556750c 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
@@ -876,6 +881,14 @@ Converters::RetVal Converters::runLaTeX(Buffer const & buffer, string const & co
        if (result & LaTeX::ERRORS)
                buffer.bufferErrors(terr, errorList);
 
+       if ((result & LaTeX::UNDEF_CIT) || (result & LaTeX::UNDEF_REF)) {
+               buffer.bufferRefs(terr, errorList);
+               if (errorList.empty())
+                       errorList.push_back(ErrorItem(_("Undefined reference"),
+                               _("Undefined reference or citation was found during the build, please check the Log."),
+                               &buffer));
+       }
+
        if (!errorList.empty()) {
          // We will show the LaTeX Errors GUI later which contains
          // specific error messages so it would be repetitive to give
@@ -904,6 +917,8 @@ Converters::RetVal Converters::runLaTeX(Buffer const & buffer, string const & co
        int const ERROR_MASK =
                        LaTeX::NO_LOGFILE |
                        LaTeX::ERRORS |
+                       LaTeX::UNDEF_CIT |
+                       LaTeX::UNDEF_REF |
                        LaTeX::NO_OUTPUT;
 
        return (result & ERROR_MASK) == 0 ? SUCCESS : FAILURE;