]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.cpp
fix View Source for literate documents
[lyx.git] / src / LaTeXFeatures.cpp
index d0dbb6ffe6479892fdf290746107e29f47bd4e7d..02c47481950d592b91066b110a84932d39d1505f 100644 (file)
@@ -520,6 +520,35 @@ int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *);
 }
 
 
+string const LaTeXFeatures::getColorOptions() const
+{
+       ostringstream colors;
+
+       // Handling the color packages separately is needed to be able to load them
+       // before babel when hyperref is loaded with the colorlinks option
+       // for more info see Bufferparams.cpp
+
+       // [x]color.sty
+       if (mustProvide("color") || mustProvide("xcolor")) {
+               string const package =
+                       (mustProvide("xcolor") ? "xcolor" : "color");
+               if (params_.graphicsDriver == "default"
+                       || params_.graphicsDriver == "none")
+                       colors << "\\usepackage{" << package << "}\n";
+               else
+                       colors << "\\usepackage["
+                                << params_.graphicsDriver
+                                << "]{" << package << "}\n";
+       }
+
+       // pdfcolmk must be loaded after color
+       if (mustProvide("pdfcolmk"))
+               colors << "\\usepackage{pdfcolmk}\n";
+
+       return colors.str();
+}
+
+
 string const LaTeXFeatures::getPackages() const
 {
        ostringstream packages;
@@ -547,10 +576,11 @@ string const LaTeXFeatures::getPackages() const
        //
 
        // esint is preferred for esintoramsmath
-       if ((mustProvide("amsmath") &&
-            params_.use_amsmath != BufferParams::package_off) ||
-           (mustProvide("esintoramsmath") &&
-            params_.use_esint == BufferParams::package_off)) {
+       if ((mustProvide("amsmath")
+            && params_.use_amsmath != BufferParams::package_off)
+           || (mustProvide("esintoramsmath")
+               && params_.use_esint == BufferParams::package_off
+               && params_.use_amsmath != BufferParams::package_off)) {
                packages << "\\usepackage{amsmath}\n";
        } else if (mustProvide("amsbsy")) {
                // amsbsy is already provided by amsmath
@@ -573,23 +603,8 @@ string const LaTeXFeatures::getPackages() const
        if (mustProvide("accents"))
                packages << "\\usepackage{accents}\n";
 
-       // [x]color.sty
-       if (mustProvide("color") || mustProvide("xcolor")) {
-               string const package =
-                       (mustProvide("xcolor") ? "xcolor" : "color");
-               if (params_.graphicsDriver == "default"
-                       || params_.graphicsDriver == "none")
-                       packages << "\\usepackage{" << package << "}\n";
-               else
-                       packages << "\\usepackage["
-                                << params_.graphicsDriver
-                                << "]{" << package << "}\n";
-       }
-
-       // pdfcolmk must be loaded after color
-       if (mustProvide("pdfcolmk"))
-               packages << "\\usepackage{pdfcolmk}\n";
-
+       // [x]color and pdfcolmk are handled in getColorOptions() above
+       
        // makeidx.sty
        if (isRequired("makeidx")) {
                if (!tclass.provides("makeidx"))