Geschützter Bindestrich in Plain TeX

Geschützter Bindestrich in Plain TeX

Ich stelle die gleiche Frage wie dieser Beitrag:

So geben Sie in wissenschaftlichen oder technischen Dokumenten einen geschützten Bindestrich (Bindestrich, „-“-Zeichen) ein

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 \nobreakverhindert keinen Bruch, wie man sehen kann durch


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

\bye

Bildbeschreibung hier eingeben

Die ersten beiden Vorschläge basieren \mboxnicht auf einfachem TeX, aber wenn Sie \hboxsie verwenden, wird ein Abbruch verhindert.


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

\bye

Bildbeschreibung hier eingeben

Antwort2

Mit non-\nobreak linearunterdrücken Sie keinen Zeilenumbruch nach dem Bindestrich, es sei denn, Sie geben dies an \exhyphenpenalty=10000und \nobreakes ist überflüssig.

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

Bildbeschreibung hier eingeben

Andererseits erscheint die Einstellung \exhyphenpenalty„to“ 10000zu 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

Bildbeschreibung hier eingeben

verwandte Informationen