diff --git a/src/output_latex.cpp b/src/output_latex.cpp index dbddb6c01b..1cdb6ddc4a 100644 --- a/src/output_latex.cpp +++ b/src/output_latex.cpp @@ -835,9 +835,11 @@ void TeXOnePar(Buffer const & buf, // Also, if an RTL language is set via environment in polyglossia, // only a nested \\text command will reset the direction for LTR // languages (see # 10111). + bool const pg_rtl_env = + use_polyglossia && outer_language->rightToLeft() && !par_language->rightToLeft(); bool const localswitch = text.inset().forceLocalFontSwitch() || (using_begin_end && text.inset().forcePlainLayout()) - || (use_polyglossia && outer_language->rightToLeft() && !par_language->rightToLeft()); + || pg_rtl_env; if (localswitch) { lang_begin_command = use_polyglossia ? "\\text$$lang$$opts{" : lyxrc.language_command_local; @@ -1178,7 +1180,8 @@ void TeXOnePar(Buffer const & buf, && style != nextpar->layout()))) || (atSameLastLangSwitchDepth(state) && state->lang_switch_depth_.size() - && cur_lang != par_lang)) + && cur_lang != par_lang) + || pg_rtl_env) { if (using_begin_end && !localswitch) os << breakln;