X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FPreamble.cpp;h=622c7df1435a61a5a6963ca5f6e7085173a2ee27;hb=02b2cd50ed925323ad0a1ae6905c424e36da6b6d;hp=c4d41c88edf2c52023c0b78bf377d9a4f153b587;hpb=c7cdac6561c440af205628f92ecbebef6d6a21da;p=lyx.git diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index c4d41c88ed..622c7df143 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -62,11 +62,12 @@ const char * const known_languages[] = {"acadian", "afrikaans", "albanian", "greek", "hebrew", "hungarian", "icelandic", "indon", "indonesian", "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin", "latvian", "lithuanian", "lowersorbian", "lsorbian", "magyar", "malay", "meyalu", "mongolian", "naustrian", -"newzealand", "ngerman", "ngermanb", "norsk", "nynorsk", "polutonikogreek", "polish", -"portuges", "portuguese", "romanian", "russian", "russianb", "samin", -"scottish", "serbian", "serbian-latin", "slovak", "slovene", "spanish", -"swedish", "thai", "turkish", "turkmen", "ukraineb", "ukrainian", -"uppersorbian", "UKenglish", "USenglish", "usorbian", "vietnam", "welsh", +"newzealand", "ngerman", "ngermanb", "norsk", "nswissgerman", "nynorsk", +"polutonikogreek", "polish", "portuges", "portuguese", "romanian", "russian", +"russianb", "samin", "scottish", "serbian", "serbian-latin", "slovak", +"slovene", "spanish", "swedish", "swissgerman", "thai", "turkish", "turkmen", +"ukraineb", "ukrainian", "uppersorbian", "UKenglish", "USenglish", "usorbian", +"vietnam", "welsh", 0}; /** @@ -82,11 +83,12 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian", "greek", "hebrew", "magyar", "icelandic", "bahasa", "bahasa", "interlingua", "irish", "italian", "japanese", "kazakh", "kurmanji", "latin", "latvian", "lithuanian", "lowersorbian", "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", -"swedish", "thai", "turkish", "turkmen", "ukrainian", "ukrainian", -"uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh", +"newzealand", "ngerman", "ngerman", "norsk", "german-ch", "nynorsk", +"polutonikogreek", "polish", "portuguese", "portuguese", "romanian", "russian", +"russian", "samin", "scottish", "serbian", "serbian-latin", "slovak", +"slovene", "spanish", "swedish", "german-ch-old", "thai", "turkish", "turkmen", +"ukrainian", "ukrainian", "uppersorbian", "english", "english", "uppersorbian", +"vietnamese", "welsh", 0}; /// languages with danish quotes (.lyx names) @@ -133,12 +135,9 @@ const char * const known_sans_fonts[] = { "avant", "berasans", "biolinum-type1", "cmbr", "cmss", "helvet", "iwona", "iwonac", "iwonal", "iwonalc", "kurier", "kurierc", "kurierl", "kurierlc", "lmss", "tgadventor", "tgheros", 0}; -const char * const known_kurier_fonts[] = { "kurier", "kurierl", -"kurier-condensed", "kurier-light-condensed", 0}; - const char * const known_typewriter_fonts[] = { "beramono", "cmtl", "cmtt", -"courier", "lmtt", "luximono", "fourier", "lmodern", "mathpazo", "mathptmx", -"newcent", "tgcursor", "txtt", 0}; +"courier", "lmtt", "luximono", "fourier", "libertineMono-type1", "lmodern", +"mathpazo", "mathptmx", "newcent", "tgcursor", "txtt", 0}; const char * const known_math_fonts[] = { "eulervm", "newtxmath", 0}; @@ -298,6 +297,7 @@ string process_keyval_opt(vector & options, string name) /** * known polyglossia language names (including variants) + * FIXME: support spelling=old for german variants (german vs. ngerman LyX names etc) */ const char * const Preamble::polyglossia_languages[] = { "albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", @@ -309,7 +309,7 @@ const char * const Preamble::polyglossia_languages[] = { "brazil", "brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french", "lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", "welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek", -"marathi", "spanish", +"marathi", "spanish", "austrian", "american", "ancient", "australian", "british", "monotonic", "newzealand", "polytonic", 0}; @@ -327,7 +327,7 @@ const char * const Preamble::coded_polyglossia_languages[] = { "brazilian", "brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french", "lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak", "welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek", -"marathi", "spanish", +"marathi", "spanish", "naustrian", "american", "ancientgreek", "australian", "british", "greek", "newzealand", "polutonikogreek", 0}; @@ -424,7 +424,8 @@ bool scale_as_percentage(string const & scale, string & percentage) if (pos != string::npos) { string value = scale.substr(pos + 1); if (isStrDbl(value)) { - percentage = convert(100 * convert(value)); + percentage = convert( + static_cast(100 * convert(value))); return true; } } @@ -726,14 +727,19 @@ void Preamble::handle_package(Parser &p, string const & name, // sansserif fonts if (is_known(name, known_sans_fonts)) { h_font_sans = name; - if (options.size() == 1) { + if (options.size() >= 1) { if (scale_as_percentage(opts, h_font_sf_scale)) options.clear(); } } - if (name == "biolinum-type1") + if (name == "biolinum-type1") { h_font_sans = "biolinum"; + // biolinum can have several options, e.g. [osf,scaled=0.97] + string::size_type pos = opts.find("osf"); + if (pos != string::npos) + h_font_osf = "true"; + } // typewriter fonts if (is_known(name, known_typewriter_fonts)) { @@ -741,13 +747,17 @@ void Preamble::handle_package(Parser &p, string const & name, // fourier as typewriter is handled in handling of \ttdefault if (name != "fourier") { h_font_typewriter = name; - if (options.size() == 1) { + if (options.size() >= 1) { if (scale_as_percentage(opts, h_font_tt_scale)) options.clear(); } } } + if (name == "libertineMono-type1") { + h_font_typewriter = "libertine-mono"; + } + // font uses old-style figure if (name == "eco") h_font_osf = "true"; @@ -767,6 +777,14 @@ void Preamble::handle_package(Parser &p, string const & name, h_font_math = "minion-ntxm"; } + if (name == "iwona") + if (opts == "math") + h_font_math = "iwona-math"; + + if (name == "kurier") + if (opts == "math") + h_font_math = "kurier-math"; + // after the detection and handling of special cases, we can remove the // fonts, otherwise they would appear in the preamble, see bug #7856 if (is_known(name, known_roman_fonts) || is_known(name, known_sans_fonts) @@ -957,9 +975,24 @@ void Preamble::handle_package(Parser &p, string const & name, h_cite_engine_type = "authoryear"; } + else if (name == "bibtopic") + h_use_bibtopic = "true"; + else if (name == "hyperref") handle_hyperref(options); + else if (name == "algorithm2e") { + // Load "algorithm2e" module + addModule("algorithm2e"); + // Add the package options to the global document options + if (!options.empty()) { + if (h_options.empty()) + h_options = join(options, ","); + else + h_options += ',' + join(options, ","); + } + } + else if (!in_lyx_preamble) { if (options.empty()) h_preamble << "\\usepackage{" << name << '}';