
Ich stelle die gleiche Frage wie dieser Beitrag:
aber ich möchte kein Paket verwenden (nur um zu verstehen, wie es in Plain TeX nur mit den Grundelementen der Sprache gemacht werden kann).
\mbox{non-linear}
non\mbox{-}linear
verhindert die Silbentrennung
Wie wäre es mit:
non-\nobreak linear
Ich weiß nicht, wie ich in TeX überprüfen kann, wo die möglichen Haltepunkte sind.
Antwort1
Ihre vorgeschlagene Verwendung von \nobreak
verhindert keinen Bruch, wie man sehen kann durch
\vbox{\hsize=1pt
a
non-\nobreak linear
}
\bye
Die ersten beiden Vorschläge basieren \mbox
nicht auf einfachem TeX, aber wenn Sie \hbox
sie verwenden, wird ein Abbruch verhindert.
\vbox{\hsize=1pt
a
\hbox{non-linear}
non\hbox{-}linear
}
\bye
Antwort2
Mit non-\nobreak linear
unterdrücken Sie keinen Zeilenumbruch nach dem Bindestrich, es sei denn, Sie geben dies an \exhyphenpenalty=10000
und \nobreak
es ist überflüssig.
\vbox{\hsize=0pt \parindent=0pt
\hskip0pt non-\nobreak linear
}
\vbox{\hsize=0pt \parindent=0pt \exhyphenpenalty=10000
\hskip0pt non-linear
}
\bye
Andererseits erscheint die Einstellung \exhyphenpenalty
„to“ 10000
zu drastisch und im Rest des Wortes erhält man ohnehin keine Silbentrennung.
\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