]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Check path of Qt tools if qtchooser is detected
[lyx.git] / src / BufferParams.cpp
index 2d113bad4579bbc7851700c03ce4e59048a92c7e..44ddc355614faa474d451db47f236a201145de74 100644 (file)
@@ -38,6 +38,7 @@
 #include "LyXRC.h"
 #include "OutputParams.h"
 #include "Spacing.h"
+#include "texstream.h"
 #include "TexRow.h"
 #include "VSpace.h"
 #include "PDFOptions.h"
@@ -1589,7 +1590,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
                os << from_ascii(ams);
 
        if (useNonTeXFonts) {
-               os << "\\usepackage{fontspec}\n";
+               if (!features.isProvided("fontspec"))
+                       os << "\\usepackage{fontspec}\n";
                if (features.mustProvide("unicode-math")
                    && features.isAvailable("unicode-math"))
                        os << "\\usepackage{unicode-math}\n";
@@ -2054,7 +2056,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        // koma's own caption commands are used instead of caption. We
        // use \PassOptionsToPackage here because the user could have
        // already loaded subfig in the preamble.
-       if (features.isRequired("subfig")) {
+       if (features.mustProvide("subfig")) {
                atlyxpreamble += "\\@ifundefined{showcaptionsetup}{}{%\n"
                        " \\PassOptionsToPackage{caption=false}{subfig}}\n"
                        "\\usepackage{subfig}\n";
@@ -2115,7 +2117,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
        }
        if (features.isRequired("bicaption"))
                lyxpreamble += "\\usepackage{bicaption}\n";
-       if (!listings_params.empty() || features.isRequired("listings"))
+       if (!listings_params.empty() || features.mustProvide("listings"))
                lyxpreamble += "\\usepackage{listings}\n";
        if (!listings_params.empty()) {
                lyxpreamble += "\\lstset{";
@@ -2129,6 +2131,7 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features,
 
        // xunicode needs to be loaded at least after amsmath, amssymb,
        // esint and the other packages that provide special glyphs
+       // The package only supports XeTeX currently.
        if (features.runparams().flavor == OutputParams::XETEX
            && useNonTeXFonts)
                lyxpreamble += "\\usepackage{xunicode}\n";
@@ -2347,14 +2350,7 @@ bool BufferParams::addLayoutModule(string const & modName)
 
 string BufferParams::bufferFormat() const
 {
-       string format = documentClass().outputFormat();
-       if (format == "latex") {
-               if (useNonTeXFonts)
-                       return "xetex"; // actually "xetex or luatex"
-               if (encoding().package() == Encoding::japanese)
-                       return "platex";
-       }
-       return format;
+       return documentClass().outputFormat();
 }
 
 
@@ -2415,16 +2411,9 @@ vector<string> BufferParams::backends() const
                        v.push_back("pdflatex");
                        v.push_back("latex");
                }
+               v.push_back("xetex");
                v.push_back("luatex");
                v.push_back("dviluatex");
-               v.push_back("xetex");
-       } else if (buffmt == "xetex") {
-               v.push_back("xetex");
-               // FIXME: need to test all languages (bug 8205)
-               if (!language || !language->isPolyglossiaExclusive()) {
-                       v.push_back("luatex");
-                       v.push_back("dviluatex");
-               }
        } else
                v.push_back(buffmt);
 
@@ -2973,8 +2962,8 @@ void BufferParams::writeEncodingPreamble(otexstream & os,
        // XeTeX/LuaTeX: (see also #9740)
        // With Unicode fonts we use utf8-plain without encoding package.
        // With TeX fonts, we cannot use utf8-plain, but "inputenc" fails.
-       // XeTeX must use ASCII encoding, for LuaTeX, we load
-       // "luainputenc" (see below).
+       // XeTeX must use ASCII encoding (see Buffer.cpp),
+       //  for LuaTeX, we load "luainputenc" (see below).
        if (useNonTeXFonts || features.runparams().flavor == OutputParams::XETEX)
                return;