On Tue, 4 Sep 2012, Rogers, Michael K wrote:
On Sep 3, 2012, at 9:39 PM, Aditya Mahajan wrote:
On Mon, 3 Sep 2012, Michael Rogers wrote:
On Sep 2, 2012, at 12:24 PM, Aditya Mahajan wrote:
Is it possible to stretch the widths of each column in natural TABLEs, so that the widths are in a certain propotion? For example, suppose I have a table with three columns and I want to set the width of the first column to a fixed amount, and split the remaining space between columns two and three in a 1:2 ratio.
If you know the width of the first column and total width, then you can use arithmetic, as in the example below. But perhaps this already occurred to you, and you were wondering if the widths and stretching can be handled automatically -- the short answer is I don't know.
\starttext \setupTABLE[c][1][width={2cm}] \setupTABLE[c][2][width={\dimexpr(\textwidth-2cm)/3\relax}] \setupTABLE[c][3][width={\dimexpr(\textwidth-2cm)* 2 / 3\relax}] \startTABLE \NC One \NC Two \NC Three \NC\NR \NC A \NC B \NC C \NC\NR \stopTABLE \stoptext
Apart from being hard to maintain, this works well if I know the width of a cell in advance. But most of the time I want something the width of the fixed column to be determined using width=fit option, so I cannot precompute the width of other columns.
Aditya
That's what I was afraid. It's just I had the same problem last week, and a deadline made me settle for the ad hoc approach. You made me curious enough to go look at the source, and one can hack it to work. See below, if interested. Not optimal, and might break in future.
By the way, what you posted in your other message,
\setupTABLE[c][1][width=fit] \setupTABLE[c][2][width=0.33\hsize] \setupTABLE[c][3][width=0.66\hsize]
extends into the right margin by the width of the first column or thereabouts, for me.
Ah, thats makes more sense. I was so happy to see the right ratio of the widths, that I did not notice that.
The hack:
Thanks. I'll play around with it tomorrow. Aditya