本田さんのアイデアで自動化できそうですが,
・コードが少し長くなりそう
・あまりおこらなそう(?????)
なのでチェックをやめ,手動でおこなってもよいような気がします。
たとえば > の前で改行可能なモードにしているとき
(具体的には > の前に \allowbreak を入れて > を再定義します)
$a\ (> 0)$ は ( の後ろで改行する場合があります。
そのときは $a\ {(>}\; 0)$ と { } でくくればそこでの改行を抑制
できます。空きが抜けてしまったら自力で空きを入れなければならず,
ちょっと面倒ですが。もっともこの例だと $a\ {(> 0)}$ で大丈夫です。
なおついでに \* も再定義しておくとよいかもしれません。
オリジナルの定義で第1引数と第2引数を入れ替えてもうまくいきません。
\* は組んだ後に書き込むと思われるので,私は単純に
(オリジナルの定義を無視して)
\let\@times\times
\def\*{%
通常モードなら \@times\break
演算子の前で改行可能なモードなら \break\@times
}
としています。普通に書いてもよいのですが \* は2文字なので
楽に入力できるというメリットがあります。
なお
\let\@times\cdot
とできるようにしています。
\cdot だと見た目のインパクトは弱いですが。