On Tue, Oct 23, 2007 at 05:24:52PM +0200, Jürgen Spitzmüller wrote:
> Enrico Forestieri wrote:
> > > If so, do you really have to enter this loop in knownLangChars in any
> > > case? Can't you return earlier if a proper language is set? I guess you
> > > only need to do the check for "if (prefixIs(latex1, from_ascii("\\" +
> > > preamble)))" before the loop, no?
> >
> > Yes, but why? You would return to the loop in simpleTeXOnePar simply
> > to get back here again when the next char is of the same type. This
> > would be inefficient.
> 
> If you say so. I didn't follow the whole chain, I'm just trying to understand 
> your patch.

Here is a revised patch. I've done some renaming and now don't even
call anymore the relevant method when a character can be translated
using the current encoding.

-- 
Enrico
Index: src/Paragraph.cpp
===================================================================
--- src/Paragraph.cpp   (revision 21157)
+++ src/Paragraph.cpp   (working copy)
@@ -67,6 +67,7 @@ using std::ostream;
 namespace lyx {
 
 using support::contains;
+using support::prefixIs;
 using support::suffixIs;
 using support::rsplit;
 
@@ -188,6 +189,11 @@ public:
                             unsigned int & column,
                             Font const & font,
                             Layout const & style);
+       /// Output consecutive unicode chars, belonging to the same script as
+       /// specified by the latex macro \p ltx, to \p os starting from \p c.
+       /// \return the number of characters written.
+       int writeScriptChars(odocstream & os, value_type c, docstring const & 
ltx,
+                            Change &, Encoding const &, pos_type &);
        ///
        void simpleTeXSpecialChars(Buffer const &, BufferParams const &,
                                   odocstream &,
@@ -591,7 +597,7 @@ bool Paragraph::Pimpl::simpleTeXBlanks(E
        if (style.pass_thru)
                return false;
 
-       if (i < size() - 1) {
+       if (i + 1 < size()) {
                char_type next = getChar(i + 1);
                if (Encodings::isCombiningChar(next)) {
                        // This space has an accent, so we must always output 
it.
@@ -605,7 +611,7 @@ bool Paragraph::Pimpl::simpleTeXBlanks(E
            && column > lyxrc.plaintext_linelen
            && i
            && getChar(i - 1) != ' '
-           && (i < size() - 1)
+           && (i + 1 < size())
            // same in FreeSpacing mode
            && !owner_->isFreeSpacing()
            // In typewriter mode, we want to avoid
@@ -628,6 +634,66 @@ bool Paragraph::Pimpl::simpleTeXBlanks(E
 }
 
 
+int Paragraph::Pimpl::writeScriptChars(odocstream & os,
+                                      value_type c,
+                                      docstring const & ltx,
+                                      Change & runningChange,
+                                      Encoding const & encoding,
+                                      pos_type & i)
+{
+       // We only arrive here when a proper language for character c has not
+       // been specified (i.e., it could not be translated in the current
+       // latex encoding) and it belongs to a known script.
+       // Parameter ltx contains the latex translation of c as specified in
+       // the unicodesymbols file and is something like "\textXXX{<spec>}".
+       // The latex macro name "textXXX" specifies the script to which c
+       // belongs and we use it in order to check whether characters from the
+       // same script immediately follow, such that we can collect them in a
+       // single "\textXXX" macro. So, we have to retain "\textXXX{<spec>"
+       // for the first char but only "<spec>" for all subsequent chars.
+       docstring::size_type const brace1 = ltx.find_first_of(from_ascii("{"));
+       docstring::size_type const brace2 = ltx.find_last_of(from_ascii("}"));
+       string script = to_ascii(ltx.substr(1, brace1 - 1));
+       int length = ltx.substr(0, brace2).length();
+       os << ltx.substr(0, brace2);
+       while (i + 1 < size()) {
+               char_type next = getChar(i + 1);
+               // Stop here if next character belongs to another script
+               // or there is a change in change tracking status.
+               if (!Encodings::isKnownScriptChar(next, script) ||
+                   runningChange != lookupChange(i + 1))
+                       break;
+               Font prev_font;
+               bool found = false;
+               FontList::const_iterator cit = fontlist.begin();
+               FontList::const_iterator end = fontlist.end();
+               for (; cit != end; ++cit) {
+                       if (cit->pos() >= i && !found) {
+                               prev_font = cit->font();
+                               found = true;
+                       }
+                       if (cit->pos() >= i + 1)
+                               break;
+               }
+               // Stop here if there is a font attribute or encoding change.
+               if (found && cit != end && prev_font != cit->font())
+                       break;
+               docstring const latex = encoding.latexChar(next);
+               docstring::size_type const b1 =
+                                       latex.find_first_of(from_ascii("{"));
+               docstring::size_type const b2 =
+                                       latex.find_last_of(from_ascii("}"));
+               int len = b2 - b1 - 1;
+               os << latex.substr(b1 + 1, len);
+               length += len;
+               ++i;
+       }
+       os << '}';
+       ++length;
+       return length;
+}
+
+
 bool Paragraph::Pimpl::isTextAt(string const & str, pos_type pos) const
 {
        pos_type const len = str.length();
@@ -947,7 +1013,7 @@ void Paragraph::Pimpl::simpleTeXSpecialC
 
                        if (pnr == phrases_nr && c != '\0') {
                                Encoding const & encoding = 
*(runparams.encoding);
-                               if (i < size() - 1) {
+                               if (i + 1 < size()) {
                                        char_type next = getChar(i + 1);
                                        if (Encodings::isCombiningChar(next)) {
                                                column += 
latexSurrogatePair(os, c, next, encoding) - 1;
@@ -955,9 +1021,15 @@ void Paragraph::Pimpl::simpleTeXSpecialC
                                                break;
                                        }
                                }
+                               string script;
                                docstring const latex = encoding.latexChar(c);
-                               if (latex.length() > 1 &&
-                                   latex[latex.length() - 1] != '}') {
+                               if (Encodings::isKnownScriptChar(c, script) &&
+                                   prefixIs(latex, from_ascii("\\" + script)))
+                                       column += writeScriptChars(os, c, latex,
+                                                       running_change,
+                                                       encoding, i) - 1;
+                               else if (latex.length() > 1 &&
+                                          latex[latex.length() - 1] != '}') {
                                        // Prevent eating of a following
                                        // space or command corruption by
                                        // following characters
Index: src/LaTeXFeatures.cpp
===================================================================
--- src/LaTeXFeatures.cpp       (revision 21157)
+++ src/LaTeXFeatures.cpp       (working copy)
@@ -187,6 +187,20 @@ static string const changetracking_none_
        "\\newcommand{\\lyxadded}[3]{#3}\n"
        "\\newcommand{\\lyxdeleted}[3]{}\n";
 
+static string const textgreek_def =
+       "\\DeclareRobustCommand{\\greektext}{%\n"
+       " \\fontencoding{LGR}\\selectfont\n"
+       " \\def\\encodingdefault{LGR}}\n"
+       "\\DeclareRobustCommand{\\textgreek}[1]{\\leavevmode{\\greektext #1}}\n"
+       "\\DeclareFontEncoding{LGR}{}{}\n";
+
+static string const textcyr_def =
+       "\\DeclareRobustCommand{\\cyrtext}{%\n"
+       " \\fontencoding{T2A}\\selectfont\n"
+       " \\def\\encodingdefault{T2A}}\n"
+       "\\DeclareRobustCommand{\\textcyr}[1]{\\leavevmode{\\cyrtext #1}}\n"
+       "\\AtBeginDocument{\\DeclareFontEncoding{T2A}{}{}}\n";
+
 
 /////////////////////////////////////////////////////////////////////
 //
@@ -615,6 +629,12 @@ string const LaTeXFeatures::getMacros() 
        if (mustProvide("lyxarrow"))
                macros << lyxarrow_def << '\n';
 
+       if (mustProvide("textgreek"))
+               macros << textgreek_def << '\n';
+
+       if (mustProvide("textcyr"))
+               macros << textcyr_def << '\n';
+
        // quotes.
        if (mustProvide("quotesinglbase"))
                macros << quotesinglbase_def << '\n';
Index: src/Encoding.cpp
===================================================================
--- src/Encoding.cpp    (revision 21157)
+++ src/Encoding.cpp    (working copy)
@@ -401,6 +401,25 @@ bool Encodings::isCombiningChar(char_typ
 }
 
 
+bool Encodings::isKnownScriptChar(char_type c, string & preamble)
+{
+       CharInfoMap::const_iterator const it = unicodesymbols.find(c);
+
+       if (it == unicodesymbols.end())
+               return false;
+
+       if (it->second.preamble != "textgreek" &&
+           it->second.preamble != "textcyr")
+               return false;
+
+       if (preamble.empty()) {
+               preamble = it->second.preamble;
+               return true;
+       }
+       return it->second.preamble == preamble;
+}
+
+
 Encoding const * Encodings::getFromLyXName(string const & name) const
 {
        EncodingList::const_iterator it = encodinglist.find(name);
Index: src/Encoding.h
===================================================================
--- src/Encoding.h      (revision 21157)
+++ src/Encoding.h      (working copy)
@@ -143,6 +143,15 @@ public:
        /// Is this a combining char?
        static bool isCombiningChar(char_type c);
        /**
+        * Is this a known char from some script?
+        * If \p preamble is empty and code point \p c is known to belong
+        * to a supported script, true is returned and \p preamble is set
+        * to the corresponding entry in the unicodesymbols file.
+        * If \p preamble is not empty, a check is made whether code point
+        * \p c is a known character matching the preamble entry.
+        */
+       static bool isKnownScriptChar(char_type c, std::string & preamble);
+       /**
         * Add the preamble snippet needed for the output of \p c to
         * \p features.
         * This does not depend on the used encoding, since the inputenc
Index: lib/unicodesymbols
===================================================================
--- lib/unicodesymbols  (revision 21157)
+++ lib/unicodesymbols  (working copy)
@@ -684,6 +684,177 @@
 #0x036d ""                         "" "combining" # COMBINING LATIN SMALL 
LETTER T
 #0x036e ""                         "" "combining" # COMBINING LATIN SMALL 
LETTER V
 #0x036f ""                         "" "combining" # COMBINING LATIN SMALL 
LETTER X
+0x0374 "\\textgreek{\char254}"    "textgreek" "" # GREEK NUMERAL SIGN
+0x0375 "\\textgreek{\char255}"    "textgreek" "" # GREEK LOWER NUMERAL SIGN
+0x037e "\\textgreek{\char63}"     "textgreek" "" # GREEK QUESTION MARK
+0x0384 "\\textgreek{\char39}"     "textgreek" "" # GREEK TONOS
+0x0385 "\\textgreek{\char35}"     "textgreek" "" # GREEK DIALYTIKA TONOS
+0x0386 "\\textgreek{\char39A}"    "textgreek" "" # GREEK CAPITAL LETTER ALPHA 
WITH TONOS
+0x0387 "\\textgreek{\char38}"     "textgreek" "" # GREEK ANO TELEIA
+0x0388 "\\textgreek{\char39E}"    "textgreek" "" # GREEK CAPITAL LETTER 
EPSILON WITH TONOS
+0x0389 "\\textgreek{\char39H}"    "textgreek" "" # GREEK CAPITAL LETTER ETA 
WITH TONOS
+0x038a "\\textgreek{\char39I}"    "textgreek" "" # GREEK CAPITAL LETTER IOTA 
WITH TONOS
+0x038c "\\textgreek{\char39O}"    "textgreek" "" # GREEK CAPITAL LETTER 
OMICRON WITH TONOS
+0x038e "\\textgreek{\char39U}"    "textgreek" "" # GREEK CAPITAL LETTER 
UPSILON WITH TONOS
+0x038f "\\textgreek{\char39W}"    "textgreek" "" # GREEK CAPITAL LETTER OMEGA 
WITH TONOS
+0x0390 "\\textgreek{\char242}"    "textgreek" "" # GREEK SMALL LETTER IOTA 
WITH DIALYTKA
+0x0391 "\\textgreek{A}"           "textgreek" "" # GREEK CAPITAL LETTER ALPHA
+0x0392 "\\textgreek{B}"           "textgreek" "" # GREEK CAPITAL LETTER BETA
+0x0393 "\\textgreek{G}"           "textgreek" "" # GREEK CAPITAL LETTER GAMMA
+0x0394 "\\textgreek{D}"           "textgreek" "" # GREEK CAPITAL LETTER DELTA
+0x0395 "\\textgreek{E}"           "textgreek" "" # GREEK CAPITAL LETTER EPSILON
+0x0396 "\\textgreek{Z}"           "textgreek" "" # GREEK CAPITAL LETTER ZETA
+0x0397 "\\textgreek{H}"           "textgreek" "" # GREEK CAPITAL LETTER ETA
+0x0398 "\\textgreek{J}"           "textgreek" "" # GREEK CAPITAL LETTER THETA
+0x0399 "\\textgreek{I}"           "textgreek" "" # GREEK CAPITAL LETTER IOTA
+0x039a "\\textgreek{K}"           "textgreek" "" # GREEK CAPITAL LETTER KAPPA
+0x039b "\\textgreek{L}"           "textgreek" "" # GREEK CAPITAL LETTER LAMDA
+0x039c "\\textgreek{M}"           "textgreek" "" # GREEK CAPITAL LETTER MU
+0x039d "\\textgreek{N}"           "textgreek" "" # GREEK CAPITAL LETTER NU
+0x039e "\\textgreek{X}"           "textgreek" "" # GREEK CAPITAL LETTER XI
+0x039f "\\textgreek{O}"           "textgreek" "" # GREEK CAPITAL LETTER OMICRON
+0x03a0 "\\textgreek{P}"           "textgreek" "" # GREEK CAPITAL LETTER PI
+0x03a1 "\\textgreek{R}"           "textgreek" "" # GREEK CAPITAL LETTER RHO
+0x03a3 "\\textgreek{S}"           "textgreek" "" # GREEK CAPITAL LETTER SIGMA
+0x03a4 "\\textgreek{T}"           "textgreek" "" # GREEK CAPITAL LETTER TAU
+0x03a5 "\\textgreek{U}"           "textgreek" "" # GREEK CAPITAL LETTER UPSILON
+0x03a6 "\\textgreek{F}"           "textgreek" "" # GREEK CAPITAL LETTER PHI
+0x03a7 "\\textgreek{Q}"           "textgreek" "" # GREEK CAPITAL LETTER CHI
+0x03a8 "\\textgreek{Y}"           "textgreek" "" # GREEK CAPITAL LETTER PSI
+0x03a9 "\\textgreek{W}"           "textgreek" "" # GREEK CAPITAL LETTER OMEGA
+0x03aa "\\textgreek{\\char219}"   "textgreek" "" # GREEK CAPITAL LETTER IOTA 
WITH DIALYTIKA
+0x03ab "\\textgreek{\\char223}"   "textgreek" "" # GREEK CAPITAL LETTER 
UPSILON WITH DIALYTIKA
+0x03ac "\\textgreek{\\char136}"   "textgreek" "" # GREEK SMALL LETTER ALPHA 
WITH TONOS
+0x03ad "\\textgreek{\\char232}"   "textgreek" "" # GREEK SMALL LETTER EPSILON 
WITH TONOS
+0x03ae "\\textgreek{\\char160}"   "textgreek" "" # GREEK SMALL LETTER ETA WITH 
TONOS
+0x03af "\\textgreek{\\char208}"   "textgreek" "" # GREEK SMALL LETTER IOTA 
WITH TONOS
+0x03b0 "\\textgreek{\\char246}"   "textgreek" "" # GREEK SMALL LETTER UPSILON 
WITH DIALYTIKA AND TONOS
+0x03b1 "\\textgreek{a}"           "textgreek" "" # GREEK SMALL LETTER ALPHA
+0x03b2 "\\textgreek{b}"           "textgreek" "" # GREEK SMALL LETTER BETA
+0x03b3 "\\textgreek{g}"           "textgreek" "" # GREEK SMALL LETTER GAMMA
+0x03b4 "\\textgreek{d}"           "textgreek" "" # GREEK SMALL LETTER DELTA
+0x03b5 "\\textgreek{e}"           "textgreek" "" # GREEK SMALL LETTER EPSILON
+0x03b6 "\\textgreek{z}"           "textgreek" "" # GREEK SMALL LETTER ZETA
+0x03b7 "\\textgreek{h}"           "textgreek" "" # GREEK SMALL LETTER ETA
+0x03b8 "\\textgreek{j}"           "textgreek" "" # GREEK SMALL LETTER THETA
+0x03b9 "\\textgreek{i}"           "textgreek" "" # GREEK SMALL LETTER IOTA
+0x03ba "\\textgreek{k}"           "textgreek" "" # GREEK SMALL LETTER KAPPA
+0x03bb "\\textgreek{l}"           "textgreek" "" # GREEK SMALL LETTER LAMDA
+0x03bc "\\textgreek{m}"           "textgreek" "" # GREEK SMALL LETTER MU
+0x03bd "\\textgreek{n}"           "textgreek" "" # GREEK SMALL LETTER NU
+0x03be "\\textgreek{x}"           "textgreek" "" # GREEK SMALL LETTER XI
+0x03bf "\\textgreek{o}"           "textgreek" "" # GREEK SMALL LETTER OMICRON
+0x03c0 "\\textgreek{p}"           "textgreek" "" # GREEK SMALL LETTER PI
+0x03c1 "\\textgreek{r}"           "textgreek" "" # GREEK SMALL LETTER RHO
+0x03c2 "\\textgreek{c}"           "textgreek" "" # GREEK SMALL LETTER FINAL 
SIGMA
+0x03c3 "\\textgreek{s}"           "textgreek" "" # GREEK SMALL LETTER SIGMA
+0x03c4 "\\textgreek{t}"           "textgreek" "" # GREEK SMALL LETTER TAU
+0x03c5 "\\textgreek{u}"           "textgreek" "" # GREEK SMALL LETTER UPSILON
+0x03c6 "\\textgreek{f}"           "textgreek" "" # GREEK SMALL LETTER PHI
+0x03c7 "\\textgreek{q}"           "textgreek" "" # GREEK SMALL LETTER CHI
+0x03c8 "\\textgreek{y}"           "textgreek" "" # GREEK SMALL LETTER PSI
+0x03c9 "\\textgreek{w}"           "textgreek" "" # GREEK SMALL LETTER OMEGA
+0x03ca "\\textgreek{\\char240}"   "textgreek" "" # GREEK SMALL LETTER IOTA 
WITH DIALYTIKA
+0x03cb "\\textgreek{\\char244}"   "textgreek" "" # GREEK SMALL LETTER UPSILON 
WITH DIALYTIKA
+0x03cc "\\textgreek{\\char236}"   "textgreek" "" # GREEK SMALL LETTER OMICRON 
WITH TONOS
+0x03cd "\\textgreek{\\char212}"   "textgreek" "" # GREEK SMALL LETTER UPSILON 
WITH TONOS
+0x03ce "\\textgreek{\\char184}"   "textgreek" "" # GREEK SMALL LETTER OMEGA 
WITH TONOS
+0x0400 "\\textcyr{\\accent0\\char197}"  "textcyr" "" # CYRILLIC CAPITAL LETTER 
IE WITH GRAVE
+0x0401 "\\textcyr{\\char156}"     "textcyr" "" # CYRILLIC CAPITAL LETTER IO
+0x0402 "\\textcyr{\\char130}"     "textcyr" "" # CYRILLIC CAPITAL LETTER DJE
+0x0403 "\\textcyr{\\accent1\\char195}"  "textcyr" "" # CYRILLIC CAPITAL LETTER 
GJE
+0x0404 "\\textcyr{\\char153}"     "textcyr" "" # CYRILLIC CAPITAL LETTER 
UKRAINIAN IE
+0x0405 "\\textcyr{\\char143}"     "textcyr" "" # CYRILLIC CAPITAL LETTER DZE
+0x0406 "\\textcyr{I}"             "textcyr" "" # CYRILLIC CAPITAL LETTER 
BYELORUSSIAN-UKRAINIAN I
+0x0407 "\\textcyr{\\char136}"     "textcyr" "" # CYRILLIC CAPITAL LETTER YI
+0x0408 "\\textcyr{J}"             "textcyr" "" # CYRILLIC CAPITAL LETTER JE
+0x0409 "\\textcyr{\\char135}"     "textcyr" "" # CYRILLIC CAPITAL LETTER LJE
+0x040a "\\textcyr{\\char155}"     "textcyr" "" # CYRILLIC CAPITAL LETTER NJE
+0x040b "\\textcyr{\\char131}"     "textcyr" "" # CYRILLIC CAPITAL LETTER TSHE
+0x040c "\\textcyr{\\accent1\\char202}"  "textcyr" "" # CYRILLIC CAPITAL LETTER 
KJE
+0x040d "\\textcyr{\\accent0\\char200}"  "textcyr" "" # CYRILLIC CAPITAL LETTER 
I WITH GRAVE
+0x040e "\\textcyr{\\char146}"     "textcyr" "" # CYRILLIC CAPITAL LETTER SHORT 
U
+0x040f "\\textcyr{\\char150}"     "textcyr" "" # CYRILLIC CAPITAL LETTER DZHE
+0x0410 "\\textcyr{\\char192}"     "textcyr" "" # CYRILLIC CAPITAL LETTER A
+0x0411 "\\textcyr{\\char193}"     "textcyr" "" # CYRILLIC CAPITAL LETTER BE
+0x0412 "\\textcyr{\\char194}"     "textcyr" "" # CYRILLIC CAPITAL LETTER VE
+0x0413 "\\textcyr{\\char195}"     "textcyr" "" # CYRILLIC CAPITAL LETTER GHE
+0x0414 "\\textcyr{\\char196}"     "textcyr" "" # CYRILLIC CAPITAL LETTER DE
+0x0415 "\\textcyr{\\char197}"     "textcyr" "" # CYRILLIC CAPITAL LETTER IE
+0x0416 "\\textcyr{\\char198}"     "textcyr" "" # CYRILLIC CAPITAL LETTER ZHE
+0x0417 "\\textcyr{\\char199}"     "textcyr" "" # CYRILLIC CAPITAL LETTER ZE
+0x0418 "\\textcyr{\\char200}"     "textcyr" "" # CYRILLIC CAPITAL LETTER I
+0x0419 "\\textcyr{\\char201}"     "textcyr" "" # CYRILLIC CAPITAL LETTER SHORT 
I
+0x041a "\\textcyr{\\char202}"     "textcyr" "" # CYRILLIC CAPITAL LETTER KA
+0x041b "\\textcyr{\\char203}"     "textcyr" "" # CYRILLIC CAPITAL LETTER EL
+0x041c "\\textcyr{\\char204}"     "textcyr" "" # CYRILLIC CAPITAL LETTER EM
+0x041d "\\textcyr{\\char205}"     "textcyr" "" # CYRILLIC CAPITAL LETTER EN
+0x041e "\\textcyr{\\char206}"     "textcyr" "" # CYRILLIC CAPITAL LETTER O
+0x041f "\\textcyr{\\char207}"     "textcyr" "" # CYRILLIC CAPITAL LETTER PE
+0x0420 "\\textcyr{\\char208}"     "textcyr" "" # CYRILLIC CAPITAL LETTER ER
+0x0421 "\\textcyr{\\char209}"     "textcyr" "" # CYRILLIC CAPITAL LETTER ES
+0x0422 "\\textcyr{\\char210}"     "textcyr" "" # CYRILLIC CAPITAL LETTER TE
+0x0423 "\\textcyr{\\char211}"     "textcyr" "" # CYRILLIC CAPITAL LETTER U
+0x0424 "\\textcyr{\\char212}"     "textcyr" "" # CYRILLIC CAPITAL LETTER EF
+0x0425 "\\textcyr{\\char213}"     "textcyr" "" # CYRILLIC CAPITAL LETTER HA
+0x0426 "\\textcyr{\\char214}"     "textcyr" "" # CYRILLIC CAPITAL LETTER TSE
+0x0427 "\\textcyr{\\char215}"     "textcyr" "" # CYRILLIC CAPITAL LETTER CHE
+0x0428 "\\textcyr{\\char216}"     "textcyr" "" # CYRILLIC CAPITAL LETTER SHA
+0x0429 "\\textcyr{\\char217}"     "textcyr" "" # CYRILLIC CAPITAL LETTER SHCHA
+0x042a "\\textcyr{\\char218}"     "textcyr" "" # CYRILLIC CAPITAL LETTER HARD 
SIGN
+0x042b "\\textcyr{\\char219}"     "textcyr" "" # CYRILLIC CAPITAL LETTER YERU
+0x042c "\\textcyr{\\char220}"     "textcyr" "" # CYRILLIC CAPITAL LETTER SOFT 
SIGN
+0x042d "\\textcyr{\\char221}"     "textcyr" "" # CYRILLIC CAPITAL LETTER E
+0x042e "\\textcyr{\\char222}"     "textcyr" "" # CYRILLIC CAPITAL LETTER YU
+0x042f "\\textcyr{\\char223}"     "textcyr" "" # CYRILLIC CAPITAL LETTER YA
+0x0430 "\\textcyr{\\char224}"     "textcyr" "" # CYRILLIC SMALL LETTER A
+0x0431 "\\textcyr{\\char225}"     "textcyr" "" # CYRILLIC SMALL LETTER BE
+0x0432 "\\textcyr{\\char226}"     "textcyr" "" # CYRILLIC SMALL LETTER VE
+0x0433 "\\textcyr{\\char227}"     "textcyr" "" # CYRILLIC SMALL LETTER GHE
+0x0434 "\\textcyr{\\char228}"     "textcyr" "" # CYRILLIC SMALL LETTER DE
+0x0435 "\\textcyr{\\char229}"     "textcyr" "" # CYRILLIC SMALL LETTER IE
+0x0436 "\\textcyr{\\char230}"     "textcyr" "" # CYRILLIC SMALL LETTER ZHE
+0x0437 "\\textcyr{\\char231}"     "textcyr" "" # CYRILLIC SMALL LETTER ZE
+0x0438 "\\textcyr{\\char232}"     "textcyr" "" # CYRILLIC SMALL LETTER I
+0x0439 "\\textcyr{\\char233}"     "textcyr" "" # CYRILLIC SMALL LETTER SHORT I
+0x043a "\\textcyr{\\char234}"     "textcyr" "" # CYRILLIC SMALL LETTER KA
+0x043b "\\textcyr{\\char235}"     "textcyr" "" # CYRILLIC SMALL LETTER EL
+0x043c "\\textcyr{\\char236}"     "textcyr" "" # CYRILLIC SMALL LETTER EM
+0x043d "\\textcyr{\\char237}"     "textcyr" "" # CYRILLIC SMALL LETTER EN
+0x043e "\\textcyr{\\char238}"     "textcyr" "" # CYRILLIC SMALL LETTER O
+0x043f "\\textcyr{\\char239}"     "textcyr" "" # CYRILLIC SMALL LETTER PE
+0x0440 "\\textcyr{\\char240}"     "textcyr" "" # CYRILLIC SMALL LETTER ER
+0x0441 "\\textcyr{\\char241}"     "textcyr" "" # CYRILLIC SMALL LETTER ES
+0x0442 "\\textcyr{\\char242}"     "textcyr" "" # CYRILLIC SMALL LETTER TE
+0x0443 "\\textcyr{\\char243}"     "textcyr" "" # CYRILLIC SMALL LETTER U
+0x0444 "\\textcyr{\\char244}"     "textcyr" "" # CYRILLIC SMALL LETTER EF
+0x0445 "\\textcyr{\\char245}"     "textcyr" "" # CYRILLIC SMALL LETTER HA
+0x0446 "\\textcyr{\\char246}"     "textcyr" "" # CYRILLIC SMALL LETTER TSE
+0x0447 "\\textcyr{\\char247}"     "textcyr" "" # CYRILLIC SMALL LETTER CHE
+0x0448 "\\textcyr{\\char248}"     "textcyr" "" # CYRILLIC SMALL LETTER SHA
+0x0449 "\\textcyr{\\char249}"     "textcyr" "" # CYRILLIC SMALL LETTER SHCHA
+0x044a "\\textcyr{\\char250}"     "textcyr" "" # CYRILLIC SMALL LETTER HARD 
SIGN
+0x044b "\\textcyr{\\char251}"     "textcyr" "" # CYRILLIC SMALL LETTER YERU
+0x044c "\\textcyr{\\char252}"     "textcyr" "" # CYRILLIC SMALL LETTER SOFT 
SIGN
+0x044d "\\textcyr{\\char253}"     "textcyr" "" # CYRILLIC SMALL LETTER E
+0x044e "\\textcyr{\\char254}"     "textcyr" "" # CYRILLIC SMALL LETTER YU
+0x044f "\\textcyr{\\char255}"     "textcyr" "" # CYRILLIC SMALL LETTER YA
+0x0450 "\\textcyr{\\accent0\\char229}"  "textcyr" "" # CYRILLIC SMALL LETTER 
IE WITH GRAVE
+0x0451 "\\textcyr{\\char188}"     "textcyr" "" # CYRILLIC SMALL LETTER IO
+0x0452 "\\textcyr{\\char162}"     "textcyr" "" # CYRILLIC SMALL LETTER DJE
+0x0453 "\\textcyr{\\accent1\\char227}"  "textcyr" "" # CYRILLIC SMALL LETTER 
GJE
+0x0454 "\\textcyr{\\char185}"     "textcyr" "" # CYRILLIC SMALL LETTER 
UKRAINIAN IE
+0x0455 "\\textcyr{\\char175}"     "textcyr" "" # CYRILLIC SMALL LETTER DZE
+0x0456 "\\textcyr{i}"             "textcyr" "" # CYRILLIC SMALL LETTER 
BYELORUSSIAN-UKRAINIAN I
+0x0457 "\\textcyr{\\char168}"     "textcyr" "" # CYRILLIC SMALL LETTER YI
+0x0458 "\\textcyr{j}"             "textcyr" "" # CYRILLIC SMALL LETTER JE
+0x0459 "\\textcyr{\\char167}"     "textcyr" "" # CYRILLIC SMALL LETTER LJE
+0x045a "\\textcyr{\\char187}"     "textcyr" "" # CYRILLIC SMALL LETTER NJE
+0x045b "\\textcyr{\\char163}"     "textcyr" "" # CYRILLIC SMALL LETTER TSHE
+0x045c "\\textcyr{\\accent1\\char234}"  "textcyr" "" # CYRILLIC SMALL LETTER 
KJE
+0x045d "\\textcyr{\\accent0\\char232}"  "textcyr" "" # CYRILLIC SMALL LETTER I 
WITH GRAVE
+0x045e "\\textcyr{\\char178}"     "textcyr" "" # CYRILLIC SMALL LETTER SHORT U
+0x045f "\\textcyr{\\char182}"     "textcyr" "" # CYRILLIC SMALL LETTER DZHE
 0x0e3f "\\textbaht"               "textcomp" "" # THAI CURRENCY SYMBOL BAHT
 0x1e00 "\\textsubring{A}"         "tipa" "" # LATIN CAPITAL LETTER A WITH RING 
BELOW
 0x1e01 "\\textsubring{a}"         "tipa" "" # LATIN SMALL LETTER A WITH RING 
BELOW
Index: lib/doc/Makefile.depend
===================================================================
--- lib/doc/Makefile.depend     (revision 21157)
+++ lib/doc/Makefile.depend     (working copy)
@@ -16,7 +16,7 @@ de/TOC.lyx: $(srcdir)/de/Customization.l
 TOC.lyx: $(srcdir)/Customization.lyx $(srcdir)/EmbeddedObjects.lyx 
$(srcdir)/Extended.lyx $(srcdir)/FAQ.lyx $(srcdir)/Intro.lyx 
$(srcdir)/Tutorial.lyx $(srcdir)/UserGuide.lyx
        PYTHONPATH=$(top_builddir)/lib/lyx2lyx python -tt $(srcdir)/doc_toc.py 
en .
 
-es/TOC.lyx: $(srcdir)/Customization.lyx $(srcdir)/es/EmbeddedObjects.lyx 
$(srcdir)/es/Extended.lyx $(srcdir)/FAQ.lyx $(srcdir)/es/Intro.lyx 
$(srcdir)/es/Tutorial.lyx $(srcdir)/es/UserGuide.lyx
+es/TOC.lyx: $(srcdir)/Customization.lyx $(srcdir)/FAQ.lyx 
$(srcdir)/es/EmbeddedObjects.lyx $(srcdir)/es/Extended.lyx 
$(srcdir)/es/Intro.lyx $(srcdir)/es/Tutorial.lyx $(srcdir)/es/UserGuide.lyx
        PYTHONPATH=$(top_builddir)/lib/lyx2lyx python -tt $(srcdir)/doc_toc.py 
es .
 
 eu/TOC.lyx: $(srcdir)/EmbeddedObjects.lyx $(srcdir)/eu/Customization.lyx 
$(srcdir)/eu/Extended.lyx $(srcdir)/eu/FAQ.lyx $(srcdir)/eu/Intro.lyx 
$(srcdir)/eu/Tutorial.lyx $(srcdir)/eu/UserGuide.lyx

Reply via email to