]> git.lyx.org Git - lyx.git/blobdiff - src/Font.cpp
Set correctly the spacing between atoms in MathData
[lyx.git] / src / Font.cpp
index f0814a3a3eb94103dbb8dd202a87595a3da88475..9124f0ab05c94f3e848c898966379939594bd87a 100644 (file)
@@ -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;