[NTG-context] Setting tabulate table width with \textwidth inside an item group

Clyde Johnston context at couthies.com
Wed Feb 27 23:51:02 CET 2019


Thanks Wolfgang.  This is exactly what I was looking for and thanks for the
explanatory notes on the inter-column width.  New knowledge is always good!
:-D

I put braces around the contents of the items to make them consistent with
\starthead command which does not seem to contain the headstyle setting in
\startitemize to the head block.

Do I need braces for \starthead but not for \startitem?

\showframe

\starttext
\startitemize[n,3*broad,repeat][headstyle={\bf}]
\starthead A header \stophead
    \startitemize[n,3*broad]
    \startitem
        \input ward
        \starttabulate[|cp(.25\localhsize)|cp|]
            \HL
            \NC Column A \NC Column B \NC \NR
            \HL
            \NC 1 \NC 2 \NC \NR
            \NC 2 \NC 3 \NC \NR
            \NC 3 \NC 4 \NC \NR
            \NC 4 \NC 5 \NC \NR
            \NC 5 \NC 6 \NC \NR
            \BL
        \stoptabulate
        \input ward
    \stopitem
    \startitemize[n,3*broad]
\stopitemize
\stoptext



-----Original Message-----
From: Wolfgang Schuster [mailto:wolfgang.schuster.lists at gmail.com] 
Sent: Thursday, February 28, 2019 12:13 AM
To: mailing list for ConTeXt users; Clyde Johnston
Subject: Re: [NTG-context] Setting tabulate table width with \textwidth
inside an item group

Clyde Johnston schrieb am 27.02.19 um 22:49:
> Dear List:
> 
> I have a tabulate table inside an indented item group and I would like 
> to set the width of the table to the \hbox size of the surrounding 
> text.  If I use \textwidth as a width parameter, the table spills into 
> the right margin (see attached).
> 
> What is the correct parameter to use to set the width of the table to 
> the width of the text in the item group?
> 
> _MWE_
> 
> \starttext
> 
> \showframe
> 
> \startitemize[n,3*broad]
> 
>      \startitem{%
> 
>          \input ward
> 
>          \starttabulate[|cp(.25\textwidth)|cp(.75\textwidth)|]
> 
>              \HL
> 
>              \NC Column A \NC Column B \NC \NR
> 
>              \HL
> 
>              \NC 1 \NC 2 \NC \NR
> 
>              \NC 2 \NC 3 \NC \NR
> 
>              \NC 3 \NC 4 \NC \NR
> 
>              \NC 4 \NC 5 \NC \NR
> 
>              \NC 5 \NC 6 \NC \NR
> 
>              \BL
> 
>          \stoptabulate
> 
>          \input ward
> 
>          }
> 
>      \stopitem
> 
> \stopitemize
> 
> \stoptext


1. There is a space between the columns which has to taken into account when
you set the width of the columns, in your example your tables has a width of
textwidth plus the distance between the columns.

2. \textwidth doesn’t in the argument for the items but you can use the
\localhsize length to get the current width of the text block.

3. You can let ConTeXt calculate the width of the second column which saves
you from guessing the needed value for the column width.

4. You don’t need braces around the content for the items.

\showframe

\starttext

\startitemize[n,3*broad]
     \startitem
         \input ward
         \starttabulate[|cp(.25\localhsize)|cp|]
             \FL
             \NC Column A \NC Column B \NC \NR
             \ML
             \NC 1 \NC 2 \NC \NR
             \NC 2 \NC 3 \NC \NR
             \NC 3 \NC 4 \NC \NR
             \NC 4 \NC 5 \NC \NR
             \NC 5 \NC 6 \NC \NR
             \LL
         \stoptabulate
         \input ward
     \stopitem
\stopitemize

\stoptext

Wolfgang




More information about the ntg-context mailing list