Properly close local language switch.

(cherry picked from commit 1116335977)
This commit is contained in:
Juergen Spitzmueller 2018-09-08 12:50:42 +02:00
parent 87f58708f3
commit 5d13d8c783

View File

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