拉伸列以使表格填满指定区域

拉伸列以使表格填满指定区域

使用纯 TeX,如何使下表中的第 2 列占据剩余空间,.5\hsize同时保留其他列的属性以使其具有依赖于其内容的可变宽度?

\offinterlineskip\tabskip=0pt
\halign to.5\hsize{
   \vrule#\strut&
   \hfil\enskip#\enskip&
   \vrule#&
   \enskip#\enskip\hfil&
   \vrule#&
   \hfil\enskip#\enskip&
   \vrule#
\cr\noalign{\hrule}
   &\omit\hfil\enskip\bf ID\enskip\hfil&
   &\omit\hfil\enskip\bf Description\enskip\hfil&
   &\omit\hfil\enskip\bf Quantity\enskip\hfil&
\cr\noalign{\hrule}
   &1&
   &Blah-blah-blah&
   &100~pcs&
\cr\noalign{\hrule}
   &100&
   &Blah-blah&
   &10~000~pcs&
\cr\noalign{\hrule}
   &10~000&
   &Blah&
   &100~000~000~pcs&
\cr\noalign{\hrule}}
\end

在此处输入图片描述

答案1

在此处输入图片描述

这里的技巧是使用制表符跳过粘连,这样表格就会拉伸,但使用跨越该粘连的单元格作为标题,这样您就可以创建一个正确宽度的框来使标题居中(这意味着您必须手动将规则放回原位)

\offinterlineskip\tabskip=0pt
\halign to.5\hsize{
   \vrule#\strut&
   \hfil\enskip#\enskip&
   \vrule#&
   \enskip#\enskip\hfil\tabskip0pt plus 1fil&
   \vrule#\tabskip0pt&
   \hfil\enskip#\enskip&
   \vrule#
\cr\noalign{\hrule}
   &\omit\hfil\enskip\bf ID\enskip\hfil&
   &\omit\span\omit\hfil\enskip\bf Description\enskip\hfil\vrule
   &\omit\hfil\enskip\bf Quantity\enskip\hfil&
\cr\noalign{\hrule}
   &1&
   &Blah-blah-blah&
   &100~pcs&
\cr\noalign{\hrule}
   &100&
   &Blah-blah&
   &10~000~pcs&
\cr\noalign{\hrule}
   &10~000&
   &Blah&
   &100~000~000~pcs&
\cr\noalign{\hrule}}
\end

相关内容