X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFont.cpp;h=9124f0ab05c94f3e848c898966379939594bd87a;hb=2de30c62f8d671a8c8d4d52a6a7310e2c5ca84de;hp=34c5c0b508a230c6933bb09c41d755edfe70e645;hpb=e35bb3126a70384544b315771288db116f894926;p=lyx.git diff --git a/src/Font.cpp b/src/Font.cpp index 34c5c0b508..9124f0ab05 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -25,6 +25,7 @@ #include "LyXRC.h" #include "output_latex.h" #include "OutputParams.h" +#include "texstream.h" #include "support/lassert.h" #include "support/convert.h" @@ -286,6 +287,7 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, tmp += "{"; os << from_ascii(tmp); count += tmp.length(); + pushPolyglossiaLang(language()->polyglossia(), true); } else if (language()->encoding()->package() != Encoding::CJK) { os << '{'; count += 1; @@ -341,10 +343,11 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, // the numbers are written Left-to-Right. ArabTeX package // reorders the number automatically but the packages used // for Hebrew and Farsi (Arabi) do not. - if (bits_.number() == FONT_ON && prev.fontInfo().number() != FONT_ON - && (language()->lang() == "hebrew" - || language()->lang() == "farsi" - || language()->lang() == "arabic_arabi")) { + if (!runparams.pass_thru && bits_.number() == FONT_ON + && prev.fontInfo().number() != FONT_ON + && (language()->lang() == "hebrew" + || language()->lang() == "farsi" + || language()->lang() == "arabic_arabi")) { os << "{\\beginL "; count += 9; } @@ -519,10 +522,11 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams, // the numbers are written Left-to-Right. ArabTeX package // reorders the number automatically but the packages used // for Hebrew and Farsi (Arabi) do not. - if (bits_.number() == FONT_ON && next.fontInfo().number() != FONT_ON - && (language()->lang() == "hebrew" - || language()->lang() == "farsi" - || language()->lang() == "arabic_arabi")) { + if (!runparams.pass_thru && bits_.number() == FONT_ON + && next.fontInfo().number() != FONT_ON + && (language()->lang() == "hebrew" + || language()->lang() == "farsi" + || language()->lang() == "arabic_arabi")) { os << "\\endL}"; count += 6; } @@ -544,6 +548,8 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams, && language()->encoding()->package() != Encoding::CJK) { os << '}'; ++count; + if (runparams.use_polyglossia) + popPolyglossiaLang(); } return count; @@ -707,6 +713,7 @@ void Font::validate(LaTeXFeatures & features) const case Color_teal: case Color_violet: features.require("xcolor"); + break; default: features.require("color"); LYXERR(Debug::LATEX, "Color enabled. Font: " << to_utf8(stateText(0)));