XeLateX RTL Urdu 中的自动换行发生在右侧而不是左侧

XeLateX RTL Urdu 中的自动换行发生在右侧而不是左侧

为什么以下乌尔都语文本似乎在右侧换行而不是在左侧换行?如果无法调整单词,它不应该突出到左边距,而不是右边距吗?我是否错过了 bidi 包的某些选项?

% !TEX TS-program = xelatex
% texlive 2017
  \TeXXeTstate=1
  \documentclass[17pt]{memoir} 

\setstocksize{5.25in}{4in}
\settrimmedsize{5.25in}{4in}{*}
\settrims{0in}{0in}
\settypeblocksize{4.3in}{3in}{*}
\setlrmargins{*}{*}{*}
\setulmargins{*}{*}{*}
\setheadfoot{-4pt}{10pt}
\setheaderspaces{20pt}{*}{*}
\checkandfixthelayout

\usepackage{fontspec}
    \defaultfontfeatures{Scale=MatchLowercase, Mapping=tex-text}
    \setmainfont[Renderer=Graphite]{Scheherazade}
\XeTeXinterwordspaceshaping = 2 %

    \usepackage[RTLdocument]{bidi}

\begin{document}
اُردُو (یا جدید معیاری اردو) ہندوستانی زبان کی معیاری قسم ہے۔ یہ پاکستان کی قومی اور رابطہ عامہ کی زبان ہے، جبکہ بھارت کی چھے ریاستوں کی دفتری زبان کا درجہ رکھتی ہے۔ بھارتی آئین کے مطابق اسے 22 دفتری شناخت زبانوں میں شامل کیا جاچکا ہے۔ 2001ء کی مردم شماری کے مطابق اردو کو بطور مادری زبان بھارت میں 5.01\% فیصد لوگ بولتے ہیں اور اس لحاظ سے یہ بھارت کی چھٹی بڑی زبان ہے جبکہ پاکستان میں اسے بطور مادری زبان 7.59\% \ldots
\end{document}

在此处输入图片描述

答案1

根据这个帖子xetex邮件列表中,这是 XeT--TeX 模型(e-TeX 使用\TeXXeTstate=1)的 RTL 排版工作方式的一种表现。

大卫·卡莱尔写道:

这实际上只是 tex-(-)xet 模型的基本问题的一个症状,段落生成器本质上是总是构建 LTR 段落时,您只能使用\beginR/endR 之内排版文本的段落方向相反。没有办法说“建立一个从右到左的段落”对应于\pardir

因此,解决问题的选项是设置一个\sloppy段落(或增加\emergencystretch),如下所示这个答案或者使用设置 RTL 段落的lualatex功能。\pardir

相关内容