这是一个有点简单的\halign
用法,表明我遗漏了一些东西:
\documentclass{article}
\begin{document}
\halign{&#\cr
\noalign{\hrule}
\rule{0.4pt}{4cm}&
\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vbox{\hbox{x}\hbox{y}}\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vbox{\hbox{x}\vskip 10pt\hbox{y}}\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vbox{\hbox{1}\vskip 0pt plus 1filll\hbox{y}}\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vtop{\hbox{x}\hbox{y}}\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vtop{\hbox{x}\vskip 10pt\hbox{y}}\rule{1cm}{0.4pt}&
\vrule &
\rule{1cm}{0.4pt}\vtop{\hbox{x}\vskip 0pt plus 1filll\hbox{2}}\rule{1cm}{0.4pt}&
\vrule \cr
\noalign{\hrule}}
\end{document}
我原本预计1
会接近顶线,2
也会接近底线。所以我有两个相关问题:
为什么它没有按照
\vskip
我的预期运行(使用\vspace
或\vspace*
不会改变任何东西,请注意,如果它改变了,那会更加令人困惑)我可以用什么来代替
\vskip
来获得我期望的行为?(也许还可以修改\vbox
和\vtop
调用,如果正如我目前所想的那样,它们的使用阻止了可用空间被看到\vskip
)
请注意,我在这里所做的是为了尝试了解 TeX 的行为,因此对问题 2 的回答并不是\usepackage
我真正期望的。
答案1
\vbox{\hbox{1}\vskip 0pt plus 1filll\hbox{y}}
相当于
\vbox{\hbox{1}\vskip 0pt \hbox{y}}
因为盒子总是用胶水固定在它的自然大小,除非你做类似的事情
\vbox to 5in{\hbox{1}\vskip 0pt plus 1filll\hbox{y}}
当胶水拉伸时
到目前为止,1
有效地接近行的顶部和y
底部的最简单方法是将表格的“可见行”(即水平规则之间的空间)分成两行\halign
。