答え1
使用
${k\in\{1\dots,K\}}$
${...}$
改行は不可
答え2
TeX は、2 項演算子または関係演算子の後の 2 か所でのみ、数式を自動的に分割します。これらは、パラメータとによって制御されます\binoppenalty
。\relpenalty
両方を 10000 に設定すると、分割は行われません。数式内でローカルにこれを行うと、その部分だけに適用されます。したがって、次のような定義は
\newcommand\nobreakformula{\relpenalty10000\relax \binoppenalty 10000\relax}
おそらくあなたの友達になるかもしれません(おそらくコマンド名はもっと短いでしょう:-))
数式内の 1 つの改行だけを防ぎたいが、すべては防ぎたくない場合は、\nolinebreak
TeX が改行した箇所で を使用できます。ただし、さらに望ましくない改行になる可能性もあるため、状況によって異なります (したがって、この種の微調整は、ドキュメントが次に準備できる場合にのみ使用してください)。たとえば、以下のショーケースで を使用すると、$a+b =\nolinebreak c+d+e$
その後 TeX が改行されますが、a +
これは等号の後で改行するよりも悪いと思います。
中括弧グループの使用や の使用は、\mbox
行内でどれだけ伸縮が行われているのかに関係なく、数式が常に公称幅に設定されるため、あまりお勧めできません。次の例でこれをよく見ることができます。
\documentclass{article}
\usepackage{calc}
\begin{document}
\newlength\normwidth
\newcommand\myline{A test $a+b=c$ with $1+1$ formulas inside}
\settowidth\normwidth{\myline}
Spreading a line b 0, 5,15,25 and 50 points:
\indent \mbox{\myline}
\makebox[\normwidth+5pt][s]{\myline}
\makebox[\normwidth+15pt][s]{\myline}
\makebox[\normwidth+25pt][s]{\myline}
\makebox[\normwidth+50pt][s]{\myline}
\bigskip
Contrast this with using a brace group or \verb=mbox= on the first formula:
\renewcommand\myline{A test ${a+b=c}$ with $1+1$ formulas inside}
\indent \mbox{\myline}
\makebox[\normwidth+5pt][s]{\myline}
\makebox[\normwidth+15pt][s]{\myline}
\makebox[\normwidth+25pt][s]{\myline}
\makebox[\normwidth+50pt][s]{\myline}
\bigskip
\newcommand\nobreakformula{\relpenalty10000\relax \binoppenalty 10000\relax}
Testing \verb=\nobreakformula=:
Some sample text to make this break inside the first formula
A test $ a+b=c + d + e$ with $1+1$ formulas inside
And now with suppression:
Some sample text to make this break inside the first formula
A test $\nobreakformula a+b=c + d + e$ with $1+1$ formulas inside
\end{document}
結果は次のようになります: