Fix greyedout with RTL languages (#8647)

(cherry picked from commit ee43584140)
This commit is contained in:
Udi Fogiel 2024-06-10 15:03:05 +03:00
parent d527a07731
commit ecbe5d263d
2 changed files with 10 additions and 44 deletions

View File

@ -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@RTL%\n";
else
ods << " \\if@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';

View File

@ -334,8 +334,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: