From: Juergen Spitzmueller Date: Sun, 11 Aug 2019 06:15:57 +0000 (+0200) Subject: Force LTR for numeric citations X-Git-Tag: 2.3.4~48 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1030c70b4820e85c4e2f7b5c5a624782a9c0dbc5;p=features.git Force LTR for numeric citations Fixes: #3005 (cherry picked from commit cce9adc1859f0134800c2405200f1467c8564b13) --- diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp index 2444126898..3e0bd6f05f 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -19,6 +19,7 @@ #include "BufferParams.h" #include "BufferView.h" #include "DispatchResult.h" +#include "Font.h" #include "FuncCode.h" #include "FuncRequest.h" #include "FuncStatus.h" @@ -443,6 +444,20 @@ docstring InsetCitation::basicLabel(bool for_xhtml) const return '[' + label + ']'; } + +bool InsetCitation::forceLTR(OutputParams const & rp) const +{ + // We have to force LTR for numeric references + // [= plain BibTeX, numeric natbib and biblatex]. + // Except for XeTeX/bidi . See #3005. + if (rp.local_font->isRightToLeft() + && rp.use_polyglossia + && rp.flavor == OutputParams::XETEX) + return false; + return (buffer().masterParams().citeEngine().list().front() == "basic" + || buffer().masterParams().citeEngineType() == ENGINE_TYPE_NUMERICAL); +} + docstring InsetCitation::screenLabel() const { return cache.screen_label; diff --git a/src/insets/InsetCitation.h b/src/insets/InsetCitation.h index a8e9e1853d..7962809eda 100644 --- a/src/insets/InsetCitation.h +++ b/src/insets/InsetCitation.h @@ -70,6 +70,8 @@ public: UpdateType utype, TocBackend & backend) const; /// std::string contextMenuName() const; + /// + bool forceLTR(OutputParams const &) const; //@} /// \name Static public methods obligated for InsetCommand derived classes diff --git a/status.23x b/status.23x index 160126d34a..e005d5eedc 100644 --- a/status.23x +++ b/status.23x @@ -90,6 +90,8 @@ What's new - Fix direction of roman numbers with RTL documents and LuaTeX. +- Fix direction of numbered citations outside XeTeX/bidi (bug 3005). + - Fix direction of references with XeTeX/bidi (bug 11626). - Fix interplay of the memoir class and custom page size/geometry (bug 10970).