commit 5679dc5c6ff6e806163c7214be3903b5bbe23780
Author: Juergen Spitzmueller <[email protected]>
Date:   Thu Jul 11 09:54:28 2019 +0200

    Proper number ordering with luabidi
    
    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 |   28 ++++++++++++++++++++--------
 status.23x   |    2 ++
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/Font.cpp b/src/Font.cpp
index 79f0e2e..ee05efa 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -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_) {
diff --git a/status.23x b/status.23x
index a6750ea..b3c9187 100644
--- a/status.23x
+++ b/status.23x
@@ -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
 

Reply via email to