Xavier Dionne mailto:xavier.dionne@hotmail.com 19. Juni 2018 um 03:26
Hi everyone,
Excuse my poor English. I recently updated my online table generator (http://latex-tables.com) to support ConTeXt. It also supports many languages, like LaTeX, Plain TeX, Markdown, HTML and more. It uses the eXtreme table format and supports many features including :
- Borders, border width and border color
- Merged cells
- Background color
- Alignment (flushleft, center, flushright)
- Splitted tables
- Rotated tables
- Caption
- More...
However, I have many issues that I have trouble to fix.
1/ I have many troubles with borders, because I can't set the color and the width of each border. Instead, I use "fake rows" and "fake cells" when it is necessary. However, I can't figure out how to set the height of a row to 0.4pt. It's always bigger. So, instead I use "location=hanging" on this row but, because of this, borders are hidden behind the next row's background. What can I do about this ?
Frames accept only a single color and line thickness for all borders but there are two ways to set different values for each side The first method is to disable the frame and apply a background graphic where you draw different lines for each side. The other method is to create a custom renderer for each frame (top, bottom etc.) where you can than apply a different color or linewidth for each side, below (and also attached) is a example where I show how this can be done. Wolfgang %%%% begin meta-imp-mpframe.mkiv \startuseMPgraphic{mp_frame_left} draw leftboundary OverlayBox withpen pensquare scaled \frameddimension{leftrulethickness} withcolor \MPcolor{\framedparameter{leftframecolor}} ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic \startuseMPgraphic{mp_frame_right} draw rightboundary OverlayBox withpen pensquare scaled \frameddimension{rightrulethickness} withcolor \MPcolor{\framedparameter{rightframecolor}} ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic \startuseMPgraphic{mp_frame_top} draw topboundary OverlayBox withpen pensquare scaled \frameddimension{toprulethickness} withcolor \MPcolor{\framedparameter{topframecolor}} ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic \startuseMPgraphic{mp_frame_bottom} draw bottomboundary OverlayBox withpen pensquare scaled \frameddimension{bottomrulethickness} withcolor \MPcolor{\framedparameter{bottomframecolor}} ; setbounds currentpicture to OverlayBox ; \stopuseMPgraphic \installleftframerenderer {mp} {\useMPgraphic{mp_frame_left}} \installrightframerenderer {mp} {\useMPgraphic{mp_frame_right}} \installtopframerenderer {mp} {\useMPgraphic{mp_frame_top}} \installbottomframerenderer {mp} {\useMPgraphic{mp_frame_bottom}} \setupframed [ leftframecolor=\framedparameter{framecolor}, rightframecolor=\framedparameter{framecolor}, topframecolor=\framedparameter{framecolor}, bottomframecolor=\framedparameter{framecolor}, leftrulethickness=\framedparameter{rulethickness}, rightrulethickness=\framedparameter{rulethickness}, toprulethickness=\framedparameter{rulethickness}, bottomrulethickness=\framedparameter{rulethickness}] \endinput %%%% end meta-imp-mpframe.mkiv %%%% begin mpframe.tex \useMPlibrary[mpframe] \definextable [mp] [width=2cm, height=2cm, align={middle,lohi}, foregroundstyle=\ssd, framecolor=red, % use the custom frame renderer for all four sides: leftframe=mp, rightframe=mp, topframe=mp, bottomframe=mp] \starttext \startxtable[mp] \startxrow[bottomrulethickness=2pt] \startxcell[rightframecolor=blue] A \stopxcell \startxcell[leftframe=off] B \stopxcell \stopxrow \startxrow \startxcell[leftframecolor=green,leftrulethickness=2pt] C \stopxcell \startxcell[rightframecolor=orange,rightrulethickness=2pt] D \stopxcell \stopxrow \stopxtable \stoptext %%%% end mpframe.tex