Fix text direction problem with polyglossia

If an RTL language is set via environment in polyglossia, only a nested
\\text<lang> command will reset the direction for LTR languages

Fixes rest of # 10111.
This commit is contained in:
Juergen Spitzmueller 2018-08-24 15:02:26 +02:00
parent 920e26916e
commit 2d4ac90fd2

View File

@ -845,9 +845,13 @@ void TeXOnePar(Buffer const & buf,
os << '{'; os << '{';
} }
// In some insets (such as Arguments), we cannot use \selectlanguage // In some insets (such as Arguments), we cannot use \selectlanguage.
// Also, if an RTL language is set via environment in polyglossia,
// only a nested \\text<lang> command will reset the direction for LTR
// languages (see # 10111).
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());
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;