
有時,我需要這樣一個表,其列寬應該彼此相等。這是一個例子:
Name Email
John [email protected]
Bill [email protected]
Tim [email protected]
姓名列應向右對齊,電子郵件列應向左對齊。當然,每列的寬度都是相同的。
\starttable
我認為這個要求可以透過and來實現\stoptable
,但是如何將l
orr
與所需的寬度結合呢?
答案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