On 02/01/2009, at 1:55 AM, VAFA KHALIGHI wrote:

> Thanks for this. I am more than happy to support bidirectional
> typesetting in LaTeX3, so it seems that I need to start when you
> almost have finished the coding. Is there any official way that
> someone can join LaTeX3 project? I mean I would like to join the
> project to add features for bidirectional typesetting support.

The best thing that you can do right now is to look at the expl3 code
and how that fits into what you have in mind. We're in the middle of
changing some things around, so things certainly aren't stable right
now. But the underlying philosophy is correct and you'll be able to
get a good feel for how the programming layer works.

> On the other hand, there is a problem with contributed packages in
> LaTeX2e. A package that is written by X, would include a command
> where its name is already used in the other package and if the user
> uses these two packages, then he will be experienceing such
> problems. Is there any plan that in LaTeX3, we can control
> contributed packages to avoid such problems?

There is a more formal mechanism to name package variables/functions
according to a standard naming scheme.

For example, in the expl3 code the functions are split into separate
modules, each which takes a standard prefix:
\clist_map_inline:nn
\bool_if:nTF
\int_abs:n
and so on. New packages/modules will take their own prefix in the same
way that LaTeX package authors use things like \zf@ as a prefix to
separate their internal functions and avoid clashes. Without
namespacing in TeX, this is the best we can do -- the problem will
never be eliminated but it shouldn't be much of a problem. Even now I
find it's very rare to run into problems.

Hope this helps,
Will