[XeTeX] Modifying the XeTeX engine
jonathan at jfkew.plus.com
Mon Oct 13 22:19:34 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
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
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
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