分離されていないコードの「セル」を作成するにはどうすればよいでしょうか?

分離されていないコードの「セル」を作成するにはどうすればよいでしょうか?

私が書いているテキストのランダムな断片を見てみましょう。$k\in\{1\dots,K\}$ここでは $k\in{1\dots,K}$ が a として書かれていますが、分離されてしまい、あまり気に入りません。

ここに画像の説明を入力してください

コードの一部をまとめて、テキスト全体に配置され、次の行に分割されない、ある種の「セル」/「ブリック」として扱うには、どのような方法を使用することをお勧めしますか?

答え1

使用

 ${k\in\{1\dots,K\}}$

${...}$改行は不可

答え2

TeX は、2 項演算子または関係演算子の後の 2 か所でのみ、数式を自動的に分割します。これらは、パラメータとによって制御されます\binoppenalty\relpenalty両方を 10000 に設定すると、分割は行われません。数式内でローカルにこれを行うと、その部分だけに適用されます。したがって、次のような定義は

\newcommand\nobreakformula{\relpenalty10000\relax \binoppenalty 10000\relax}

おそらくあなたの友達になるかもしれません(おそらくコマンド名はもっと短いでしょう:-))

数式内の 1 つの改行だけを防ぎたいが、すべては防ぎたくない場合は、\nolinebreakTeX が改行した箇所で を使用できます。ただし、さらに望ましくない改行になる可能性もあるため、状況によって異なります (したがって、この種の微調整は、ドキュメントが次に準備できる場合にのみ使用してください)。たとえば、以下のショーケースで を使用すると、$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}

結果は次のようになります:

ここに画像の説明を入力してください

関連情報