[XeTeX] New feature planned for xetex

Adam Twardoch (List) list.adam at twardoch.com
Fri Feb 19 11:43:26 CET 2016


I think this is a phenomenal step. I don't think it's a specialized feature — it actually opens up a completely different usage field for XeTeX. The past treatment (single-word shaping) was making XeTeX difficult to deal with for purposes eg. of automated font testing or typesetting documents that used fonts that used contextual alternates across word boundaries, i.e. XeTeX's output in OpenType-intense usage fields has always been non-standard. This will make XeTeX more attractive for typographers who'd like to use XeTeX for shorter documents. :) 

Thank you, Jonathan!
Adam

Sent from my mobile phone.

> On 18.02.2016, at 11:58, Jonathan Kew <jfkthame at gmail.com> wrote:
> 
> This is a pretty specialized feature, likely to be interest only to a small minority of users. But for those it concerns, here's something that is "coming soon to a XeTeX near you".......
> 
> 
> I've recently implemented a new feature, controlled by the integer parameter \XeTeXinterwordspaceshaping. This will be available in the TL'16 release, if all goes well.
> 
> This feature is relevant only when using OpenType/Graphite/AAT fonts, not legacy .tfm-based fonts.
> 
> When \XeTeXinterwordspaceshaping is greater than 0, XeTeX will attempt to support fonts where the width of inter-word spaces may vary contextually, depending on the preceding and following text. This is needed by fonts such as SIL's Awami Nastaliq (in development) where words are expected to kern together across spaces.
> 
> The default behavior of xetex is to measure each word in isolation, and simply string together a sequence of such word and space (glue) nodes to form the horizontal list that is then line-broken to form a paragraph. Normally, when inter-word spaces do not depend on the adjacent words, this works fine; but in Awami the width of inter-word spaces may vary drastically, even becoming negative in some cases.
> 
> Setting \XeTeXinterwordspaceshaping=1 tells xetex to measure such spaces "in context" and take account of the contextually-modified widths during line breaking. This greatly improves the typeset result with such a font. Each word is still shaped and rendered individually, but line-breaking and word spacing respects the inter-word kerning.
> 
> A further complication occurs when not only the width of the space but also the glyphs of the adjacent words themselves may be subject to contextual changes. An example of this would be a font that has OpenType ligature rules that apply to multiple-word sequences; e.g. a symbol font that ligates the text "credit card" to render a credit-card icon. Another example is the word-final swash forms in Hoefler Italic, which are intended to be used at end-of-line but NOT before word spaces within the line.
> 
> These cases are addressed with \XeTeXinterwordspaceshaping=2. With this value, not only are inter-word spaces measured in context, but also each run of text (words and intervening spaces) in a single font will be re-shaped as a unit at \shipout time. This allows full shaping (contextual swashes, ligatures, etc) to take effect across inter-word spaces.
> 
> Currently, this feature is implemented only in the "contextual-space" branch of the code at sourceforge; anyone interested in testing it will need to check out and build the code from there. After some time, if no major problems show up, I expect to merge it to the master branch, and then to the TeXLive source tree.
> 
> Feedback welcome..........
> 
> JK
> 
> 
> 
> --------------------------------------------------
> Subscriptions, Archive, and List information, etc.:
> http://tug.org/mailman/listinfo/xetex



More information about the XeTeX mailing list