X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFont.cpp;h=9124f0ab05c94f3e848c898966379939594bd87a;hb=bf56e2c8e1afa857cd5e313c19948040e41b8227;hp=f0814a3a3eb94103dbb8dd202a87595a3da88475;hpb=faadac9f4ab9b735c02180dcbb2664e92911bb37;p=lyx.git diff --git a/src/Font.cpp b/src/Font.cpp index f0814a3a3e..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;