From: Juergen Spitzmueller Date: Sun, 25 Aug 2024 13:21:56 +0000 (+0200) Subject: Properly set the babel bidi option (#12862) X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=17ca2ac89c3b30caf0232db22640c6175118c1d0;p=lyx.git Properly set the babel bidi option (#12862) --- diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 3115e6b03b..f82fd1d24c 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -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())