#include "Layout.h"
#include "Lexer.h"
#include "TextClass.h"
+#include "version.h"
#include "support/convert.h"
#include "support/FileName.h"
"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};
/**
"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)
"tgbonum", "tgchorus", "tgpagella", "tgschola", "tgtermes", "utopia", 0};
const char * const known_sans_fonts[] = { "avant", "berasans", "biolinum-type1",
-"cmbr", "cmss", "helvet", "kurier", "kurierl", "lmss", "tgadventor", "tgheros", 0};
-
-const char * const known_kurier_fonts[] = { "kurier", "kurierl",
-"kurier-condensed", "kurier-light-condensed", 0};
+"cmbr", "cmss", "helvet", "iwona", "iwonac", "iwonal", "iwonalc", "kurier",
+"kurierc", "kurierl", "kurierlc", "lmss", "tgadventor", "tgheros", 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};
/**
* 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",
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
"irish", "portuges", "thai", "bahasai", "english", "italian", "romanian", "turkish",
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
-"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazil",
-"brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton", "french",
-"lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
-"welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek",
-"marathi", "spanish",
+"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "tibetan", "urdu",
+"brazil", "brazilian", "finnish", "lithuanian", "scottish", "usorbian", "breton",
+"french", "lsorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar",
+"slovak", "welsh", "catalan", "german", "malayalam", "slovenian", "coptic", "greek",
+"marathi", "spanish", "austrian",
"american", "ancient", "australian", "british", "monotonic", "newzealand",
"polytonic", 0};
"armenian", "divehi", "interlingua", "polish", "telugu", "asturian", "dutch",
"irish", "portuges", "thai", "bahasa", "english", "italian", "romanian", "turkish",
"bahasam", "esperanto", "lao", "russian", "turkmen", "basque", "estonian", "latin",
-"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "urdu", "brazilian",
-"brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton", "french",
-"lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar", "slovak",
-"welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek",
-"marathi", "spanish",
+"samin", "ukrainian", "bengali", "farsi", "latvian", "sanskrit", "tibetan", "urdu",
+"brazilian", "brazilian", "finnish", "lithuanian", "scottish", "uppersorbian", "breton",
+"french", "lowersorbian", "serbian", "vietnamese", "bulgarian", "galician", "magyar",
+"slovak", "welsh", "catalan", "ngerman", "malayalam", "slovene", "coptic", "greek",
+"marathi", "spanish", "naustrian",
"american", "ancientgreek", "australian", "british", "greek", "newzealand",
"polutonikogreek", 0};
if (pos != string::npos) {
string value = scale.substr(pos + 1);
if (isStrDbl(value)) {
- percentage = convert<string>(100 * convert<double>(value));
+ percentage = convert<string>(
+ static_cast<int>(100 * convert<double>(value)));
return true;
}
}
h_biblio_style = "plain";
h_bibtex_command = "default";
h_cite_engine = "basic";
- h_cite_engine_type = "numerical";
+ h_cite_engine_type = "default";
h_color = "#008000";
h_defskip = "medskip";
//h_float_placement;
//h_pdf_author;
//h_pdf_subject;
//h_pdf_keywords;
- h_pdf_bookmarks = "1";
+ h_pdf_bookmarks = "0";
h_pdf_bookmarksnumbered = "0";
h_pdf_bookmarksopen = "0";
h_pdf_bookmarksopenlevel = "1";
h_pdf_pdfborder = "0";
h_pdf_colorlinks = "0";
h_pdf_backref = "section";
- h_pdf_pdfusetitle = "1";
+ h_pdf_pdfusetitle = "0";
//h_pdf_pagemode;
//h_pdf_quoted_options;
h_quotes_language = "english";
// 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)) {
// 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";
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)
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 << '}';
}
// output the LyX file settings
- os << "#LyX file created by tex2lyx " << PACKAGE_VERSION << "\n"
+ // Important: Keep the version formatting in sync with LyX and
+ // lyx2lyx (bug 7951)
+ os << "#LyX file created by tex2lyx " << lyx_version_major << '.'
+ << lyx_version_minor << '\n'
<< "\\lyxformat " << LYX_FORMAT << '\n'
<< "\\begin_document\n"
<< "\\begin_header\n"
p.skip_spaces();
in_lyx_preamble = true;
}
- if (name == "\\bfdefault")
- // LyX re-adds this if a kurier font is used
- if (is_known(h_font_sans, known_kurier_fonts) && body == "b") {
- p.skip_spaces();
- in_lyx_preamble = true;
- }
// remove the lyxdot definition that is re-added by LyX
// if necessary
in_lyx_preamble = was_in_lyx_preamble;
}
- else if (t.cs() == "edef"){
- // we only support this for kurier fonts
- string const command = p.next_token().asInput();
- p.get_token();
- if (command == "\\sfdefault") {
- p.getArg('{', '}');
- if (h_font_sans == "kurier")
- h_font_sans = "kurier-condensed";
- if (h_font_sans == "kurierl")
- h_font_sans = "kurier-light-condensed";
- p.skip_spaces();
- }
- else
- h_preamble << "\\edef" << command << "{" << p.getArg('{', '}') << "}\n";
- }
-
else if (t.cs() == "documentclass") {
vector<string>::iterator it;
vector<string> opts = split_options(p.getArg('[', ']'));