]> git.lyx.org Git - features.git/commitdiff
Proper number ordering with luabidi
authorJuergen Spitzmueller <spitz@lyx.org>
Thu, 11 Jul 2019 07:54:28 +0000 (09:54 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Thu, 11 Jul 2019 15:46:55 +0000 (17:46 +0200)
As opposed to bidi (XeTeX), luabidi (LuaTeX) does no automatic reordering,
so we need to use \\LR{}

(cherry picked from commit 1d0929b5d9975923f3cbbe7f84e93f3b694a1ccb)

src/Font.cpp
status.23x

index 79f0e2ed2d187746c749b67f27a61fe41ac46521..ee05efabbe045576788e18180556b59ecaf46c92 100644 (file)
@@ -398,17 +398,23 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
        */
        // If the current language is Hebrew, Arabic, or Farsi
        // the numbers are written Left-to-Right. ArabTeX package
-       // and bidi (polyglossia) reorder the number automatically
+       // and bidi (polyglossia with XeTeX) reorder the number automatically
        // but the packages used for Hebrew and Farsi (Arabi) do not.
-       if (!runparams.use_polyglossia
+       if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
            && !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;
+               if (runparams.use_polyglossia) {
+                       // LuaTeX/luabidi
+                       os << "\\LR{";
+                       count += 5;
+               } else {
+                       os << "{\\beginL ";
+                       count += 9;
+               }
        }
        if (f.emph() == FONT_ON) {
                os << "\\emph{";
@@ -559,17 +565,23 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
 
        // If the current language is Hebrew, Arabic, or Farsi
        // the numbers are written Left-to-Right. ArabTeX package
-       // and bidi (polyglossia) reorder the number automatically
+       // and bidi (polyglossia with XeTeX) reorder the number automatically
        // but the packages used for Hebrew and Farsi (Arabi) do not.
-       if (!runparams.use_polyglossia
+       if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
            && !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;
+               if (runparams.use_polyglossia) {
+                       // LuaTeX/luabidi
+                       os << "}";
+                       count += 1;
+               } else {
+                       os << "\\endL}";
+                       count += 6;
+               }
        }
 
        if (open_encoding_) {
index a6750ea4566e516fa22fbbbfad6518ae3dd73c69..b3c918724f2b8e334a874750770edf1f77a93eac 100644 (file)
@@ -76,6 +76,8 @@ What's new
 
 - Fix direction of brackets with RTL documents and LuaTeX (part of bug 11187).
 
+- Fix direction of roman numbers with RTL documents and LuaTeX.
+
 
 * USER INTERFACE