Plain TeX 中的不间断连字符

Plain TeX 中的不间断连字符

我问的是和这篇文章相同的问题:

如何在科学或技术文档中输入不间断连字符(破折号,“-”字符)

但我不想使用任何包(只是想了解如何使用语言原语在 Plain TeX 中完成它)。

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

将阻止连字

关于什么:

non-\nobreak linear

我不知道如何检查 TeX 中可能的断点在哪里。

答案1

你建议的使用\nobreak并不能防止 breakak,正如你所见


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

\bye

在此处输入图片描述

前两个建议\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

在此处输入图片描述

另一方面,设置\exhyphenpenalty10000似乎太过极端,而且无论如何,单词的其余部分都不会出现连字符。

\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

在此处输入图片描述

相关内容