在 ConTeXt 中設定表格每列的寬度

在 ConTeXt 中設定表格每列的寬度

有時,我需要這樣一個表,其列寬應該彼此相等。這是一個例子:

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

姓名列應向右對齊,電子郵件列應向左對齊。當然,每列的寬度都是相同的。

\starttable我認為這個要求可以透過and來實現\stoptable,但是如何將lorr與所需的寬度結合呢?

答案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

結果

相關內容