]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/Preamble.cpp
do not hardcode packages loaded by external insets
[lyx.git] / src / tex2lyx / Preamble.cpp
index f0e0f7ae9a14f8d43a065887a51f116d0c96c019..6ef3aa886bfaaf7f33975f8ef9124f719422fffd 100644 (file)
@@ -57,12 +57,12 @@ namespace {
  * please keep this in sync with known_coded_languages line by line!
  */
 const char * const known_languages[] = {"acadian", "afrikaans", "albanian",
-"american", "arabic", "arabtex", "austrian", "bahasa", "bahasai", "bahasam",
-"basque", "belarusian", "brazil", "brazilian", "breton", "british", "bulgarian",
-"canadian", "canadien", "catalan", "croatian", "czech", "danish", "dutch",
-"english", "esperanto", "estonian", "farsi", "finnish", "francais", "french",
-"frenchb", "frenchle", "frenchpro", "galician", "german", "germanb", "greek",
-"hebrew", "hungarian", "icelandic", "indon", "indonesian", "interlingua",
+"american", "arabic", "arabtex", "australian", "austrian", "bahasa", "bahasai",
+"bahasam", "basque", "belarusian", "brazil", "brazilian", "breton", "british",
+"bulgarian", "canadian", "canadien", "catalan", "croatian", "czech", "danish",
+"dutch", "english", "esperanto", "estonian", "farsi", "finnish", "francais",
+"french", "frenchb", "frenchle", "frenchpro", "galician", "german", "germanb",
+"greek", "hebrew", "hungarian", "icelandic", "indon", "indonesian", "interlingua",
 "irish", "italian", "kazakh", "latin", "latvian", "lithuanian", "lowersorbian",
 "lsorbian", "magyar", "malay", "meyalu", "mongolian", "naustrian", "newzealand",
 "ngerman", "ngermanb", "norsk", "nynorsk", "polutonikogreek", "polish",
@@ -77,14 +77,14 @@ const char * const known_languages[] = {"acadian", "afrikaans", "albanian",
  * please keep this in sync with known_languages line by line!
  */
 const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
-"american", "arabic_arabi", "arabic_arabtex", "austrian", "bahasa", "bahasa", "bahasam",
-"basque", "belarusian", "brazilian", "brazilian", "breton", "british", "bulgarian",
-"canadian", "canadien", "catalan", "croatian", "czech", "danish", "dutch",
-"english", "esperanto", "estonian", "farsi", "finnish", "french", "french",
-"french", "french", "french", "galician", "german", "german", "greek",
-"hebrew", "magyar", "icelandic", "bahasa", "bahasa", "interlingua",
+"american", "arabic_arabi", "arabic_arabtex", "australian", "austrian", "bahasa", "bahasa",
+"bahasam", "basque", "belarusian", "brazilian", "brazilian", "breton", "british",
+"bulgarian", "canadian", "canadien", "catalan", "croatian", "czech", "danish",
+"dutch", "english", "esperanto", "estonian", "farsi", "finnish", "french",
+"french", "french", "french", "french", "galician", "german", "german",
+"greek", "hebrew", "magyar", "icelandic", "bahasa", "bahasa", "interlingua",
 "irish", "italian", "kazakh", "latin", "latvian", "lithuanian", "lowersorbian",
-"lowersorbian", "magyar", "bahasam", "bahasam", "mongolian", "naustrian", "english",
+"lowersorbian", "magyar", "bahasam", "bahasam", "mongolian", "naustrian", "newzealand",
 "ngerman", "ngerman", "norsk", "nynorsk", "polutonikogreek", "polish",
 "portuguese", "portuguese", "romanian", "russian", "russian", "samin",
 "scottish", "serbian", "serbian-latin", "slovak", "slovene", "spanish",
@@ -93,9 +93,10 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian",
 0};
 
 /// languages with english quotes (.lyx names)
-const char * const known_english_quotes_languages[] = {"american", "bahasa",
-"bahasam", "brazilian", "canadian", "chinese-simplified", "english",
-"esperanto", "hebrew", "irish", "korean", "portuguese", "scottish", "thai", 0};
+const char * const known_english_quotes_languages[] = {"american", "australian",
+"bahasa", "bahasam", "brazilian", "canadian", "chinese-simplified", "english",
+"esperanto", "hebrew", "irish", "korean", "newzealand", "portuguese", "scottish",
+"thai", 0};
 
 /// languages with french quotes (.lyx names)
 const char * const known_french_quotes_languages[] = {"albanian",
@@ -170,6 +171,12 @@ const char * const known_xetex_packages[] = {"arabxetex", "fixlatvian",
 "fontbook", "fontwrap", "mathspec", "philokalia", "polyglossia", "unisugar",
 "xeCJK", "xecolor", "xecyr", "xeindex", "xepersian", "xunicode", 0};
 
+/// packages that are automatically skipped if loaded by LyX
+const char * const known_lyx_packages[] = {"array", "booktabs", "calc",
+"color", "float", "graphicx", "hhline", "ifthen", "longtable", "makeidx",
+"multirow", "nomencl", "pdfpages", "rotfloat", "splitidx", "setspace",
+"subscript", "textcomp", "ulem", "url", "varioref", "verbatim", "wrapfig", 0};
+
 // codes used to remove packages that are loaded automatically by LyX.
 // Syntax: package_beg_sep<name>package_mid_sep<package loading code>package_end_sep
 const char package_beg_sep = '\001';
@@ -714,31 +721,19 @@ void Preamble::handle_package(Parser &p, string const & name,
        else if (name == "prettyref")
                ; // ignore this FIXME: Use the package separator mechanism instead
 
-       else if (name == "pdfpages")
-               ; // ignore this FIXME: Use the package separator mechanism instead
-
        else if (name == "lyxskak") {
                // ignore this and its options
-               if (!options.empty())
-                       options.clear();
+               const char * const o[] = {"ps", "mover", 0};
+               delete_opt(options, o);
        }
 
-       else if (name == "array" || name == "booktabs" || name == "calc" ||
-                name == "color" || name == "float" || name == "hhline" ||
-                name == "ifthen" || name == "longtable" || name == "makeidx" ||
-                name == "multirow" || name == "nomencl" || name == "rotfloat" ||
-                name == "splitidx" || name == "setspace" || name == "subscript" ||
-                name == "textcomp" || name == "ulem" || name == "url" ||
-                name == "varioref" || name == "verbatim" || name == "wrapfig") {
+       else if (is_known(name, known_lyx_packages) && options.empty()) {
                if (!in_lyx_preamble)
                        h_preamble << package_beg_sep << name
                                   << package_mid_sep << "\\usepackage{"
                                   << name << "}\n" << package_end_sep;
        }
 
-       else if (name == "graphicx")
-               ; // ignore this FIXME: Use the package separator mechanism instead
-
        else if (name == "geometry")
                handle_geometry(options);