単語をひとつのブロックとし、単語と単語の間にバネを仕込むんだよ。
で、単語数や、バネの伸び縮みの長さで閾値を設定する。
その閾値を超えない限り1行に単語を詰め込む込む。
閾値を超えたら次の行に下げる。

これだけで、そこそこ読みやすい英文になる。