Home Forums DITA and XMetaL Discussion TOPLEAF: Unchecking Balance Columns setting has no effect Reply To: TOPLEAF: Unchecking Balance Columns setting has no effect


Reply to: TOPLEAF: Unchecking Balance Columns setting has no effect

I may have completely misunderstood, but you seem to be talking about allocating proportional width to table columns. The [u]Balance columns[/u] option you refer to means to allocate roughly equal content to each text column in a double (or more) column page. This is a vertical setting which has no effect on tables. We should modify the documentation to make this clearer.

Anyway, if I've understood correctly you are asking how to make table column width proportional to the amount of material in that column. This is a feature quite deliberately excluded from TopLeaf for several reasons. Dynamic width allocation is great for web pages, where the width of the view is subject to change without notice, and page breaks are not an issue. For hard print/PDF output it's not so good, because the addition of a small amount of material to one column slightly reduces the width of the remaining columns. This in turn can have a substantial effect on page breaks and the ripples can continue for many pages. TopLeaf is aimed primarily at the “set and forget” model, where a well designed stylesheet ensures that you get good output, and small corrections can be made without having to re-proof large volumes of output.

So, what do you do in your situation? What we normally advise is to allocate proportional column widths. As well as explicit widths (eg. 15mm, 1.2in), TopLeaf also supports both percentage (20%) and proportional (2.5*) widths in both CALS and HTML modes. The * widths work as follows: once fixed and percentage widths have been allocated, remaining columns receive a proportion of the remaining space. So a width 4* column receives twice as much as a 2* column. The default is 1* (ie. all columns equal width).

The advantage of * over % is that the * values don't have to add up to 100 (or anything else). So if you want a column just a tiny bit wider you can (say) increase from 2* to 2.1* without changing anything else. You set widths using

in HTML or in CALS. Note that * widths are non-standard in HTML tables but fully supported by TopLeaf.

There are other methods, such as defining specific named table styles with pre-allocated widths. But these require much more setup.

Hope this explanation helps. Let me know if you need any other info.