}
}
- // 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
- // but the packages used for Hebrew and Farsi (Arabi) do not.
- if (!runparams.use_polyglossia
- && !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;
- }
-
FontInfo f = bits_;
f.reduce(base.bits_);
FontInfo p = bits_;
env = true; //We have opened a new environment
}
*/
+ // If the current language is Hebrew, Arabic, or Farsi
+ // 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)
+ && !runparams.pass_thru
+ && bits_.number() == FONT_ON
+ && prev.fontInfo().number() != FONT_ON
+ && (language()->lang() == "hebrew"
+ || language()->lang() == "farsi"
+ || language()->lang() == "arabic_arabi")) {
+ if (runparams.use_polyglossia) {
+ // LuaTeX/luabidi
+ os << "\\LR{";
+ count += 5;
+ } else {
+ os << "{\\beginL ";
+ count += 9;
+ }
+ }
if (f.emph() == FONT_ON) {
os << "\\emph{";
count += 6;
count += 10;
++runparams.inulemcmd;
}
+ if (f.uuline() == FONT_ON) {
+ os << "\\uuline{";
+ count += 11;
+ ++runparams.inulemcmd;
+ }
if (f.strikeout() == FONT_ON) {
os << "\\sout{";
count += 9;
count += 9;
++runparams.inulemcmd;
}
- if (f.uuline() == FONT_ON) {
- os << "\\uuline{";
- count += 11;
- ++runparams.inulemcmd;
- }
if (f.uwave() == FONT_ON) {
+ if (runparams.inulemcmd) {
+ // needed with nested uwave in xout
+ // see https://tex.stackexchange.com/a/263042
+ os << "\\ULdepth=1000pt";
+ count += 15;
+ }
os << "\\uwave{";
count += 10;
++runparams.inulemcmd;
// 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_) {