[luatex] Direction of hbox inside math

Khaled Hosny khaledhosny at eglug.org
Tue Apr 13 09:46:08 CEST 2010

On Tue, Apr 13, 2010 at 10:30:59AM +1000, Vafa Khalighi wrote:
> On Tue, Apr 13, 2010 at 4:02 AM, Khaled Hosny <khaledhosny at eglug.org> wrote:
>     Currently, hbox inside math inherits math not text direction, so in this
>     example:
>     \textdir TRT text $\hbox{math}$
>     \bye
>     The "math" word will be set left-to-right. At first glance this looks
>     natural, but with more thought I think it should instead follow the text
>     direction. In Iran and Morocco, math is set from left-to-right but with
>     Arabic text (sin, cos, "if else" etc.) so it would be simpler if text
>     set inside hboxes followed the text not math direction. The other issue,
>     which what actually inclined me to think about this, is that many tex
>     code abuses math mode to typeset text, most notably latex's tabular
>     environment, as a result one either needs to always set mathdir the same
>     as textdir (which is not an option for many) or go through hoops
>     redefining many internal macros of latex kernel and many other "frozen"
>     packages, to get things work.
>     What do you think?
> I think luatex behaviour in this matter is right and the direction inside math
> is better not to follow the text direction in the engine level.

For what reason? You don't give any.

> If you need to
> typeset an hbox RTL in math mode, you can simply have $\hbox dir TRT{math}$. I
> think  a macro package can provide all of this ideas, it can implement \hboxR
> and \hboxL like what I have done in the recent version of  bidi package.

That is all nice, and what I'm proposing doesn't prevent any one from
writing such macros.

> If one
> is doing math RTL, then would not mathdir TRT, already make that \hbox inside
> math mode RTL?

If one is doing right-to-left math then he is either doing right-to-left
text already, or can set textdir to TRT inside a group around math. The
difference it that any code dealing with right-to-left math is new code
and can be easily adapted, unlike things like LaTeX kernel.

> with latex's tabular thing, I guess you are right but we could
> redefine hbox to be always RTL inside tabular by some macro programming and one
> tabular environment is finished, hbox gets back its original definition.

That is kind of dirty hacks I'm trying to avoid. Patching +8 LaTeX
tabular implantation is not fun.

> However, I think this is not clean, I believe a clean way for latex's tabular
> is to have a primitive \halignR, such that it makes tabular RTL, if Taco wants,
> I even can send a source code where he can actually extract the implementation
> of \halignR from the source code.

ConTeXt can do tables with no resorting to math mode and it works very
well for Arabic, so it is a matter of stupid LaTeX choice than lack of
proper primitives.


 Khaled Hosny
 Arabic localiser and member of Arabeyes.org team
 Free font developer

More information about the luatex mailing list