Establecer el ancho de cada columna de una tabla en ConTeXt

Establecer el ancho de cada columna de una tabla en ConTeXt

A veces, necesito una tabla cuyos anchos de columna deben ser iguales entre sí. Aquí hay un ejemplo:

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

La columna de nombre debe estar resaltada hacia la derecha y la columna de correo electrónico debe estar resaltada hacia la izquierda. Por supuesto, cada columna tiene el mismo ancho.

Creo que este requisito se puede lograr con \starttabley \stoptable, pero ¿cómo combinar lo rcon el ancho requerido?

Respuesta1

La \starttablesintaxis está en desuso y, por lo tanto, debe evitarse en documentos nuevos. Por eso presento una solución utilizando tablas naturales, también llamadas tablas HTML. Como las tablas naturales son muy detalladas, se pueden combinar mejor con el databasemódulo. Eso permite una sintaxis muy fácil y legible, pero es menos flexible. Depende de sus requisitos si el databasemódulo tiene sentido en este caso. La disposición natural de la mesa es la misma en ambos casos.

Para tareas más sencillas, las tablas tabuladas pueden ser suficientes.

\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

resultado

información relacionada