
Я задаю тот же вопрос, что и в этом посте:
Как набрать неразрывный дефис (тире, символ «-») в научных или технических документах
но я не хочу использовать никакой пакет (просто чтобы понять, как это можно сделать в Plain TeX, используя только примитивы языка).
\mbox{non-linear}
non\mbox{-}linear
предотвратит переносы
Как насчет:
non-\nobreak linear
Я не знаю, как проверить возможные точки останова в TeX.
решение1
Ваше предлагаемое использование \nobreak
не предотвращает разрыв, как можно увидеть
\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
С другой стороны, установка \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