ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Paragraph breaking bug with BiDi text
Date: Mon, 11 Jan 2016 14:43:28 +0100	[thread overview]
Message-ID: <5693B180.9090506@wxs.nl> (raw)
In-Reply-To: <CAMHZ1dZ6BHuyGb-H323-rPKujm+-dOOQZc9VbKooH3+uHPRbFg@mail.gmail.com>

On 1/9/2016 4:47 AM, Mohammad Hossein Bateni wrote:
> Minor point: changing "\pardir TLT" to "\pardir TLT\textdir TLT" in the
> last paragraph produces better visual, however, the previous paragraphs
> already demonstrate the problem sufficiently.

It is a side effect of what the the par builder considers to be valid 
breakpoints. The current approach is playing very safe but after looking 
at it Taco and I decided that it can be a more tolerant with respect to 
end dirs so the next luatex version will have that.

Anyway: You need to code carefully: the space after "TRT" in "\textdir 
TRT x" is meaningful so in your example you introduce spaces.

Also, in context don't use \textdir etc directly, just use \lefttoright 
and \righttoleft in combination with \setupalign as I will not spend 
much time on side effects of interfering with these low level dir 
changers directly.

> On Fri, Jan 8, 2016 at 10:40 PM, Mohammad Hossein Bateni
> <bateni@gmail.com <mailto:bateni@gmail.com>> wrote:
>
>     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=arabic,range=arabic]
>     \setupalign[r2l]
>     \setupwhitespace[big]
>     \showframe
>
>     \starttext
>
>     % 10 copies of Persian word "hello" stay on one line.
>     \dorecurse{10}{سلام }
>     % 20 copies makes a 2-line paragraph.
>     \dorecurse{20}{سلام }
>
>     % one copy of the word goes into the margin although the Latin
>     letters perfectly fit the line.
>     \dorecurse{10}{سلام }
>     {\textdir TLT\dorecurse{20}{a}}
>     \dorecurse{10}{سلام }
>
>     % although the Latin string extends into the margin, TeX still puts
>     one copy of "hello" there as well.
>     \dorecurse{10}{سلام }
>     {\textdir TLT\dorecurse{30}{a}}
>     \dorecurse{10}{سلام }
>
>     % something similar happens here with the opposite par/text dir
>     \pardir TLT
>     \dorecurse{10}{bidi }
>     {\textdir TRT\dorecurse{20}{آ}}
>     \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!
>
>     —MHB
>
>
>
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________
>


-- 

-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.com | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2016-01-11 13:43 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-09  3:40 Mohammad Hossein Bateni
2016-01-09  3:47 ` Mohammad Hossein Bateni
2016-01-11 13:43   ` Hans Hagen [this message]
2016-01-11 16:58     ` Mohammad Hossein Bateni
2016-01-11 19:24       ` Wolfgang Schuster
2016-01-11 21:52       ` Hans Hagen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5693B180.9090506@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).