[LyX/master] Fix greyedout with RTL languages (#8647)

Udi Fogiel ufogiel at lyx.org
Mon Jun 10 12:03:31 UTC 2024


commit ee43584140d9c62801d524291c5cfd0c29c8d916
Author: Udi Fogiel <ufogiel at lyx.org>
Date:   Mon Jun 10 15:03:05 2024 +0300

    Fix greyedout with RTL languages (#8647)
---
 src/LaTeXFeatures.cpp    | 52 ++++++++++--------------------------------------
 src/insets/InsetNote.cpp |  2 --
 2 files changed, 10 insertions(+), 44 deletions(-)

diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp
index 20abc00c6c..4a4385fc01 100644
--- a/src/LaTeXFeatures.cpp
+++ b/src/LaTeXFeatures.cpp
@@ -546,46 +546,17 @@ static docstring const lyxmintcaption_def = from_ascii(
 	"}\n");
 
 
-docstring const lyxgreyedoutDef(bool const rtl, bool const ct, bool const lua, bool const babel)
+docstring const lyxgreyedoutDef(bool const ct)
 {
 	odocstringstream ods;
 
-	if (rtl) {
-		ods << "%% The greyedout annotation environment (with RTL support)\n"
-		    << "\\NewEnviron{lyxgreyedout}{%\n";
-		if (lua && !babel)
-			// luabidi uses this switch
-			ods << "  \\if at RTL%\n";
-		else
-			ods << "  \\if at rl%\n";
-		ods << "    \\everypar{%\n";
-		if (lua)
-			ods << "      \\pardir TRT \\textdir TRT\\normalfont\\normalsize\\textcolor{note_fontcolor}\\ignorespaces%\n";
-		else
-			ods << "      \\normalfont\\normalsize\\textcolor{note_fontcolor}\\beginL\\ignorespaces%\n";
-		ods << "    }%\n";
-		if (ct)
-			ods << "    \\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n";
-		if (lua)
-			ods << "    \\BODY\\everypar{\\ignorespacesafterend}%\n";
-		else
-			ods << "    \\BODY\\everypar{\\ignorespacesafterend\\endL}%\n";
-		ods << "  \\else%\n";
-		if (ct)
-			ods << "    \\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n";
-		ods << "    \\normalfont\\normalsize\\textcolor{note_fontcolor}\\bgroup\\ignorespaces%\n"
-		    << "    \\BODY\\ignorespacesafterend\\egroup%\n"
-		    << "  \\fi%\n"
-		    << "}\n";
-	} else {
-		ods << "%% The greyedout annotation environment\n"
-		    << "\\newenvironment{lyxgreyedout}\n"
-		    << "{";
-		if (ct)
-			ods << "\\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n ";
-		ods << "\\normalfont\\normalsize\\textcolor{note_fontcolor}\\bgroup\\ignorespaces}\n"
-		    << "{\\ignorespacesafterend\\egroup}\n";
-	}
+	ods << "%% The greyedout annotation environment\n"
+	    << "\\newenvironment{lyxgreyedout}\n"
+	    << "{";
+	if (ct)
+		ods << "\\colorlet{lyxadded}{lyxadded!30}\\colorlet{lyxdeleted}{lyxdeleted!30}%\n ";
+	ods << "\\normalfont\\normalsize\\textcolor{note_fontcolor}\\bgroup\\ignorespaces}\n"
+	    << "{\\ignorespacesafterend\\egroup}\n";
 
 	return ods.str();
 }
@@ -1166,7 +1137,6 @@ char const * simplefeatures[] = {
 	"xskak",
 	"pict2e",
 	"drs",
-	"environ",
 	"dsfont",
 	"hepparticles",
 	"hepnames"
@@ -1740,10 +1710,8 @@ TexString LaTeXFeatures::getMacros() const
 	// the color is specified in the routine
 	// getColorOptions() to avoid LaTeX-package clashes
 	if (mustProvide("lyxgreyedout"))
-		// We need different version for RTL (#8647), with change tracking (#12025)
-		// and for some specific engine/language package combinations
-		macros << lyxgreyedoutDef(hasRTLLanguage(), mustProvide("ct-xcolor-ulem"),
-					  (runparams_.flavor == Flavor::LuaTeX), useBabel());
+		// We need different version with change tracking (#12025)
+		macros << lyxgreyedoutDef(mustProvide("ct-xcolor-ulem"));
 
 	if (mustProvide("lyxdot"))
 		macros << lyxdot_def << '\n';
diff --git a/src/insets/InsetNote.cpp b/src/insets/InsetNote.cpp
index ce5fd3e382..cd72e4fbf4 100644
--- a/src/insets/InsetNote.cpp
+++ b/src/insets/InsetNote.cpp
@@ -336,8 +336,6 @@ void InsetNote::validate(LaTeXFeatures & features) const
 			features.useInsetLayout(getLayout());
 		break;
 	case InsetNoteParams::Greyedout:
-		if (features.hasRTLLanguage())
-			features.require("environ");
 		InsetCollapsible::validate(features);
 		break;
 	case InsetNoteParams::Note:


More information about the lyx-cvs mailing list