对齐和垂直间距

对齐和垂直间距

这是一个有点简单的\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也会接近底线。所以我有两个相关问题:

  1. 为什么它没有按照\vskip我的预期运行(使用\vspace\vspace*不会改变任何东西,请注意,如果它改变了,那会更加令人困惑)

  2. 我可以用什么来代替\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

相关内容