[XeTeX] Modifying the XeTeX engine

Jonathan Kew jonathan at jfkew.plus.com
Mon Oct 13 22:09:06 CEST 2008

On 13 Oct 2008, at 8:56 AM, VAFA KHALIGHI wrote:

> I have been thinking about this for a while and I want to change  
> XeTeX's engine to handle the bidirectional typesetting much better  
> than what it is now.
> Am I allowd to do this and call the resulting engine to be something  
> like ParsiXeTeX?

Allowed? Yes, if the result will also be placed under an appropriate  
free license. But before you do that, let's consider whether it is the  
best approach.

If the changes you are considering are generally useful, or if they're  
only relevant to Persian but don't have any negative impact on other  
usage, then surely it would be best to integrate them into the main  
xetex engine rather than creating a Persian-specific fork of the code.

> So for the start I should be changing tex.ch which is placed at
> http://scripts.sil.org/svn-public/xetex/TRUNK/texk/web2c/tex.ch

Don't do this: tex.ch is the wrong place to make such changes. This  
file is shared by the TeX Live implementations of tex, etex, and  
pdftex as well as xetex. The main xetex changefile is xetex.ch, which  
is applied after several other (shared) changefiles have already been  
applied to the WEB source. See xetex.mk for the details.

So WEB-level modifications to xetex that are not appropriate for all  
the other engines should be done in xetex.ch, not in the earlier  
shared changefiles. Or alternatively you can add a new changefile to  
the end of the build process, applying your modifications after  
xetex.ch in the sequence. (This would be the best option for ongoing  
maintenance if you do decide to fork rather than submitting patches  
for xetex itself.)

> Please look at the blow link, for the changes that I have in mind
> http://parsilatex.org/xepersian/tex.ch.pdf

It's difficult to grasp what you are aiming to implement in this form.  
Please provide the actual changes as a patch for xetex.ch (see above)  
or as a separate changefile, so it's clear exactly what code changes  
are involved. A PDF of the changefile is not useful for identifying  
the specific places where you have modified it.

However, before taking the time to do this, it would be helpful if you  
can explain the functionality you are adding or changing, so we can  
understand what the code is intended to do. When we understand the  
high-level goals, it's even possible that someone will have useful  
suggestions for the implementation. There might be various possible  
approaches to the problems, or ways to combine this with features that  
will be useful for other languages and scripts as well.



More information about the XeTeX mailing list