答案1
收縮以單位指定,如果你去,\setlength\baselineskip{15pt minus 2pt}
那麼收縮是 2pt 並且最小尺寸是13pt
它也可以是無限的fil
,fill
或者filll
單位所以\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,因此黏合應收縮 10pt,因為其自然寬度為 20pt。
- 案例 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。解釋了這一點這實際上不是真的,它可以延伸得更廣。
將所有寬度和空間相加,我們得到 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
會下降到第二行。 49 毫米,恰到好處。該圖是透過在表格中插入方塊來呈現的。嘗試更改值。手動計算所有膠水將正數加在一起,負數加在一起,以獲得拉伸性或收縮性。
\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}