From e516a9f9e5e8c201c6f80e88adc9b80a110e83e5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Sun, 1 Jul 2012 01:42:32 +0200 Subject: [PATCH] make tex2lyx in branch compilable again - Preamble.cpp/: - move list definition out of anon namespace - declare lists and a function in the class - remove ancientgreek since this is LyX 2.1-only - XeTeX-polyglossia.tex: remove ancientgreek --- src/tex2lyx/Preamble.cpp | 71 +++++++++++++------------- src/tex2lyx/Preamble.h | 8 ++- src/tex2lyx/test/XeTeX-polyglossia.tex | 2 +- src/tex2lyx/text.cpp | 10 ++-- 4 files changed, 48 insertions(+), 43 deletions(-) diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index da4a50fffe..746e216eba 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -88,41 +88,6 @@ const char * const known_coded_languages[] = {"french", "afrikaans", "albanian", "uppersorbian", "uppersorbian", "english", "english", "vietnamese", "welsh", 0}; -/** - * known polyglossia language names (including variants) - */ -const char * const polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil", -"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", -"american", "ancient", "british", "monotonic", -"polytonic", 0}; - -/** - * the same as polyglossia_languages with .lyx names - * please keep this in sync with polyglossia_languages line by line! - */ -const char * const coded_polyglossia_languages[] = { -"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", -"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil", -"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", -"american", "ancientgreek", "british", "greek", -"polutonikogreek", 0}; - /// languages with english quotes (.lyx names) const char * const known_english_quotes_languages[] = {"american", "bahasa", "bahasam", "brazilian", "canadian", "chinese-simplified", "english", @@ -308,6 +273,40 @@ string process_keyval_opt(vector & options, string name) } // anonymous namespace +/** + * known polyglossia language names (including variants) + */ +const char * const Preamble::polyglossia_languages[] = { +"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", +"nynorsk", "syriac", "arabic", "danish", "icelandic", "occitan", "tamil", +"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", +"american", "british", "monotonic", "polytonic", 0}; + +/** + * the same as polyglossia_languages with .lyx names + * please keep this in sync with polyglossia_languages line by line! + */ +const char * const Preamble::coded_polyglossia_languages[] = { +"albanian", "croatian", "hebrew", "norsk", "swedish", "amharic", "czech", "hindi", +"nynorsk", "syriac", "arabic_arabi", "danish", "icelandic", "occitan", "tamil", +"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", +"american", "british", "greek", "polutonikogreek", 0}; + + bool Preamble::indentParagraphs() const { return h_paragraph_separation == "indent"; @@ -1587,7 +1586,7 @@ string babel2lyx(string const & language) } -string polyglossia2lyx(string const & language) +string Preamble::polyglossia2lyx(string const & language) { char const * const * where = is_known(language, polyglossia_languages); if (where) diff --git a/src/tex2lyx/Preamble.h b/src/tex2lyx/Preamble.h index 8372fcb33c..1389a86db9 100644 --- a/src/tex2lyx/Preamble.h +++ b/src/tex2lyx/Preamble.h @@ -43,6 +43,8 @@ public: /// std::string use_indices() const { return h_use_indices; } /// + std::string polyglossia2lyx(std::string const & language); + /// bool indentParagraphs() const; /// bool isPackageUsed(std::string const & package) const; @@ -66,13 +68,17 @@ public: /// Get author named \p name (must be registered first) Author const & getAuthor(std::string const & name) const; - /// Parses the LaTeX preamble into internal data void parse(Parser & p, std::string const & forceclass, TeX2LyXDocClass & tc); /// Writes the LyX file header from internal data bool writeLyXHeader(std::ostream & os, bool subdoc); + /// known polyglossia language names (including variants) + static const char * const polyglossia_languages[]; + /// the same as polyglossia_languages with .lyx names + static const char * const coded_polyglossia_languages[]; + private: /// std::map > used_packages; diff --git a/src/tex2lyx/test/XeTeX-polyglossia.tex b/src/tex2lyx/test/XeTeX-polyglossia.tex index 826f5060db..dc85616c9b 100644 --- a/src/tex2lyx/test/XeTeX-polyglossia.tex +++ b/src/tex2lyx/test/XeTeX-polyglossia.tex @@ -13,7 +13,7 @@ \part{df} -1 English \textgreek[variant=ancient]{ancient Greek} English +1 English \textgreek[variant=polytonic]{polytonic Greek} English \textgreek[numerals=arabic, variant=ancient]{ancient G\textsf{reek} with Arabic numerals} English \begin{albanian}% diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 2543b47e4d..0089a0ea3d 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -1189,7 +1189,7 @@ void parse_environment(Parser & p, ostream & os, bool outer, } } - else if (is_known(name, polyglossia_languages)) { + else if (is_known(name, preamble.polyglossia_languages)) { // We must begin a new paragraph if not already done if (! parent_context.atParagraphStart()) { parent_context.check_end_layout(os); @@ -1197,7 +1197,7 @@ void parse_environment(Parser & p, ostream & os, bool outer, } // save the language in the context so that it is // handled by parse_text - parent_context.font.language = polyglossia2lyx(name); + parent_context.font.language = preamble.polyglossia2lyx(name); parse_text(p, os, FLAG_END, outer, parent_context); // Just in case the environment is empty parent_context.extra_stuff.erase(); @@ -3359,7 +3359,7 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, } else if (prefixIs(t.cs(), "text") - && is_known(t.cs().substr(4), polyglossia_languages)) { + && is_known(t.cs().substr(4), preamble.polyglossia_languages)) { // scheme is \textLANGUAGE{text} where LANGUAGE is in polyglossia_languages[] string lang; // We have to output the whole command if it has an option @@ -3374,14 +3374,14 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, if (pos_var != string::npos && i == string::npos) { string variant; variant = langopts.substr(k + 1, langopts.length() - k - 2); - lang = polyglossia2lyx(variant); + lang = preamble.polyglossia2lyx(variant); parse_text_attributes(p, os, FLAG_ITEM, outer, context, "\\lang", context.font.language, lang); } else handle_ert(os, t.asInput() + langopts, context); } else { - lang = polyglossia2lyx(t.cs().substr(4, string::npos)); + lang = preamble.polyglossia2lyx(t.cs().substr(4, string::npos)); parse_text_attributes(p, os, FLAG_ITEM, outer, context, "\\lang", context.font.language, lang); -- 2.39.5