]> git.lyx.org Git - features.git/commitdiff
Factor out test for bidi package (= XeTeX + polyglossia)
authorJuergen Spitzmueller <spitz@lyx.org>
Thu, 11 Jul 2019 08:31:10 +0000 (10:31 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:35 +0000 (15:48 +0200)
src/Font.cpp
src/OutputParams.cpp
src/OutputParams.h
src/Paragraph.cpp
src/insets/InsetTabular.cpp

index 941f94a36c49822591ccd045684a7f8e49c5c5e2..0ee6bfe9b05ef32dd2e058a6a7d1a848819a2124 100644 (file)
@@ -340,7 +340,7 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
        // the numbers are written Left-to-Right. ArabTeX package
        // and bidi (polyglossia with XeTeX) reorder the number automatically
        // but the packages used for Hebrew and Farsi (Arabi) do not.
-       if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
+       if (!runparams.useBidiPackage()
            && !runparams.pass_thru
            && bits_.number() == FONT_ON
            && prev.fontInfo().number() != FONT_ON
@@ -507,7 +507,7 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
        // the numbers are written Left-to-Right. ArabTeX package
        // and bidi (polyglossia with XeTeX) reorder the number automatically
        // but the packages used for Hebrew and Farsi (Arabi) do not.
-       if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
+       if (!runparams.useBidiPackage()
            && !runparams.pass_thru
            && bits_.number() == FONT_ON
            && next.fontInfo().number() != FONT_ON
index 5efe7445eba87384e36b5e427eb4b7da54e94417..de4b893728455e7f5756e73351175e594d4645cd 100644 (file)
@@ -57,7 +57,13 @@ bool OutputParams::isLaTeX() const
 
 bool OutputParams::isFullUnicode() const
 {
-       return flavor == LUATEX|| flavor == DVILUATEX || flavor == XETEX;
+       return flavor == LUATEX || flavor == DVILUATEX || flavor == XETEX;
+}
+
+
+bool OutputParams::useBidiPackage() const
+{
+       return use_polyglossia && flavor == XETEX;
 }
 
 } // namespace lyx
index 3ec4eddf226afe2e198561e4ca620ce7abb132ee..fb8cea38318336f596c6042adf099b13cac4d6bf 100644 (file)
@@ -71,6 +71,8 @@ public:
        bool isLaTeX() const;
        /// does this flavour support full unicode?
        bool isFullUnicode() const;
+       /// Do we use the bidi package (which does some reordering and stuff)?
+       bool useBidiPackage() const;
 
        /// Same, but for math output, which only matter is XHTML output.
        MathFlavor math_flavor;
index 5c2570431d540a4465bfc385a2136eedf9285e23..d129cb403e237662bfc81f496fa113cec6a04454 100644 (file)
@@ -1861,7 +1861,7 @@ char_type Paragraph::getUChar(BufferParams const & bparams,
 
        // Return unchanged character in LTR languages
        // or if we use poylglossia/bidi (XeTeX).
-       if ((rp.use_polyglossia && rp.flavor == OutputParams::XETEX)
+       if (rp.useBidiPackage()
            || !getFontSettings(bparams, pos).isRightToLeft())
                return c;
 
@@ -2249,7 +2249,7 @@ int Paragraph::Private::startTeXParParams(BufferParams const & bparams,
        // RTL in classic (PDF)LaTeX (without the Bidi package)
        // Luabibdi (used by LuaTeX) behaves like classic
        bool const rtl_classic = owner_->getParLanguage(bparams)->rightToLeft()
-               && (!runparams.use_polyglossia || runparams.flavor != OutputParams::XETEX);
+               && !runparams.useBidiPackage();
 
        switch (curAlign) {
        case LYX_ALIGN_NONE:
@@ -2313,7 +2313,7 @@ bool Paragraph::Private::endTeXParParams(BufferParams const & bparams,
        // RTL in classic (PDF)LaTeX (without the Bidi package)
        // Luabibdi (used by LuaTeX) behaves like classic
        bool const rtl_classic = owner_->getParLanguage(bparams)->rightToLeft()
-               && (!runparams.use_polyglossia || runparams.flavor != OutputParams::XETEX);
+               && !runparams.useBidiPackage();
 
        switch (curAlign) {
        case LYX_ALIGN_NONE:
index 727018c57730c7defb30110f5a08e55580169ad7..334f09adff38efa4a67d2001d0420191f4116180 100644 (file)
@@ -2934,7 +2934,7 @@ void Tabular::TeXRow(otexstream & os, row_type row,
        // Luabibdi (used by LuaTeX) behaves like classic
        bool const bidi_rtl =
                runparams.local_font->isRightToLeft()
-               && runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX;
+               && runparams.useBidiPackage();
        idx_type lastcell =
                bidi_rtl ? getFirstCellInRow(row) : getLastCellInRow(row);
 
@@ -3154,7 +3154,7 @@ void Tabular::latex(otexstream & os, OutputParams const & runparams) const
        // order for RTL (#9686). Thus we use this list.
        bool const bidi_rtl =
                runparams.local_font->isRightToLeft()
-               && runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX;
+               && runparams.useBidiPackage();
        list<col_type> columns;
        for (col_type cl = 0; cl < ncols(); ++cl) {
                if (bidi_rtl)