On 03-Jan-07 T. Kurt Bond wrote:
> Is there any way to find out the width of the most recent table?
> --
> T. Kurt Bond, [EMAIL PROTECTED]
The following should work. Indeed, it may always work!
When 'tbl' is invoked on groff code with ".TS"/".TE" blocks,
it seems that a register \n[TW] is created towards the end of
the 'tbl' output, whose value is the width of the table in
device units.
For example:
.LP
.TS
tab(#);
l0w(1i) l0w(1i) lw(1i).
X#Y#Z
.TE
.LP
This is an intervening line of text
.LP
This is the value of \n[TW]
using the PS device, prints the value of \n[TW] as 216000, i.e. 3 inches
(3 x 72 points x 1000).
The table is defined so that each column has width "at least" 1 inch
("w(1i)"), with zero inter-column spacing ("l0", "l0"), and the entries
are very short so that the columns should be exactly 1 inch each.
The only thing I'm not really sure of is whether the register \n[TW]
is created for every table (though I can;t imagine whyit should not be).
If it is so created, then you will get the table width every time.
Therefore, until you create a new table, \n[TW] should be available
for the most recently created table. If you want to preserve the
values for several tables, then you can of course copy the values
of \n[TW] to new registers, e.g.
.nr TW.1 \n[TW]
....
.nr TW.2 \n[TW]
....
Hoping this helps,
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <[EMAIL PROTECTED]>
Fax-to-email: +44 (0)870 094 0861
Date: 04-Jan-07 Time: 15:11:33
------------------------------ XFMail ------------------------------
_______________________________________________
Groff mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/groff