TeX is a typesetting system designed and mostly written by Donald Knuth.

Bram Stein氏がTeX line breaking algorithm in JavaScriptにおいて、JavaScriptでKnuth/Plass行分割アルゴリズムを実装した例を紹介している。Knuth/Plass行分割アルゴリズムはTeXで使われている行分割アルゴリズム。これをJavaScriptで実装し、HTML5 Canvas要素経由で表示するというもの。TeX line breaking algorithm in JavaScriptではそれ以外にもCSS text-align: justifyの表示結果や、左寄せ、左寄せをベースに使った中寄せ、可変幅の例が掲載されている。

TeX line breaking algorithm in JavaScriptより抜粋

TeX line breaking algorithm in JavaScriptより抜粋

TeX line breaking algorithm in JavaScriptより抜粋

TeX line breaking algorithm in JavaScriptより抜粋

動作にはCanvasに対応したブラウザが必要。Firefox/Linux、Firefox/Windows、Safari/OSX、Safari/Windows、Chrome/Linux、Chrome/Windowsの組み合わせで動作を確認したと説明がある。同じブラウザを使ってもレンダリングがうまくいかないパターンがあり、環境の実装やフォント設定にも動作が依存しているようにみえる。

公開されているソースコードは改訂BSDライセンスが採用されている。JavaScriptを使った行分割アルゴリズムの実装例として参考になる。