From 114ebf00c4f12c8acf39b52e057f9a63a98dd58b Mon Sep 17 00:00:00 2001
From: Juergen Spitzmueller <spitz@lyx.org>
Date: Sat, 21 Jul 2018 15:50:35 +0200
Subject: [PATCH] Fix nesting problem with numbers in RTL text

\textcolor must precede any \beginL

Fixes: #6283
---
 src/Font.cpp | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/src/Font.cpp b/src/Font.cpp
index b8a6a29531..549f4b8171 100644
--- a/src/Font.cpp
+++ b/src/Font.cpp
@@ -349,21 +349,6 @@ 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
-	// but the packages used for Hebrew and Farsi (Arabi) do not.
-	if (!runparams.use_polyglossia
-	    && !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;
-	}
-
 	FontInfo f = bits_;
 	f.reduce(base.bits_);
 	FontInfo p = bits_;
@@ -413,6 +398,20 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
 		env = true; //We have opened a new environment
 	}
 	*/
+	// 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
+	// but the packages used for Hebrew and Farsi (Arabi) do not.
+	if (!runparams.use_polyglossia
+	    && !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 (f.emph() == FONT_ON) {
 		os << "\\emph{";
 		count += 6;