>>743
そりゃあたりまえ.
このマクロは 「1 文字」 ずつ取り出して均等割するもの.
{} で囲ったものは 1 文字扱いされる.

\parbox{12zw}{\kintou{30zw}{{\protect\ruby{猫}{ねこ}ふんじゃった}}}

こんなことしたら {\protect\ruby{猫}{ねこ}ふんじゃった}} で 1 文字扱い
されていまうではないか.

\parbox{12zw}{\kintou{30zw}{{\protect\ruby{猫}{ねこ}}ふんじゃった}}

これでいいはず.違いは分かる?

単に \kintou{30zw}{\protect\ruby{猫}{ねこ}ふんじゃった} とすると

\protect で 1文字,\ruby で 1文字,{猫} で 1文字,{ねこ} で 1文字,...
となってしまって,おかしなことになってしまう.
それを避けるために {} でまとめて 「1 文字」 にするわけ.