From a754912e88f75ff726e3e9f3fb98c058b43b5879 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Fri, 28 Sep 2018 08:36:44 +0200 Subject: [PATCH] Use LTR environment for forceLTR content with polyglossia Fixes: #10548 (cherry picked from commit 10c06f67c936d8a259b03f00084fd4969f17582b) --- src/Paragraph.cpp | 18 +++++++++++------- status.23x | 3 +++ 2 files changed, 14 insertions(+), 7 deletions(-) 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).