
時々、列の幅が互いに等しいテーブルが必要になります。次に例を示します。
Name Email
John [email protected]
Bill [email protected]
Tim [email protected]
名前列は右揃え、メール列は左揃えにします。もちろん、各列の幅は同じです。
\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