
Иногда мне нужна такая таблица, в которой ширина столбцов должна быть одинаковой. Вот пример:
Name Email
John [email protected]
Bill [email protected]
Tim [email protected]
Столбец Name должен быть смещен вправо, а столбец Email — влево. Конечно, каждый столбец имеет одинаковую ширину.
Я думаю, что это требование может быть выполнено с помощью \starttable
и \stoptable
, но как совместить l
или r
с требуемой шириной?
решение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