ConTeXt の表の各列の幅を設定する

ConTeXt の表の各列の幅を設定する

時々、列の幅が互いに等しいテーブルが必要になります。次に例を示します。

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

結果

関連情報