Plain TeX의 금칙 하이픈

Plain TeX의 금칙 하이픈

이 게시물과 같은 질문을 드립니다.

과학 또는 기술 문서에서 잘림 방지 하이픈(대시, "-" 문자)을 입력하는 방법

하지만 나는 어떤 패키지도 사용하고 싶지 않습니다(단지 언어의 기본 요소만 사용하여 일반 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

여기에 이미지 설명을 입력하세요

관련 정보