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
Groff@gnu.org
http://lists.gnu.org/mailman/listinfo/groff

Reply via email to