如何限制 \halign 的宽度?

如何限制 \halign 的宽度?

我的行内的胶水\halign没有按应有的方式减少。内容\halign表现得好像它们有无限的水平空间。

过满的表格

这是第一个表的源代码(它非常冗长,因为我必须扩展我定义的大多数宏以使它在我自己的文件中更小):

{
\offinterlineskip
\vfil
\vbox{%
\halign{%
% Preamble
#
\aligntab
\hbox to 0.8cm{#}
\aligntab
\hskip 0.2em{#}\hskip 5mm minus 5mm
\aligntab
\LightFont{#}\hskip 5mm minus 5mm
\aligntab
\LightFont{#}
\cr
%
\multispan5{\hbox to 5.6cm{}} \cr

\vrule height2ex depth3pt width0pt
\aligntab
\aligntab
\multispan3\Mot{CG}\hfilll
\cr

\aligntab \aligntab \multispan3\leaders\hrule\hfil \cr

\vrule height2ex depth3pt width0pt
\aligntab
\Num{5909}
\aligntab
Levorin Msa
\aligntab
Dianteira
\aligntab
80/100-18
\cr

\aligntab \aligntab \multispan3\leaders\hrule\hfil \cr

\vrule height2ex depth3pt width0pt
\aligntab
\Num{5904}
\aligntab
Max Tube
\aligntab
Dianteira
\aligntab
80/100-18
\cr

\aligntab \aligntab \multispan3\leaders\hrule\hfil \cr

\vrule height2ex depth3pt width0pt
\aligntab
\Num{8159}
\aligntab
Michelin
\aligntab
Dianteira
\aligntab
80/100-18
\cr

\aligntab \aligntab \multispan3\leaders\hrule\hfil \cr

\vrule height2ex depth3pt width0pt
\aligntab
\Num{6947}
\aligntab
Monte Cristo
\aligntab
Dianteira
\aligntab
80/100-18
\cr

\aligntab \aligntab \multispan3\leaders\hrule\hfil \cr
}}}

我怎样才能强制\halign具有最大宽度,以便胶水可以正确收缩?

观察:我正在使用 ConTeXt,因此需要使用\aligntab而不是&

答案1

您的示例很容易使用自然表重现。文档可以在花园

\setupbodyfont[dejavu,sans]
\starttext

\startsetups table:colors
  \setupTABLE[column][1][style=blue]  
  \setupTABLE[row][1][style=red]
\stopsetups

\startsetups table:rules
  \setupTABLE[frame=off]
  \setupTABLE[row][each][bottomframe=on]
  \setupTABLE[column][1][bottomframe=off]
\stopsetups

\startTABLE[setups={table:colors,table:rules}]
  \NC\NC CG \NC\NR
  \NC 5909 \NC Levorin Msa  \NC Dianteira \NC 80/100-18 \NC\NR
  \NC 5904 \NC Max Tube     \NC Dianteira \NC 80/100-18 \NC\NR
  \NC 8159 \NC Michelin     \NC Dianteira \NC 80/100-18 \NC\NR
  \NC 6947 \NC Monte Cristo \NC Dianteira \NC 80/100-18 \NC\NR
\stopTABLE

\stoptext

在此处输入图片描述

相关内容