]> git.lyx.org Git - lyx.git/commitdiff
Properly set the babel bidi option (#12862)
authorJuergen Spitzmueller <spitz@lyx.org>
Sun, 25 Aug 2024 13:21:56 +0000 (15:21 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Sun, 25 Aug 2024 13:21:56 +0000 (15:21 +0200)
src/BufferParams.cpp

index 3115e6b03bf37c8213496a50d58b544715702c0d..f82fd1d24c2dd966f9028fdecec75ee779eb592b 100644 (file)
@@ -3069,10 +3069,7 @@ bool BufferParams::useBidiPackage(OutputParams const & rp) const
                // or package options
                || (rp.use_babel
                    && LaTeXFeatures::isAvailableAtLeastFrom("babel", 2019, 4, 3)
-                   && (hasPackageOption("babel", "bidi-r")
-                       || hasPackageOption("babel", "bidi-l")
-                       || contains(options, "bidi-r")
-                       || contains(options, "bidi-l")))
+                   && useNonTeXFonts)
                )
                && rp.flavor == Flavor::XeTeX;
 }
@@ -3556,6 +3553,18 @@ string BufferParams::babelCall(LaTeXFeatures const & features, string lang_opts,
                        lang_opts += force_provide;
                }
        }
+       if (useNonTeXFonts && features.hasRTLLanguage()) {
+               if (!lang_opts.empty())
+                       lang_opts += ", ";
+               if (features.runparams().flavor == Flavor::XeTeX) {
+                       // main language RTL?
+                       if (language->rightToLeft())
+                               lang_opts += "bidi=bidi-r";
+                       else
+                               lang_opts += "bidi=bidi-l";
+               } else
+                       lang_opts += "bidi=basic";
+       }
        // The prefs may require the languages to
        // be submitted to babel itself (not the class).
        if ((langoptions || have_mods) && !lang_opts.empty())