インライン数式環境をまとめるには、コマンドをどのように配置すればよいでしょうか。たとえば、 0<x<1
を 2 つの部分に分割し、0<
次x<1
の行に配置します。
答え1
使用できる戦略はいくつかあります。式を中括弧で囲むか、ボックスで囲むことですが、場合によってはボックスがいっぱいになることがあります。ほとんどの場合、最善の解決策は、数式が表示されるテキストを言い換えて、改行が発生しないようにすることです。
物事がうまくいった例:
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text text text te $0<x<1$
Text text text text text text text text text text text text text text te ${0<x<1}$
Text text text text text text text text text text text text text text te \mbox{$0<x<1$}
\end{document}
そして、もう 1 つ、問題が発生するケースです (ボックスがいっぱいになっていることに注意してください)。
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text texttexttex $0<x<1$ text text text text text text text text text text text text text text text text text text
Text text text text text text text text text text text text texttexttex ${0<x<1}$ text text text text text text text text text text text text text text text text text text
Text text text text text text text text text text text text texttexttex \mbox{$0<x<1$} text text text text text text text text text text text text text text text text text text
\end{document}
最後の例で示した状況では、\sloppy を使用して不適切なボックスを防ぐことができますが、テキストの一部の行が伸びてしまい、単語間のスペースが醜く見えてしまいます。
\documentclass[draft]{article}
\begin{document}
Text text text text text text text text text text text text texttexttex $0<x<1$ text text text text text text text text text text text text text text text text text text
{\sloppy Text text text text text text text text text text text text texttexttex ${0<x<1}$ text text text text text text text text text text text text text text text text text text\par}
{\sloppy Text text text text text text text text text text text text texttexttex \mbox{$0<x<1$} text text text text text text text text text text text text text text text text text text\par}
\end{document}
としてエグレコメントで と の両方に言及する\mbox{$0<x<1$}
と、${0<x<1}$
の周囲のスペースは、<
その行の終わりと伸縮を共有しなくなります。 は、$0<\nobreak x<1$
改行を回避するのに適しています。\nobreak
2 番目の の後にも追加できます<
。
ほとんどの場合、最善の解決策は (すでに述べたように) 数式が出現するテキストを言い換えて、改行が発生しないようにすることです。
答え2
もっと高い値に設定することもできます\relpenalty
(すでにかなり高い値です。プレーンでは500です)。たとえば、
\relpenalty=10000
リレーショナルクラスの数学文字では決して行を分割しないようにします。実際、デフォルト設定の例では TeX で行を分割するのが難しかったので$0<x<1$
、テストするためにペナルティを 0 に設定しました。
もう 1 つのインライン数式ペナルティは\binoppenalty
、バイナリ クラスの数学文字に対するものです。そのため、TeX にインライン数式を決して分割しないように指示するには、両方を に設定することができます10000
。もちろん、その設定で長いインライン数式が多数ある場合、TeX は改行ポイントを見つけるのに非常に苦労するでしょう。