commit f058442be905b088ede79d984a2708b8b172ea85
Author: Juergen Spitzmueller <[email protected]>
Date: Mon Apr 10 08:10:51 2023 +0200
Put forceLTR (display) environments in LRE environment rather than command
This fixes whitespace issues.
---
src/Paragraph.cpp | 29 +++++++++++++++++++++--------
1 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index c43421b..5944aa6 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -1090,7 +1090,8 @@ void Paragraph::Private::latexInset(BufferParams const &
bparams,
running_change = Change(Change::UNCHANGED);
}
- bool close = false;
+ bool close_brace = false;
+ string close_env;
odocstream::pos_type const len = os.os().tellp();
if (inset->forceLTR(runparams)
@@ -1101,16 +1102,25 @@ void Paragraph::Private::latexInset(BufferParams const
& bparams,
// ERT is an exception, it should be output with no
// decorations at all
&& inset->lyxCode() != ERT_CODE) {
- if (runparams.use_polyglossia)
+ if (runparams.use_polyglossia) {
// (lua)bidi
- os << "\\LRE{";
- else if (running_font.language()->lang() == "farsi"
- || running_font.language()->lang() == "arabic_arabi")
+ // Displayed environments go in an LTR environment
+ if (inset->isEnvironment() &&
inset->getLayout().isDisplay()) {
+ os << "\\begin{LTR}";
+ close_env = "LTR";
+ } else {
+ os << "\\LRE{";
+ close_brace = true;
+ }
+ } else if (running_font.language()->lang() == "farsi"
+ || running_font.language()->lang() == "arabic_arabi") {
os << "\\textLR{" << termcmd;
- else
+ close_brace = true;
+ } else {
// babel classic
os << "\\L{";
- close = true;
+ close_brace = true;
+ }
}
if (open_font && fontswitch_inset) {
@@ -1187,7 +1197,10 @@ void Paragraph::Private::latexInset(BufferParams const &
bparams,
throw;
}
- if (close)
+ if (!close_env.empty())
+ os << "\\end{" << close_env << "}";
+
+ if (close_brace)
os << '}';
if (os.texrow().rows() > previous_row_count) {
--
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs