[XeTeX] Modifying The XeTeX engine

Ross Moore ross at ics.mq.edu.au
Fri Dec 26 03:24:18 CET 2008

Hi Vafa,

On 24/12/2008, at 10:48 PM, VAFA KHALIGHI wrote:

> These extra 100 commands are:
> \LtoR, \RtoL, \accfactor, \activefont, \aftereverydisplay,  
> \autoLRdirset, \autofontset, \autoLRset, \basefont, \billions,  
> \everysemidisplay, \everysemimath, \everysemipar, \fonttwin,  
> \hboxR, \ifLtoR, \ifRtoL, \ifautoLRdir, \ifautofont,
> \ifjoinable, \iflatin, \ifleftvbox, \ifcase, \ifonesof, \iftensof,  
> \ifhundredsof, \ifthousands, \ifmillions, \ifbillions, \ifprehundreds,

Oops. TeX already has  \ifcase  as a primitive.
Are you defining it differently here, concerning upper/lowercase ?
In that case (sic.) \iflettercase  would be a better name.

> \ifprethousands, \ifpremillions, \ifprebillions, \ifsetlatin,  
> \ifsetsemitic, \ifsetrawprinting, \ifsemiticchar, \ifsplited,
> \inputR, \jattrib, \lastcharjoinable, \lastcharunjoinable, \latin,  
> \lcode, \leftvbox, \curboxdir, \curdirection, \curLRswch,  
> \curspeech, \maketwin, \manLRset, \midruleinit, \midrulespec,  
> \millions, \openinR, \openoutR, \rawprinting, \eqprinting,
> \rightvbox, \leftinput, \semiaccent, \semiaccentdown,  
> \retainaccentchar, \semichar, \semichardef, \semiday, \semifam,  
> \dblfont, \semifont, \semihalign, \semimonth, \semispaceskip,  
> \semitic, \semixspaceskip, \semiyear, \thousands,
> \twinfont, \vboxjustification, \LRshowswitch, \LRmiscswitch,  
> \eqwrite, \letlatinname, \letsemiticname, \leteqname, \eqchar,  
> \eqcharif, \letnoteqname, \letnoteqchar, \letnoteqcharif,  
> \endspecial, \beginspecial

But with all these new (?) names, it is important to check
that packages are not using them already; or if any are indeed
being used then that at least the syntax is the same so that
files will still compile satisfactorily.

> I am attaching the actual change file (tex.ch) with this email.  
> Jonathan, would wou think that we could possibly define these new  
> primitives in the XeTeX engine? if you do that, then there will be  
> no problem at all with bidirectional typesetting and XeTeX will  
> have most complete bidirectional algorithm for typesetting in TeX.
> Please feel free to comment about the commands.

The approach adopted by the pdftex developers is to keep
the number of primitives to an absolute minimum.
If the required effect can be obtained with macros and
existing primitives, then this should be done rather
than introducing new primitives.

My own view is less strict, in that I'd support having
new primitives also if this has significant effects
on the speed or efficiency of typesetting; e.g., by
significantly reducing the amount of complicated macro

Please don't think that my remarks mean that I'm
against your proposed changes --- I am not.
Just that we should be extremely careful when
introducing new features, and particularly careful
in the choice of naming of new primitives.

> Thanks

Hope this helps,


Ross Moore                                       ross at maths.mq.edu.au
Mathematics Department                           office: E7A-419
Macquarie University                             tel: +61 (0)2 9850 8955
Sydney, Australia  2109                          fax: +61 (0)2 9850 8114

More information about the XeTeX mailing list