Forum Bugs

Mixed direction text - Hebrew and English

sstanelle
Hi,

I am currently running Prince 7.0. I have a document that contains both English and Hebrew text. When I wrap the document with the rtl css property, the PDF displays correctly, for the most part anyway. The one issue I am noticing is with regard to parentheses. For example, the following text

מנהל השכפול של English (More English)מפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.

displays as

מנהל השכפול של (English (More Englishמפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.

Note the incorrect location of the parentheses. Interestingly, if I remove the word "English" as in the following:

מנהל השכפול של (More English)מפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.

the parentheses display correctly in the PDF:

מנהל השכפול של (More English)מפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.

I am not currently using the css property unicode-bidi so I'm wondering if that is the reason. Any way, any suggestions in terms of how to solve this issue would be greatly appreciated.

Thanks!

Scott
sstanelle
I don't know if this question makes sense, but here it goes...

Does the Prince code have the Unicode Bidirectional Algorithm embedded in it?
mikeday
Yes, however the algorithm is subtle and the results can sometimes be surprising. :)

Can you paste or email me (mikeday@yeslogic.com) the HTML source for that paragraph?
sstanelle
Mike,

Thanks for your prompt response!

Here is the HTML code:

<div class="rtl">

<p>
מנהל השכפול של English (More English)מפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.
</p>

</div>

The definition of the class "rtl" is the following:

.rtl { direction: rtl; }

Now one thing I discovered that seems to work is if I modify the HTML code as follows:

<div class="rtl">

<p>
מנהל השכפול של <span class="english">English (More English)</span>מפשט ומאיץ את הניהול של שכפול תמונות מערכת ושחזור פרטני ברמת קובץ מכל תמונת מערכת משוכפלת המנוהלת באמצעות.
</p>

</div>

where the class "english" is defined as:

.english {
direction: ltr;
unicode-bidi: embed;
}

I didn't know though if Prince was doing something similarly in its algorithm.

Thanks for your help!

Scott
mikeday
Thanks for posting the HTML. It seems to display the same in Mozilla Firefox as in Prince, which is some evidence that this is the intended output of following the Unicode bidirectional algorithm. Note that HTML does define a direction attribute, eg. dir="rtl" or dir="ltr" which can remove the need to define your own classes for the purpose. By default these will also apply unicode-bidi: embed.
StoneCypher
Using CSS to specify directionality is illegal. Use dir= or bdo= .

http://www.w3.org/International/questions/qa-bidi-css-markup

John Haugeland is http://fullof.bs/

sstanelle
Hi Mike,

I am attaching an HTML file with a bit of bidirectional text in it (Hebrew, English). The file contains a few left-to-right marks (&#8206;) and right-to-left marks (&#8207;). When I convert the file to a PDF using the Prince application, the marks appear in the PDF output. You can try this yourself to see what I mean.

How do I get Prince to correctly interpret these marks and not display them in the PDF output?

Thanks,

Scott
mikeday
Bidi marks are handled correctly in Prince 7.1 and subsequent versions.