I had played around with strut=yes, but had not realized I also needed to set autostrut=no.  That approach ended up working best; my initial solution broke aligncharacter, and I like the table environment to reset.  It is a bit odd that it resets to something different than the default.

As an aside, what books are good for learning TeX programming for ConTeXt?  Anything besides the TeXBook (and I saw TeX by Topic mentioned on the list the other day).


Thanks again,
Brian


On Mar 29, 2007, at 4:34 AM, Wolfgang Schuster wrote:



2007/3/28, Brian R. Landy <landy@alumni.caltech.edu>:

Hi,

I am having a problem using nested natural tables, to which I have a
solution but feel that it my not be the proper approach.  I'm pretty
much a TeX and ConTeXt novice.

The problem is that the row height it reduced when a table is nested,
breaking vertical text alignment across cells.  In my example the
cells "SSSSS" and "Swap" to not align vertically due to the presence
of the "p".  I have an example of the problem and my fix below.

I'm curious if someone knows a better way to fix this.

Thanks for your help,
Brian


Hi Brian,

I will show a few solution to your problem for the following table.
We will start with a simple table that contains the error.

\starttext

\bTABLE
  \bTR
    \bTD
      {\bTABLE
      \bTR
        \bTD SSSS \eTD
        \bTD Swap \eTD
      \bTR
    \eTABLE}
    \bTD
  \eTR
\eTABLE

\stoptext


Your own solution with adding a strut to the inner table can be done
in a better way by adding the strut to the setup of the beginning of the table.

\starttext

\bTABLE
  \bTR
    \bTD
      {\bTABLE[left=\strut]
        \bTR
          \bTD SSSS \eTD
          \bTD Swap \eTD
        \bTR
      \eTABLE}
    \bTD
  \eTR
\eTABLE

\stoptext
 




Another mothod is to use the same method, that is used for the
outer table. I took a look into the source and found the following method,
that works also.

\starttext

\bTABLE
  \bTR
    \bTD
      {\bTABLE[strut=yes,autostrut=no]
         \bTR
           \bTD SSSS \eTD
           \bTD Swap \eTD
         \bTR
       \eTABLE}
    \bTD
  \eTR
\eTABLE

\stoptext


After that a was interested why we need to set the values in the
last example again, because they are already set in core-ntb.
The solution is, the values in nested tables are removed and replaced
by new ones. This behaviour can be changed and is shown in my last
example.

\starttext

\setfalse\resetTABLEmode

\bTABLE
  \bTR
    \bTD
      {\bTABLE
         \bTR
           \bTD SSSS \eTD
           \bTD Swap \eTD
         \bTR
       \eTABLE}
    \bTD
  \eTR
\eTABLE

\stoptext


Another example that shows the effect of \resetTABLEmode is:

\starttext

%\settrue\resetTABLEmode % default setting

\setupTABLE[frame=off]

\bTABLE
  \bTR
    \bTD
      {\bTABLE\bTR\bTD Text \eTD\eTR\eTABLE}
    \eTD
    \bTD
      Text
    \eTD
  \eTR
\eTABLE

\setfalse\resetTABLEmode

\bTABLE
  \bTR
    \bTD
      {\bTABLE\bTR\bTD Text \eTD\eTR\eTABLE}
    \eTD
    \bTD
      Text
    \eTD
  \eTR
\eTABLE

\stoptext


Wolfgang

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context
<sanitizer.log>