[XeTeX] Issue with Arabic Typography

Jonathan Kew jonathan at jfkew.plus.com
Tue Feb 24 13:44:19 CET 2009

On 24 Feb 2009, at 12:19, وفا خلیقی wrote:

> Sorry for repeating the same question again, but since I did not get  
> any response, I will repeat it gain. The answer does not need to be  
> detailed, it can be either "yes, you can do this in xetex" or "no,  
> you can not do it in xetex".

The answer is not that simple. You can do something with xetex macros,  
for example using the inter-char token mechanism to put stretchable  
rules at the joins. But really good Arabic or Persian typography would  
use something more sophisticated than that. It's not really correct to  
provide equal stretchability at all joins; some positions should be  
considered "preferable" to others. But it's pretty hard to implement  
all that at the TeX macro level.

A complete solution would involve support for the OpenType  
justification table, although not all fonts provide this; it would  
apply to more than just Arabic script; and I expect it would involve  
enhancements to TeX's paragraphing routines as well as the hpack()  

There's a partial solution within xetex currently, but only when using  
AAT fonts on the Mac platform; here, it will attempt to apply the AAT  
justification table across each complete line of text. This can work  
pretty well for running text, but is not always so successful in  
complex material where there are frequent style changes, tabulation,  
etc. One trouble is that at the time when TeX actually "packages up" a  
horizontal list, it doesn't know whether this hlist is in fact a  
complete line or a fragment of something larger (such as a table cell,  
a part of a formula, or many other things).

As a simple example, I'm attaching a file that can be loaded in a  
Persian xetex job to provide some simple "stretching".... obviously  
you can make adjustments to the characters involved and the glue  
metrics used, to alter its behavior. This is really just a starting  
point, but might be useful for some purposes.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PersianKashida.tex
Type: application/octet-stream
Size: 1461 bytes
Desc: not available
Url : http://tug.org/pipermail/xetex/attachments/20090224/c2b90c8e/attachment.obj 
-------------- next part --------------

More information about the XeTeX mailing list