Plain TeX における非改行ハイフン

Plain TeX における非改行ハイフン

私はこの投稿と同じ質問をしています:

科学技術文書で改行なしハイフン(ダッシュ、「-」文字)を入力する方法

しかし、私はパッケージを使いたくありません (言語の基本部分だけを使って Plain TeX でどのように実行できるかを理解するためです)。

\mbox{non-linear}
non\mbox{-}linear

ハイフネーションを防ぐ

以下についてはどうでしょうか:

non-\nobreak linear

TeX でブレークポイントがどこにあるかを確認する方法がわかりません。

答え1

あなたが提案した使用法は、\nobreak次のことからわかるように、破損を防ぐものではありません。


\vbox{\hsize=1pt
a
non-\nobreak linear
}

\bye

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

最初の 2 つの提案は\mboxプレーン TeX ではありませんが、使用すれば\hbox改行を防ぐことができます。


\vbox{\hsize=1pt
a
\hbox{non-linear}
non\hbox{-}linear
}

\bye

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

答え2

non-\nobreak linearを指定しない限り、ハイフンの後の改行は禁止されず、冗長\exhyphenpenalty=10000\nobreakなります。

\vbox{\hsize=0pt \parindent=0pt
  \hskip0pt non-\nobreak linear
}
\vbox{\hsize=0pt \parindent=0pt \exhyphenpenalty=10000
  \hskip0pt non-linear
}
\bye

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

一方、\exhyphenpenaltyに設定すると、10000極端すぎるように思われ、単語の残りの部分にはハイフンが付けられなくなります。

\def\nbh{%
  \leavevmode % one never knows
  \hbox{-}% this won't allow a line break
  \nobreak % no line break here
  \hskip0pt % allow hyphenation on the rest of the word
}

\vbox{\hsize=0pt \parindent=0pt
  \hskip0pt
  non\nbh linear
}

\bye

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

関連情報