]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeXFeatures.cpp
Replace Q_WS_WIN with appropriate guards to account for Qt5.
[lyx.git] / src / LaTeXFeatures.cpp
index 8ddd345bb68a04ab79378fb45aadd6ee0d5e6dec..506af187c911d71d574e6d45f6f3f39f142040e2 100644 (file)
@@ -426,9 +426,14 @@ void LaTeXFeatures::require(set<string> const & names)
 
 
 void LaTeXFeatures::useLayout(docstring const & layoutname)
+{
+       useLayout(layoutname, 0);
+}
+
+
+void LaTeXFeatures::useLayout(docstring const & layoutname, int level)
 {
        // Some code to avoid loops in dependency definition
-       static int level = 0;
        const int maxlevel = 30;
        if (level > maxlevel) {
                lyxerr << "LaTeXFeatures::useLayout: maximum level of "
@@ -448,9 +453,7 @@ void LaTeXFeatures::useLayout(docstring const & layoutname)
                require(layout.requires());
 
                if (!layout.depends_on().empty()) {
-                       ++level;
-                       useLayout(layout.depends_on());
-                       --level;
+                       useLayout(layout.depends_on(), level + 1);
                }
                usedLayouts_.push_back(layoutname);
        } else {
@@ -458,8 +461,6 @@ void LaTeXFeatures::useLayout(docstring const & layoutname)
                       << to_utf8(layoutname) << "' does not exist in this class"
                       << endl;
        }
-
-       --level;
 }
 
 
@@ -709,9 +710,6 @@ char const * simplefeatures[] = {
        "fancybox",
        "calc",
        "units",
-       "tipa",
-       "tipx",
-       "tone",
        "framed",
        "soul",
        "textcomp",
@@ -743,7 +741,11 @@ char const * simplefeatures[] = {
        "multirow",
        "tfrupee",
        "shapepar",
-       "rsphrase"
+       "rsphrase",
+       "algorithm2e",
+       "sectionbox",
+       "tcolorbox",
+       "pdfcomment"
 };
 
 char const * bibliofeatures[] = {
@@ -859,6 +861,16 @@ string const LaTeXFeatures::getPackages() const
        // The rest of these packages are somewhat more complicated
        // than those above.
 
+       // The tipa package and its extensions (tipx, tone) must not
+       // be loaded with non-TeX fonts, since fontspec includes the
+       // respective macros
+       if (mustProvide("tipa") && !params_.useNonTeXFonts)
+               packages << "\\usepackage{tipa}\n";
+       if (mustProvide("tipx") && !params_.useNonTeXFonts)
+               packages << "\\usepackage{tipx}\n";
+       if (mustProvide("tone") && !params_.useNonTeXFonts)
+               packages << "\\usepackage{tone}\n";
+
        // if fontspec or newtxmath is used, AMS packages have to be loaded
        // before fontspec (in BufferParams)
        string const amsPackages = loadAMSPackages();