TeX에서 "접착제"의 수축 한계를 어떻게 알 수 있나요?

TeX에서 "접착제"의 수축 한계를 어떻게 알 수 있나요?

69페이지에TeXbook, 그림이 있습니다. 여기에 이미지 설명을 입력하세요

70페이지에TeXbook, 라고

접착제는 명시된 수축성보다 더 많이 줄어들지 않습니다. 예를 들어, 그림에서 첫 번째 접착제 덩어리는 너비가 8단위보다 좁아지는 것이 허용되지 않으며 TEX는 주어진 수평 목록을 축소하여 총 너비가 49단위보다 작아지는 일이 없습니다.

저자는 여기서 수축 한계를 어떻게 계산합니까?

답변1

\setlength\baselineskip{15pt minus 2pt}축소는 단위로 지정됩니다. 축소는 2pt이고 최소 크기는 다음과 같습니다 . 무한대 또는 단위 13pt일 수도 있습니다 fil. 예를 들어 단축형은 다음과 같습니다.fillfilll\vss\vskip 0pt plus 1fil minus 1fil

답변2

예는 다음과 같습니다.

\def\ruleA{\vrule height1pt width45pt depth0pt}
\def\ruleB{\vrule height1pt width30pt depth0pt}
\noindent
\vrule height1pt width100pt depth0pt\par
\hbox to 100pt{\ruleA\hskip 20pt plus 4pt minus 15pt\ruleA} % case 1
\hbox to 100pt{\ruleA\hskip 20pt plus 4pt minus 10pt\ruleA} % case 2
\hbox to 100pt{\ruleA\hskip 20pt plus 4pt minus 3pt \ruleA} % case 3
\hbox to 100pt{\ruleB\hskip 20pt plus 4pt minus 3pt \ruleB} % case 4

\bye

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

저는 두 가지 규칙(너비 45pt와 30pt)을 정의했습니다. 그리고 너비 100pt의 가로 상자에 룰을 풀로 정리했습니다.

  • 1-3의 경우 두 규칙의 총 너비는 90pt이므로 원래 너비는 20pt이므로 접착제는 10pt로 줄어들어야 합니다.

    • 사례 1과 사례 2는 수축률이 각각 15pt, 10pt이므로 그렇게 할 수 있습니다. 하지만
    • 사례 3이 아닌 경우 접착제의 최소 너비는 20pt-3pt = 17pt입니다 (그래서 경고가 Overfull \hbox (7.0pt too wide) detected at line 7발생합니다.)
  • 4번의 경우 글루는 입니다 20pt plus 4pt minus 3pt. 이는 글루의 최대 너비가 24pt라는 의미는 아닙니다. 실제로 접착제는 긍정적인 신축 성분이 있을 때마다 임의로 멀리 늘어날 수 있습니다. 그리고 스크린샷에서 볼 수 있듯이 마지막 글루의 너비는 100pt-30pt*2 = 40pt입니다(스트레치 양은 20pt > 4pt). 그리고 이 사건은 Underfull \hbox (badness 10000)경고를 줍니다.

답변3

첫 번째 접착제 덩어리는 space 9 stretch 3 shrink 1이므로 얻을 수 있는 가장 좁은 덩어리는 9 − 1 = 8입니다. (가장 넓은 덩어리가 9 + 3 = 12라고 생각할 수도 있지만 70페이지에서 인용한 부분 바로 다음에 나오는 텍스트에서 다음과 같이 설명합니다. 이는 실제로 사실이 아니며 더 넓어질 수 있습니다.)

너비와 간격을 모두 더하면 5 + 9 + 6 + 9 + 3 + 12 + 8 = 52가 자연 너비가 됩니다. 하지만 축소도 포함하면 5 + (9 − 1) + 6 + (9 − 2) + 3 + (12 − ​​0) + 8 = 49가 얻을 수 있는 가장 좁은 값이 됩니다.

이것이 52, 8, 49가 계산되는 방식입니다. (다른 숫자는 모자에서 꺼낸 것입니다.)

답변4

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

아래 코드는 무슨 일이 일어나고 있는지 시각화할 수 있습니다. 접착제를 다른 상자에 상자 세트를 배열하기 위해 확장하거나 축소할 수 있는 스프링으로 생각하는 것이 좋습니다. 아래 다이어그램에서는 공백으로 표시됩니다. 선 너비가 35mm이고 TeX이 문단을 구성할 때 box4두 번째 줄에 드롭다운되는 것을 볼 수 있습니다. 49mm로 딱 맞습니다. 그림은 표 형식에 상자를 삽입하여 렌더링됩니다. 값을 변경하여 실험해 보세요. 수동으로 계산하려면 모든 접착제를 양수와 음수를 함께 추가하여 신축성 또는 수축성을 얻습니다.

\documentclass{article}
\usepackage{array,xcolor}
\fboxsep=0pt\fboxrule=0pt
\NewDocumentCommand\Fbox{m m}
{
 \colorbox{cyan}{\hbox to#1{box$_#2$\strut}}
}
\parindent0pt
\setlength\arraycolsep{0pt}
\long\def\maketable#1{\par\leavevmode
\begin{tabular}{l|@{}p{#1}@{}|@{}}
#1 &\Fbox{14mm}{1}\hskip\skipa  
\Fbox{15mm}{2}\hskip\skipb  
\Fbox{8mm}{3}\hskip
\skipc \Fbox{8mm}{4}
\end{tabular}
\smallskip
}
% set the skips
\newskip \skipa
\newskip \skipb
\newskip \skipc
\skipa=0mm plus 3mm minus 1mm
\skipb=0mm plus6mm minus 2mm
\skipc=0mm plus0mm minus 0mm
\begin{document}
%make the tables
\maketable{35mm}
\maketable{49mm}
\maketable{52mm}
\maketable{55mm}
\end{document}

관련 정보