]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.cpp
EmbeddedObjects.lyx, Math.lyx, UserGuide.lyx: Spanish translation updates by Ignacio
[lyx.git] / src / LaTeXFeatures.cpp
index d0dbb6ffe6479892fdf290746107e29f47bd4e7d..fc3ef3c6bc214dd7a830ee4ff8078fa3e12a7970 100644 (file)
@@ -3,11 +3,11 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author José Matos
- * \author Lars Gullik Bjønnes
+ * \author José Matos
+ * \author Lars Gullik Bjønnes
  * \author Jean-Marc Lasgouttes
- * \author Jürgen Vigna
- * \author André Pönitz
+ * \author Jürgen Vigna
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -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"))
@@ -610,7 +625,7 @@ string const LaTeXFeatures::getPackages() const
        if (isRequired("framed") && mustProvide("color")) {
                RGBColor c = rgbFromHexName(lcolor.getX11Name(Color_shadedbg));
                //255.0 to force conversion to double
-               //NOTE As Jürgen Spitzmüller pointed out, an alternative would be
+               //NOTE As Jürgen Spitzmüller pointed out, an alternative would be
                //to use the xcolor package instead, and then we can do
                // \define{shadcolor}{RGB}...
                //and not do any conversion. We'd then need to require xcolor
@@ -695,11 +710,12 @@ string const LaTeXFeatures::getMacros() const
        for (; pit != pend; ++pit)
                macros << *pit << '\n';
 
-       if (mustProvide("papersize"))
+        if (mustProvide("papersize")) {
                if (runparams_.flavor == OutputParams::LATEX)
                        macros << papersizedvi_def << '\n';
                else
                        macros << papersizepdf_def << '\n';
+       }
 
        if (mustProvide("LyX"))
                macros << lyx_def << '\n';