On 9/18/2024 10:53 PM, Wolfgang Schuster wrote:
Gerion Entrup schrieb am 18.09.2024 um 14:44:
Am Dienstag, 17. September 2024, 20:36:23 MESZ schrieb Gerion Entrup:
Hi,
I want to typeset a table where some of the column headings are
really long, while in the columns itself consists only of numbers.
Therefore, my idea was to rotate the column headings but not 90
degrees (I found some solutions for that) but 45 degree.
It then would be beneficial to push together the rotated cells, so
the text of one cell actually starts above the previous cell.
Do you know, how to achieve that?
Here is a minimal example:
```
\startsetups[table:rotated]
\setupTABLE[frame=off]
\setupTABLE[row][first][bottomframe=on, style=bf, align={center,
low}]
\setupTABLE[row][2][align=flushright]
\stopsetups
\starttext
\define\tablerotate{\dontleavehmode\rotate[rotation=-45, location=high]}
\bTABLE[setups=table:rotated]
\bTR \bTD \eTD \bTD \tablerotate{Water buffalo} \eTD \bTD
\tablerotate{Mexican redknee tarantula} \eTD \bTD
\tablerotate{European turtle dove} \eTD \eTR
\bTR \bTD Amount of legs \eTD \bTD \digits{4} \eTD \bTD
\digits{8} \eTD \bTD \digits{2} \eTD \eTR
\eTABLE
\stoptext
```
I would like to achieve that the text "Mexican redknee tarantula" is
typeset right and above of "Water buffalo" so that the single columns
have a width that is similar to the width of the single digit coming
in the second row.
To visualize this, I patched the PDF of the above example to the
desired result. See the attachment.
You can use Metapost.
\startuseMPgraphic{tableheader}{text,rotation}
label.lft("\strut\bf\MPvar{text}",origin)
rotated \MPvar{rotation}
shifted (\the\strutht,0);
setbounds currentpicture to unitsquare
xyscaled(\the\struttotal,sin(\MPvar{rotation})*\the\widthofstring{\MPvar{text}});
\stopuseMPgraphic
\starttext
\bTABLE[frame=off]
\bTR[align={middle,low}]
\bTH \eTH
\bTH[width=3em] \dontleavehmode\useMPgraphic{tableheader}
{text=Water buffalo,rotation=315} \eTH
\bTH[width=3em] \dontleavehmode\useMPgraphic{tableheader}
{text=Mexican redknee tarantula,rotation=315} \eTH
\bTH[width=3em] \dontleavehmode\useMPgraphic{tableheader}
{text=European turtle dove,rotation=315} \eTH
\eTR
\bTR[topframe=on,align=middle]
\bTD Amount of legs \eTD
\bTD 4 \eTD
\bTD 8 \eTD
\bTD 2 \eTD
\eTR
\eTABLE
\stoptext
Neat. Added to the test suite.
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : ntg-context@ntg.nl /
https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________