X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfont.C;h=0c783cb148bad8df1807953eb39bfb8ba778e03a;hb=bd659b25fb6e2df5d02273ee1ce4699aa5723e2e;hp=3a70535afe5ee95f17517844f8eb1dd6290d9a13;hpb=4148a9244547e7184c1dcc8234e9e62d3143a42c;p=lyx.git diff --git a/src/lyxfont.C b/src/lyxfont.C index 3a70535afe..0c783cb148 100644 --- a/src/lyxfont.C +++ b/src/lyxfont.C @@ -290,8 +290,12 @@ void LyXFont::update(LyXFont const & newfont, setNoun(setMisc(newfont.noun(), noun())); setLatex(setMisc(newfont.latex(), latex())); + setNumber(setMisc(newfont.number(), number())); if (newfont.language() == language() && toggleall) - setLanguage(document_language); + if (language() == document_language) + setLanguage(default_language); + else + setLanguage(document_language); else if (newfont.language() != ignore_language) setLanguage(newfont.language()); @@ -403,8 +407,10 @@ string const LyXFont::stateText(BufferParams * params) const ost << _("Latex ") << _(GUIMiscNames[latex()]) << ", "; if (bits == inherit) ost << _("Default") << ", "; - if (!params || (language() != params->language_info)) - ost << _("Language: ") << _(language()->display().c_str()); + if (!params || (language() != params->language)) + ost << _("Language: ") << _(language()->display().c_str()) << ", "; + if (number() != OFF) + ost << _(" Number ") << _(GUIMiscNames[number()]); string buf(ost.str().c_str()); buf = strip(buf, ' '); @@ -609,6 +615,9 @@ void LyXFont::lyxWriteChanges(LyXFont const & orgfont, ostream & os) const if (orgfont.emph() != emph()) { os << "\\emph " << LyXMiscNames[emph()] << " \n"; } + if (orgfont.number() != number()) { + os << "\\numeric " << LyXMiscNames[number()] << " \n"; + } if (orgfont.underbar() != underbar()) { // This is only for backwards compatibility switch (underbar()) { @@ -669,27 +678,31 @@ int LyXFont::latexWriteStartChanges(ostream & os, LyXFont const & base, int count = 0; bool env = false; - if (language() != base.language() && language() != prev.language()) { + if (language()->babel() != base.language()->babel() && + language()->babel() != prev.language()->babel()) { if (isRightToLeft() != prev.isRightToLeft()) { if (isRightToLeft()) { os << "\\R{"; count += 3; - env = true; //We have opened a new environment } else { os << "\\L{"; count += 3; - env = true; //We have opened a new environment } } else { string tmp = '{' + subst(lyxrc.language_command_begin, - "$$lang", language()->lang()); + "$$lang", language()->babel()); os << tmp; count += tmp.length(); - env = true; //We have opened a new environment } } + if (number() == ON && prev.number() != ON && + language()->lang() == "hebrew") { + os << "{\\beginL "; + count += 9; + } + LyXFont f = *this; f.reduce(base); @@ -761,18 +774,13 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, int count = 0; bool env = false; - if (language() != base.language() && language() != next.language()) { - os << "}"; - ++count; - env = true; // Size change need not bother about closing env. - } - LyXFont f = *this; // why do you need this? f.reduce(base); // why isn't this just "reduce(base);" (Lgb) // Because this function is const. Everything breaks if this // method changes the font it represents. There is no speed penalty // by using the temporary. (Asger) + if (f.family() != INHERIT_FAMILY) { os << '}'; ++count; @@ -816,6 +824,17 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, } } + if (number() == ON && next.number() != ON && + language()->lang() == "hebrew") { + os << "\\endL}"; + count += 6; + } + + if (language() != base.language() && language() != next.language()) { + os << "}"; + ++count; + } + return count; }