X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFont.cpp;h=46cba97231dfea6949b0cb8875f2e54b1894cd5f;hb=f6f32ca0ee1d341e39f202e2921ccbd4d5537f5b;hp=8cdb3f4096274459496f65da8e48dce7adcdb3d3;hpb=0c1ff6d89e72ae82e4a68f99934b735ade5fea5c;p=lyx.git diff --git a/src/Font.cpp b/src/Font.cpp index 8cdb3f4096..46cba97231 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -43,11 +43,11 @@ namespace lyx { // Strings used to read and write .lyx format files // // These are defined in FontInfo.cpp -extern char const ** LyXFamilyNames; -extern char const ** LyXSeriesNames; -extern char const ** LyXShapeNames; -extern char const ** LyXSizeNames; -extern char const ** LyXMiscNames; +extern char const * LyXFamilyNames[NUM_FAMILIES + 2]; +extern char const * LyXSeriesNames[4]; +extern char const * LyXShapeNames[6]; +extern char const * LyXSizeNames[14]; +extern char const * LyXMiscNames[5]; // // Names for the GUI @@ -57,7 +57,7 @@ namespace { char const * GUIFamilyNames[NUM_FAMILIES + 2 /* default & error */] = { N_("Roman"), N_("Sans Serif"), N_("Typewriter"), N_("Symbol"), - "cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", "esint", + "cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "rsfs", "wasy", "esint", N_("Inherit"), N_("Ignore") }; char const * GUISeriesNames[4] = @@ -95,7 +95,7 @@ char const * LaTeXSizeNames[14] = Font::Font(FontInfo bits, Language const * l) - : bits_(bits), lang_(l), misspelled_(false), open_encoding_(false) + : bits_(bits), lang_(l), open_encoding_(false) { if (!lang_) lang_ = default_language; @@ -189,7 +189,7 @@ docstring const Font::stateText(BufferParams * params) const os << bformat(_("Language: %1$s, "), _(language()->display())); if (bits_.number() != FONT_OFF) - os << bformat(_(" Number %1$s"), + os << " " << bformat(_("Number %1$s"), _(GUIMiscNames[bits_.number()])); return rtrim(os.str(), ", "); } @@ -272,7 +272,20 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, bool env = false; int count = 0; - if (language()->babel() != base.language()->babel() && + + // polyglossia or babel? + if (runparams.use_polyglossia + && language()->lang() != base.language()->lang() + && language() != prev.language()) { + if (!language()->polyglossia().empty()) { + string tmp = "\\text" + language()->polyglossia(); + if (!language()->polyglossiaOpts().empty()) + tmp += "[" + language()->polyglossiaOpts() + "]"; + tmp += "{"; + os << from_ascii(tmp); + count += tmp.length(); + } + } else if (language()->babel() != base.language()->babel() && language() != prev.language()) { if (language()->lang() == "farsi") { os << "\\textFR{"; @@ -425,7 +438,7 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, /// Writes ending block of LaTeX needed to close use of this font // Returns number of chars written // This one corresponds to latexWriteStartChanges(). (Asger) -int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams, +int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams, OutputParams const & runparams, Font const & base, Font const & next, @@ -518,7 +531,7 @@ int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams, // We need to close the encoding even if it does not change // to do correct environment nesting Encoding const * const ascii = encodings.fromLyXName("ascii"); - pair const c = switchEncoding(os, bparams, + pair const c = switchEncoding(os.os(), bparams, runparams, *ascii); LASSERT(c.first, /**/); count += c.second;