[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Groff] tbl: contolling table width
From: |
Ted Harding |
Subject: |
RE: [Groff] tbl: contolling table width |
Date: |
Thu, 08 Jul 2010 22:44:00 +0100 (BST) |
On 07-Jul-10 21:45:11, Anton Shepelev wrote:
> Werner Lemberg:
>> Then what about the `x' column specifier?
> Thanks. I was 'fixed' on the 'w' specifier.
>
> Ted Harding:
>> Meanwhile, looking for something "clever"...
> May I ask you if you have found it?
> Anton
Well, this is an approximation to "something clever", but it is
definitely "work in progress"!
First: groff code (NB View the result in PostScript and use 'groff -t):
=============================
The line below is the current line-length:
.br
\D'l \n[.l]u 0'
.TS
tab(#);
|l2 | l2 | l2 | l |.
_
Row 1, Col 1 A A A\ER'H1 \n[.k]'#Row 1, Col 2#\
Row 1, Col 3\ER'H3 \n[.k]'#Row 1, Col 4
Row 2, Col 1#Row 2, Col 2#Row 2, Col 3 AA\ER'H3 \n[.k]'#\
Row 2, Col 4\h'2m'X
Row 3, Col 1#Row 3, Col 2 A\ER'H2 \n[.k]'#Row 3, Col 3#Row 3, Col 4
Row 4, Col 1#Row 4, Col 2#Row 4, Col 3#Row 4, Col 4 A A A\
\h'\n[.l]u-\n[.k]u-\n[H1]u-\n[H2]u-\n[H3]u-8n'
_
.TE
=============================
Next: some comments (first view the output):
1 Note that \ER'H1 \n[.k]' (1st col), \ER'H2 \n[.k]' (2nd col)
\ER'H3 \n[.k]', and the final (col 4)[*]
"\h'\n[.l]u-\n[.k]u-\n[H1]u-\n[H2]u-\n[H3]u-8n'"
occur at the end of the table entry which is the longest
in that column.
[*] This is probably not necessary for the final column,
but I am unsure whether ignoring it would survive
all possible cases for col 4.
2 The "-8n" in the final "\h'...'" is as it is because I have
set 2n column spacings: "|l2 | l2 | l2 | l |."
Thus from the lefthand edge of the table there is 1n from the
left-hand vertical rule until the entries start, then 2n from
col 1 to col 2, then 2n from col 2 to col 3, then 2n from
col 3 to col 4, then 1n at the righthand edge from the end
of the longest entry to the right-hand rule, hence 8n in all.
With default (3n) column spacing, it would be 3n each time
instead of 2n, hence "-11n" in all with no other changes.
Without the left-hand or right-hand rules, omit the 1n for each
one which is not there.
Rather than this kludgy "counting n's" method, there is probably
a way to exploit the tbl-generated registers \n[3cl0] and \n[3cl3]
(in a 4-column table), but I have not yet succeeded in getting
this to work properly!
3 This code, as written, is somewhat dependent on the columns being
left-justified. However, if a column is centred you can use the
entry in that column which extends furthest to the right. If a
column is right-justified, then you don't need to worry.
4 There is no obvious way to automate this for arbitrary tables!
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <address@hidden>
Fax-to-email: +44 (0)870 094 0861
Date: 08-Jul-10 Time: 22:43:53
------------------------------ XFMail ------------------------------
- [Groff] tbl: contolling table width, Anton Shepelev, 2010/07/07
- Re: [Groff] tbl: contolling table width, Mike Bianchi, 2010/07/07
- Re: [Groff] tbl: contolling table width, Anton Shepelev, 2010/07/07
- Re: [Groff] tbl: contolling table width, Werner LEMBERG, 2010/07/07
- Re: [Groff] tbl: contolling table width, Ted Harding, 2010/07/07
- Re: [Groff] tbl: contolling table width, Werner LEMBERG, 2010/07/07
- Re: [Groff] tbl: contolling table width, Ted Harding, 2010/07/07
- Message not available
- [Groff] tbl: contolling table width, Anton Shepelev, 2010/07/07
- RE: [Groff] tbl: contolling table width,
Ted Harding <=
- Re: [Groff] tbl: contolling table width, Anton Shepelev, 2010/07/09