diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp index ba31b21825..53121a2e8a 100644 --- a/src/Paragraph.cpp +++ b/src/Paragraph.cpp @@ -1090,13 +1090,17 @@ void Paragraph::Private::latexInset(BufferParams const & bparams, odocstream::pos_type const len = os.os().tellp(); if (inset->forceLTR() - && !runparams.use_polyglossia && running_font.isRightToLeft() // ERT is an exception, it should be output with no // decorations at all && inset->lyxCode() != ERT_CODE) { - if (running_font.language()->lang() == "farsi") - os << "\\beginL" << termcmd; + if (runparams.use_polyglossia) { + if (style.isCommand()) + os << "\\LR{"; + os << "\\begin{LTR}"; + } else if (running_font.language()->lang() == "farsi" + || running_font.language()->lang() == "arabic_arabi") + os << "\\textLR{" << termcmd; else os << "\\L{"; close = true; @@ -1153,10 +1157,10 @@ void Paragraph::Private::latexInset(BufferParams const & bparams, } if (close) { - if (running_font.language()->lang() == "farsi") - os << "\\endL" << termcmd; - else - os << '}'; + if (runparams.use_polyglossia && !style.isCommand()) + os << "\\end{LTR}"; + else + os << '}'; } if (os.texrow().rows() > previous_row_count) { diff --git a/status.23x b/status.23x index 7b3d5af441..b116ea993a 100644 --- a/status.23x +++ b/status.23x @@ -101,6 +101,9 @@ What's new - Fix text direction problem with polyglossia with nested languages (part of bug 10111). +- Use LTR environment for forceLTR content in RTL context with + polyglossia (bug 10548). + - Fix output of key symbols with info inset on the Mac (bug 10641). - Fix output of table cells with multiple languages (bug 11128).