
インライン数式モードを考慮すると、TeX が Rel 型と Bin 型のアトムの後に自動的にペナルティを置くのに、Punct 型の後には置かないのはなぜか、概念的または印刷上の理由があるのでしょうか。
思いつく理由の 1 つは、許可された改行を何らかの方法で便利に制御できる可能性があるということです。したがって、変数間の改行を避ける理由はないのでLet $a$, $b$ be numbers
、 ではなく と記述するべきかもしれません。一方、ここでは変数間の改行を許可しない可能性があるため、ではなく とLet $a,b$ be numbers
記述するとよいでしょう。Let $a,b\in Z
Let $a$, $b\in Z$
しかし、私の意見では、2 番目の場合でも、 の後で行を分割するよりも$a$
との間で$b$
行を分割する方がよいため、コンマの後\in
よりも低い位置に何らかの正のペナルティを含める方が理にかなっていると思います。\relpenalty
別の例: 私は数学のマップを次のように定義する傾向があります$f\colon A\to B$
(このコンテキストでは、コロンを関係ではなく句読点として使用する方が適切だと思います。つまり、コロンの後にのみスペースを入れ、コロンの前にはスペースを入れません)。この例では、TeX は の後の改行を許可します\to
が、 の後では許可しません\colon
。後者の方が明らかに適切です。
両方の問題に対する最も簡単な解決策は、句読点を数式モードの外でのみ使用し、マクロを再定義して\colon
ペナルティを含めることです。(追加の可能性は別のスレッドで検討されました。インライン数式モードで ',' で改行を許可しますか?) それでも、私は何か重要なことを見落としているかもしれないので、TeX がこのように動作する理由を知ることに非常に興味があります。
編集: コメントで @egreg が順序付きペアについて興味深い点を指摘していましたが、これは私の意見ではその動作がいかに無意味であるかをさらによく示しています。
つまり、順序付きペア(1つの、b) の場合、改行はしたくありません。これは、コンマの後の改行を禁止する理由として考えられるかもしれません。しかし、次のペア (1つの+b、cここで、TeX はプラス記号の後の改行を許可しますが、カンマの後では許可しません。しかし、プラス記号の後の改行は、カンマの後よりもさらに意味がありません。一方、( のようなより複雑なタプルでは、1つの+b、1つの2 +b2、1つの3 +b3 )、カンマの後で分割するのは全く問題ないと思いますが、プラスの後で分割するのは絶対に問題です。
最後に、句読点による改行が許可されている場合、単純なペア(1つの、b) をグループ で記述する方法がありますが${(a,b)}$
、これは式の内部ロジックをある程度尊重します。
答え1
答えは、この行動が意味TeXbook(p. 173)で提供されているようです。
例えば、次のように入力すると段落の途中では、TEX が = 記号の後 (これが望ましい)、または - や + や - の後 (緊急の場合) で改行する可能性があります。ただし、いずれにしてもコンマの後では改行されません。改行が望ましいコンマは、$ の間に出現すべきではありません。$f(x,y) = x^2-y^2 = (x+y)(x-y)$
数式の外側のどこかで改行を許可したい場合は、\allowbreakと指定します。たとえば、数式が段落のテキストに出現した場合、TEX はそれを 2 つの部分に分割します '(バツ1、…、バツm、'および'ええ1、…、ええn )'。$(x_1,\ldots,x_m,\allowbreak y_1,\ldots,y_n)$
あまり幸運なことではないと思うが、対処するしかないだろう。
編集: 何とかこのトピックを締めくくり、自分の質問に対する徹底的な答えにするために、このことに対する私の解決策を共有したいと思います。
カンマ後の改行については、次のように定義します。
\def\ppen{\penalty300 } %punctuation penalty
\let\col=\colon
\def\colon{\col\ppen}
つまり、 の後には常に300 の\colon
ペナルティが発生します。順序付きペアをタイプセットするときなど、他の場所でも\ppen
を使用できるようになりました。\ppen
(a,\ppen b+c)