Proper number ordering with luabidi

As opposed to bidi (XeTeX), luabidi (LuaTeX) does no automatic reordering,
so we need to use \\LR{}

(cherry picked from commit 1d0929b5d9)
This commit is contained in:
Juergen Spitzmueller 2019-07-11 09:54:28 +02:00
parent f0f4b98c6e
commit 5679dc5c6f
2 changed files with 22 additions and 8 deletions

View File

@ -398,17 +398,23 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams,
*/
// If the current language is Hebrew, Arabic, or Farsi
// the numbers are written Left-to-Right. ArabTeX package
// and bidi (polyglossia) reorder the number automatically
// and bidi (polyglossia with XeTeX) reorder the number automatically
// but the packages used for Hebrew and Farsi (Arabi) do not.
if (!runparams.use_polyglossia
if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
&& !runparams.pass_thru
&& bits_.number() == FONT_ON
&& prev.fontInfo().number() != FONT_ON
&& (language()->lang() == "hebrew"
|| language()->lang() == "farsi"
|| language()->lang() == "arabic_arabi")) {
os << "{\\beginL ";
count += 9;
if (runparams.use_polyglossia) {
// LuaTeX/luabidi
os << "\\LR{";
count += 5;
} else {
os << "{\\beginL ";
count += 9;
}
}
if (f.emph() == FONT_ON) {
os << "\\emph{";
@ -559,17 +565,23 @@ int Font::latexWriteEndChanges(otexstream & os, BufferParams const & bparams,
// If the current language is Hebrew, Arabic, or Farsi
// the numbers are written Left-to-Right. ArabTeX package
// and bidi (polyglossia) reorder the number automatically
// and bidi (polyglossia with XeTeX) reorder the number automatically
// but the packages used for Hebrew and Farsi (Arabi) do not.
if (!runparams.use_polyglossia
if (!(runparams.use_polyglossia && runparams.flavor == OutputParams::XETEX)
&& !runparams.pass_thru
&& bits_.number() == FONT_ON
&& next.fontInfo().number() != FONT_ON
&& (language()->lang() == "hebrew"
|| language()->lang() == "farsi"
|| language()->lang() == "arabic_arabi")) {
os << "\\endL}";
count += 6;
if (runparams.use_polyglossia) {
// LuaTeX/luabidi
os << "}";
count += 1;
} else {
os << "\\endL}";
count += 6;
}
}
if (open_encoding_) {

View File

@ -76,6 +76,8 @@ What's new
- Fix direction of brackets with RTL documents and LuaTeX (part of bug 11187).
- Fix direction of roman numbers with RTL documents and LuaTeX.
* USER INTERFACE