From: Hans Hagen <pragma@wxs.nl>
Subject: Re: Table column width on spanned cells
Date: Mon, 17 Apr 2006 14:32:39 +0200 [thread overview]
Message-ID: <44438AE7.6050300@wxs.nl> (raw)
In-Reply-To: <ops75gfgot9niby6@localhost>
nico wrote:
> Hello,
>
> In the following example using the "nc" option, the 3 middle columns don't
> fit the width option. It seems that the table tries to fit to the page
> width instead.
>
> \starttext
>
> \bTABLE[frame=on,width=3em]
> \bTR \bTD[nc=2] A \eTD \bTD x \eTD \bTD[nc=2] B \eTD \eTR
> \bTR \bTD X \eTD \bTD[nc=3] C \eTD \bTD x \eTD \eTR
> \bTR \bTD[nc=2] D \eTD \bTD x \eTD \bTD[nc=2] E \eTD \eTR
> \eTABLE
>
> \stoptext
>
there is probably a good reason for that (but forgot what),
\squeezeTBLspanfalse
will give you a different result; a possible patch is:
\newif\ifautosqueezeTBLspan \autosqueezeTBLspantrue % NEW
\long\def\dohandleTBLcellA#1#2[#3]#4%
{\setbox\scratchbox\hbox
{\setupTBLcell{#1}{#2}%
\scratchdimen\tbltbldistance\relax
\ifdim\scratchdimen>\gettbldis{#2}\relax
\settbldis{#2}{\the\scratchdimen}%
\fi
\localframed
[\@@tbl\@@tbl]
[#3,\c!background=,\c!frame=\v!off]% 25% faster
{\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL\inTBLcell{#1}{#2}}}%
\scratchdimen\gettblwid\colTBL\relax
\ifdim\wd\scratchbox>\scratchdimen
\ifsqueezeTBLspan
\doifelsevalue{\@@tbl*sq}\v!no
\donefalse
{\ifautosqueezeTBLspan
\doifdimensionelse\tbltblwidth\donefalse\donetrue
\else
\donetrue
\fi}%
\ifdone
\ifnum0\number\gettblcol{#1}{#2}>1\relax \settblspn\colTBL \fi
\fi
\fi
\doifelsetblspn\colTBL
\donothing{\settblwid\colTBL{\the\wd\scratchbox}}% auto set
\fi
\let\rowTBLx\rowTBL\increment\rowTBLx
\scratchdimen\gettblhei\rowTBLx\relax
\ifdim\ht\scratchbox<\scratchdimen
\settblhei\rowTBLx{\the\ht\scratchbox}% auto set
\fi
\settblht{#1}{#2}{\the\ht\scratchbox}%
\settblwd{#1}{#2}{\the\wd\scratchbox}%
\ifautoTBLcheckwidth
\ifdim\wd\scratchbox<.75\hsize
\ifdim\ht\scratchbox>2\openlineheight
\scratchdimen\gettblaut\colTBL\relax
\ifdim\scratchdimen=\zeropoint
\settblaut\colTBL{\the\scratchdimen}%
\else\ifdim\wd\scratchbox>\scratchdimen
\settblaut\colTBL{\the\wd\scratchbox}%
\fi\fi
\fi
\fi
\fi
\setbox2\null
\wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
\box2}
but i'm not sure if it will not break other situations, so please do some harsh testing
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
next prev parent reply other threads:[~2006-04-17 12:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-17 11:19 nico
2006-04-17 12:32 ` Hans Hagen [this message]
2006-04-17 18:32 ` nico
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44438AE7.6050300@wxs.nl \
--to=pragma@wxs.nl \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).