From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/93240 Path: news.gmane.org!not-for-mail From: Mohammad Hossein Bateni Newsgroups: gmane.comp.tex.context Subject: Paragraph breaking bug with BiDi text Date: Fri, 8 Jan 2016 22:40:10 -0500 Message-ID: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113d12a40208190528de763a X-Trace: ger.gmane.org 1452310855 13981 80.91.229.3 (9 Jan 2016 03:40:55 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 9 Jan 2016 03:40:55 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sat Jan 09 04:40:44 2016 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aHkOS-0004CW-7Z for gctc-ntg-context-518@m.gmane.org; Sat, 09 Jan 2016 04:40:44 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 822C25CB0; Sat, 9 Jan 2016 04:40:25 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AiyRbGGLRSub; Sat, 9 Jan 2016 04:40:24 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [IPv6:::1]) by zapf.ntg.nl (Postfix) with ESMTP id B37D35C91; Sat, 9 Jan 2016 04:40:24 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id ECC8F5C1B for ; Sat, 9 Jan 2016 04:40:23 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27wCZVyuLLn9 for ; Sat, 9 Jan 2016 04:40:23 +0100 (CET) Original-Received: from mail-oi0-f42.google.com (mail-oi0-f42.google.com [209.85.218.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id C27A75946 for ; Sat, 9 Jan 2016 04:40:12 +0100 (CET) Original-Received: by mail-oi0-f42.google.com with SMTP id o124so14443742oia.3 for ; Fri, 08 Jan 2016 19:40:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=0qfpHurDfqV3QbYMJZrYMhNbMk2GMoDoXeRnAFgtZkc=; b=0fdHbZgetTB93wgqUzq2uJvnfUxEgbnbFc1dPWHMaIXnqTmPqCDG1HR310xaSM5oT8 IczkMq8+m3HZmgZ2Xg+WD7cw61hMJla3ZTmVZL8ArcLM2yrnGRvHMR9B8qZGEBnxmkVf SEq6whmxQeEHZC94VE0zDe3R4wQBsD0Ih41jeBUW8L7krj+7DaVKqyFsyz1LchJhIart obcPpVX7GRAuhc0XHAPmYWxAT6qDjO0TYJ627ZGWrQH2Kwj+x6x4qkdbAVCCUOuB2uDO 2OJAL7eE9uT+KA/2r7turHELOGJ9is6NlVClSNGQYfRJhDK5YWVcH8V03+tKVTEtaIxy jJnA== X-Received: by 10.202.83.74 with SMTP id h71mr81290990oib.115.1452310811221; Fri, 08 Jan 2016 19:40:11 -0800 (PST) Original-Received: by 10.202.57.86 with HTTP; Fri, 8 Jan 2016 19:40:10 -0800 (PST) X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.16 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.org gmane.comp.tex.context:93240 Archived-At: --001a113d12a40208190528de763a Content-Type: multipart/alternative; boundary=001a113d12a40208140528de7638 --001a113d12a40208140528de7638 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello, When a line ends with a sequence whose direction differs from that of the paragraph, we risk pushing some text into the margin (when not necessary). Here is an example with corresponding output: \usemodule[simplefonts] \setmainfont[ALM Fixed][features=3Darabic,range=3Darabic] \setupalign[r2l] \setupwhitespace[big] \showframe \starttext % 10 copies of Persian word "hello" stay on one line. \dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 } % 20 copies makes a 2-line paragraph. \dorecurse{20}{=D8=B3=D9=84=D8=A7=D9=85 } % one copy of the word goes into the margin although the Latin letters perfectly fit the line. \dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 } {\textdir TLT\dorecurse{20}{a}} \dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 } % although the Latin string extends into the margin, TeX still puts one copy of "hello" there as well. \dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 } {\textdir TLT\dorecurse{30}{a}} \dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 } % something similar happens here with the opposite par/text dir \pardir TLT \dorecurse{10}{bidi } {\textdir TRT\dorecurse{20}{=D8=A2}} \dorecurse{10}{bidi } \stoptext The problem seems to be that after typesetting the LTR text within the RTL paragraph, TeX thinks the current text ends at the left end of the LTR portion; hence, it tries to add something to the line; it's only after that that it discovers we ran into the margin! =E2=80=94MHB --001a113d12a40208140528de7638 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello,

When a line ends with a sequence= whose direction differs from that of the paragraph, we risk pushing some t= ext into the margin (when not necessary).=C2=A0 Here is an example with cor= responding output:


\usemodule[simplefonts]
\setm= ainfont[ALM Fixed][features=3Darabic,range=3Darabic]
\setupalign[r2l]\setupwhitespace[big]
\showframe

\starttext

% 10 copies = of Persian word "hello" stay on one line.
\dorecurse{10}{=D8= =B3=D9=84=D8=A7=D9=85 }
% 20 copies makes a 2-line paragraph.
\dorecu= rse{20}{=D8=B3=D9=84=D8=A7=D9=85 }

% one copy of the word goes into = the margin although the Latin letters perfectly fit the line.
\dorecurse= {10}{=D8=B3=D9=84=D8=A7=D9=85 }
{\textdir TLT\dorecurse{20}{a}}
\dore= curse{10}{=D8=B3=D9=84=D8=A7=D9=85 }

% although the Latin string ext= ends into the margin, TeX still puts one copy of "hello" there as= well.
\dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 }
{\textdir TLT\dorecu= rse{30}{a}}
\dorecurse{10}{=D8=B3=D9=84=D8=A7=D9=85 }

% something= similar happens here with the opposite par/text dir
\pardir TLT
\dor= ecurse{10}{bidi }
{\textdir TRT\dorecurse{20}{=D8=A2}}
\dorecurse{10}= {bidi }

\stoptext


The problem seem= s to be that after typesetting the LTR text within the RTL paragraph, TeX t= hinks the current text ends at the left end of the LTR portion; hence, it t= ries to add something to the line; it's only after that that it discove= rs we ran into the margin!

=E2=80=94MHB

--001a113d12a40208140528de7638-- --001a113d12a40208190528de763a Content-Type: application/pdf; name="bidi-par-bug.pdf" Content-Disposition: attachment; filename="bidi-par-bug.pdf" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ij6kapd50 JVBERi0xLjcKJdDUxdgKMTIgMCBvYmoKPDwvTGVuZ3RoIDcyOCAgICAgICAvRmlsdGVyL0ZsYXRl RGVjb2RlPj4Kc3RyZWFtCnhe7VlNb9swDL37V+gPjCFFUR9AkUOLtUBv23wretrQXZbDssP+/ujE drPVcbgo3TDMh6ZKojyZT+9JlLhqt+g+f2v0xaG7G/9/bUjfoyP3hiJwjuRSQsiM2X3cNA+P6D7p 1/cOgUsW933Xe+OSgC8lavuL+9C8a37GoRyzSxSAuaRZHHQSIRYML3AkgyJwLcxzWPo4wrmcGVZH Skw2coIXoMIT5CQCjNHXBhWK6NOgPk4dx0NQFmqOByWYAYmDjZzjyulwPPnqqCQzEHG9Ase4LPzM O2LvLMWhoFqvdBZRAZR80lmqEp+xHLVWLc7orQ7Iy7krxoEKT7Jz2lq1QY3eqgXqw7JwY/FWnXZG b9VGNZqrGmhwl4Ugg7mIMmQpUmuu6IFjnvfo6V2rDmU0lsJITPHMmEYFGpg5bay6kEZb1cH0IVl4 MZiqUjOjqepiGi1VCTMYykLOr4a6bpvVLTkiKCKk2Vv7pDnhPjPUPQTYi2YtESEG7127cQ9XiOLX j+39mEGGXCBlFpdQPZSD9P2CD2tCwSsMJfYtvr4ZWimvSZLot0s/fF1eJmcrpgTEMfzGbPlgm62L 9zOq5OLjzsdLV8g7Ff/hcdVR/bh/hZdpNenqk1CPWfs14v/x9DQbnCBEPUub2QjYrZOnV8Kl3/RO YuWFklfTIN1c8m+tx07bTjatFs+AzGxXy7JvVuUTk7MgJWkao+nO4tkj2ZrVY5fuF0tnrgt71oq3 Jr24M+2z06rSSymWlOyqWrx9MW/riQb07OFEL5UJtdEfYDz3Q+iOO7T87eFnOwnj0k85eFVeUnc8 ZJJhyv/VllEvh0sEh6S7PomTwBCzJ7s6d0uEQZ1Lv0l3d7PwttVaGILqT+86tl1xbHjz/q5ZtVvf Vc2eq1vocqCuYDV/z6j3kOCTTNXHUEtDxes4c0WA/TA5l/zy8l6hMcWuunQmQhfi7hnmfv8igh/q ldDhCmVuZHN0cmVhbQplbmRvYmoKMTUgMCBvYmoKPDwvU3VidHlwZSAvWE1MIC9UeXBlIC9NZXRh ZGF0YQovTGVuZ3RoIDE2NTggICAgICA+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlk PSJreWZreGdsbGhzbHdkcHRqeGV0dHFxbnkiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5z Om1ldGEvIj48cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjIt cmRmLXN5bnRheC1ucyMiPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOmRjPSJo dHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9w ZGY8L2RjOmZvcm1hdD48ZGM6Y3JlYXRvcj48cmRmOlNlcT48cmRmOmxpIHhtbDpsYW5nPSJ4LWRl ZmF1bHQiLz48L3JkZjpTZXE+PC9kYzpjcmVhdG9yPjxkYzpkZXNjcmlwdGlvbj48cmRmOkFsdD48 cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz48L3JkZjpBbHQ+PC9kYzpkZXNjcmlwdGlvbj48 ZGM6dGl0bGU+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5iaWRpLWJ1Zy0x OTwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOnRpdGxlPjwvcmRmOkRlc2NyaXB0aW9uPjxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnBkZng9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRm eC8xLjMvIj48cGRmeDpDb25UZVh0LkpvYm5hbWUvPjxwZGZ4OkNvblRlWHQuVGltZS8+PHBkZng6 Q29uVGVYdC5VcmwvPjxwZGZ4OkNvblRlWHQuVmVyc2lvbi8+PHBkZng6SUQ+YmlkaS1idWctMTku MjAxNi0wMS0wOFQyMjoyNTo0MysxOTowMDwvcGRmeDpJRD48cGRmeDpQVEVYLkZ1bGxiYW5uZXI+ VGhpcyBpcyBMdWFUZVgsIFZlcnNpb24gYmV0YS0wLjg3LjAgKFRlWCBMaXZlIDIwMTYvZGV2KTwv cGRmeDpQVEVYLkZ1bGxiYW5uZXI+PC9yZGY6RGVzY3JpcHRpb24+PHJkZjpEZXNjcmlwdGlvbiBy ZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj48eG1w OkNyZWF0ZURhdGU+MjAxNi0wMS0wOFQyMjoyNTo0MysxOTowMDwveG1wOkNyZWF0ZURhdGU+PHht cDpDcmVhdG9yVG9vbD5Db25UZVh0IC0gMjAxNi4wMS4wNCAxNTo0NzwveG1wOkNyZWF0b3JUb29s Pjx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTAxLTA4VDIyOjI1OjQzKzE5OjAwPC94bXA6TW9kaWZ5RGF0 ZT48eG1wOk1ldGFkYXRhRGF0ZT4yMDE2LTAxLTA4VDIyOjI1OjQzKzE5OjAwPC94bXA6TWV0YWRh dGFEYXRlPjwvcmRmOkRlc2NyaXB0aW9uPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyI+PHBkZjpLZXl3b3Jkcy8+PHBk ZjpQcm9kdWNlcj5MdWFUZVgtMC44Ny4wPC9wZGY6UHJvZHVjZXI+PHBkZjpUcmFwcGVkPkZhbHNl PC9wZGY6VHJhcHBlZD48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91 dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyI+PHhtcE1N OkRvY3VtZW50SUQ+dXVpZDo0MTBlZGNlNS00M2M4LTg3MGItOTIwMC00NGMzMzI4MmQ4NzI8L3ht cE1NOkRvY3VtZW50SUQ+PHhtcE1NOkluc3RhbmNlSUQ+dXVpZDozZGQ5NzdlNy00YmM5LWIwZWIt ZGQ3OS0yYTkxNzU2ZmMzYTM8L3htcE1NOkluc3RhbmNlSUQ+PC9yZGY6RGVzY3JpcHRpb24+PC9y ZGY6UkRGPjwveDp4bXBtZXRhPjw/eHBhY2tldCBlbmQ9InciPz4KZW5kc3RyZWFtCmVuZG9iagox NyAwIG9iago8PC9MZW5ndGggMzMgICAgICAgIC9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0K eF5jYGDgEGBkYFAAQtoAFmRjG6AcDmRBFA4DEwBFLwDwCmVuZHN0cmVhbQplbmRvYmoKMTggMCBv YmoKPDwvU3VidHlwZS9DSURGb250VHlwZTBDL0xlbmd0aCAxNDMwICAgICAgL0ZpbHRlci9GbGF0 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 O57CHzIvujaclKl+at1zCj2JunW5cDlGX3DpR31i0zH1VnmWO6vD1hGJayAOFw6PUykvJVDeR5Fc cg7s2V6a7zS9GovJIgFIa7Xf64zYpBudaPzssNY19WYHhVAc7saRa0yB5LEZnb3xpfHIBY+llIF1 9oHzD8ZY3qJlTpyF4CJEp4WGL6yGIyMz0zWMurPlIHmT92NdUO/5+dnd12q7U47KtLuudm8y+Vyt SgyAdxQYtbkwXPrvQjwTYoqzqlvqrc2UPrZbhQou3VK3/Qt2n948uZNDUaxUWRou0m95Q/h1nPxB 5+tZoRpPDAGkn2iWfzcNKUKW6e/9Psr5XwX96W0KZW5kc3RyZWFtCmVuZG9iagoyNCAwIG9iago8 PC9UeXBlL1hSZWYvSW5kZXhbMCAyNV0vU2l6ZSAyNS9XWzEgMiAxXS9Sb290IDIyIDAgUi9JbmZv IDIzIDAgUi9JRFs8RDYzNjkxQTU0NzlBOTkyQzY3RDI2MTI5QzVCQTgwRTg+IDxENjM2OTFBNTQ3 OUE5OTJDNjdEMjYxMjlDNUJBODBFOD5dL0xlbmd0aCA3NCAgICAgICAgL0ZpbHRlci9GbGF0ZURl Y29kZT4+CnN0cmVhbQp4XhXIuQ2AMBBE0T8+wJgAREAjtEIThIj+ZWaDpzkgjUQrkAcUqzYZ8aPj xinLlsQWe7ZF+Ype1Qvqb/RJ+xPZrNuq8+MHVRkJBgplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJl Zgo1NzQ3CiUlRU9GCg== --001a113d12a40208190528de763a Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly90ZXguYWFuaGV0Lm5ldAphcmNoaXZlICA6IGh0dHA6Ly9mb3VuZHJ5LnN1cGVsZWMu ZnIvcHJvamVjdHMvY29udGV4dHJldi8Kd2lraSAgICAgOiBodHRwOi8vY29udGV4dGdhcmRlbi5u ZXQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18= --001a113d12a40208190528de763a--