RSyntaxTreeの左右対称化について
CJK対応に続いて RSyntaxTree についてもう1件。RSyntaxTreeが生成する樹形図の各ノードから伸びる線分や三角形を左右対称化(symmetrize)する機能を付けました。これも本家のphpSyntaxTreeにはない機能です。多言語対応よりも重要と考える人も多いのではないでしょうか。
どういうことかというと次のサンプルをご覧ください。対称化すると次のような見栄えになります(例は小野隆啓先生の 生成文法用語解説 から拝借しました)。

対称化しなければ次のようになります(以前はこうでした)。

対称化した方がずっと綺麗ですね。生成文法関係の出版物などで見かける樹形図はこのように対称化されたものが多いと思います。
ただし、非対称バージョンの方もデタラメに描画している訳ではなく、各ノードのテキストが、それを最大投射とするテキスト全体のちょうど中間に位置するようになっています。このようにすると計算が楽で負荷も少なく済みます。
そういう理由でデフォルトでは Symmetrize チェックボックスをオフにしています。あと、巨大なデータを与えられるとサーバ自体が死ぬので、ウェブ版にはサイズ制限を設けました(512 bytes)。
あと、現在、SVG出力の機能が壊れています。これは多分ImageMagickかRMagickのバグです。これらのバージョンが上がればひとりでに直る可能性があります。ただ、独自でXMLの雛形を書いて実装すればこちら側で直せるはずなので、また時間があればやりたいと思います。
≪ Prev entry |
| Next entry ≫