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