在 ConTeXt 中设置表格每列的宽度

在 ConTeXt 中设置表格每列的宽度

有时我需要这样的表格,其列宽应该彼此相等。以下是一个例子:

Name    Email
John    [email protected]
Bill    [email protected]
Tim     [email protected]

姓名列应靠右,电子邮件列应靠左。当然,每列的宽度相同。

我觉得这个要求可以通过 和 来达到\starttable\stoptable但是如何将lr与需要的宽度结合起来呢?

答案1

\starttable语法已被弃用,因此应避免在新文档中使用。这就是为什么我提出使用自然表(也称为 HTML 表)的解决方案。由于自然表非常冗长,因此最好将它们与模块结合使用database。这允许非常简单且可读的语法,但灵活性较差。 database在这种情况下模块是否有意义取决于您的要求。两种情况下的自然表设置相同。

对于更简单的任务,制表符可能就足够了。

\usemodule [database]

\defineseparatedlist
  [NaturalTable]
  [separator=comma, %% not necessary, already the default
   before=\bTABLE, after=\eTABLE,
   first=\bTR, last=\eTR,
   left=\bTD, right=\eTD,
   setups=s:NaturalTable]

\startsetups [s:NaturalTable]
  \setupTABLE              [frame=off, distance=5mm]
  \setupTABLE [column] [1] [width=2cm, align=flushright]
  \setupTABLE [row]    [1] [style=bold]
\stopsetups

\starttext

\startNaturalTable
  Name, Email
  John, [email protected]
  Bill, [email protected]
  Tim , [email protected]
\stopNaturalTable

\starttabulate [|p(3cm)r|l|]
  \NC Name \NC Email                \AR
  \NC John \NC [email protected]   \AR
  \NC Bill \NC [email protected] \AR
  \NC Tim  \NC [email protected]  \AR
\stoptabulate


\stoptext

结果

相关内容