Hello,

Here is what happens when \vcenter is encountered:

static

void

run_vcenter

(

void

)

{

scan_spec

(vcenter_group)

;

normal_paragraph

()

;

push_nest

()

;

mode

= -vmode;

prev_depth_par

= ignore_depth;

if

(every_vbox_par != null)

begin_token_list

(every_vbox_par, every_vbox_text)

;

}

So unlike other boxes is uses scan_spec and not scan_full_spec, which means it 
cannot accept the attr and (b)dir keywords, and the directions registers are 
not set to its direction
inside of it.

Then when it finishes we have:

void

finish_vcenter

(

void

)

{

halfword p;

unsave

()

;

save_ptr--;

p

= vpack

(vlink

(cur_list.head_field)

, saved_value

(

0

)

, saved_level

(

0

)

,

-1

)

;

pop_nest

()

;

p

= math_vcenter_group

(p)

;

tail_append

(p)

;

}

And because of the -1 in the last argument, its direction is determined by 
\bodydirection,
unlike other boxes which in math context use \mathdirection if a (b)dir keyword 
was not specified.

Why is that? It feels a bit inconsistent, and makes it a bit hard to follow 
directions.

Thanks,
Udi
_______________________________________________
dev-luatex mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to