\prevlength 및 \noalign

\prevlength 및 \noalign

~ 안에TeXBook그것은 말한다

\prevdepth당시 의 값은 \halign내부 세로 목록의 시작 부분에 사용되며, \prevdepth정렬이 완료되면 끝 값은 둘러싸는 세로 목록으로 옮겨져 행간 접착제가 시작과 끝에서 올바르게 계산됩니다. 정렬의.

섹션 15.2에서주제별 TeX, 그것은 말한다

세로 목록의 시작 부분 \prevdepth은 으로 설정됩니다 -1000pt. 단, 그 안에 포함된 \halign\noalign코드는 주변 목록에서 이어집니다.

나는 그 문장을 이해할 수 있다.TeXBook, 그러나 문장을 이해할 수 없었습니다.주제별 TeX. 누군가 \prevdepthand 에 대한 몇 가지 예를 들어줄 수 있나요 \noalign?

답변1

이 일반 tex 파일

\def\foo#1{\edef\tmp{\immediate\write20{#1: \the\prevdepth}}\tmp}


\foo{1}
g


\foo{2}

\vbox{
\foo{3}

Q

\foo{4}
}

\foo{5}

a,

\foo{6}

\halign{#\hfil\cr
\noalign{\foo{7}}
 z\cr}

\foo{8}


\bye

생산하다

1: -1000.0pt
2: 1.94444pt
3: -1000.0pt
4: 1.94444pt
5: 1.94444pt
6: 1.94444pt
7: 1.94444pt
8: 0.0pt

이는 \prevdepth기본 수직 목록의 시작 부분과 a의 시작 부분에 마법의 -1000pt 값이 \vbox있지만 \noalign.

답변2

두 권의 책에서 두 인용을 인용하면 약간 다른 문제가 해결됩니다. TeXbook의 첫 번째 항목은 수직 목록의 수직 자료가 \halign(더 클 수도 있음) 수직 목록 내부의 "일반적인" 수직 자료처럼 동작한다고 말합니다. \unvbox전후의 라인 스킵을 개별적으로 해결해야 하는 자료 로 작동하지 않습니다 . 두 번째 것(TeX의 주제별)은 다음과 같습니다.\halign \noalign재료 의 객체 포함오른쪽 interlineskip을 통해 각각 다음으로 연결됩니다. \noalign이런 관점에서 볼 때 그 자료는 개별적인 수직적 목록이 아니라는 것이다 .

관련 정보