Defined as follows: \def\setupxtableparameters#1{% #1 is the node \setupframeparameters{#1}{\setupxtable}% \setupToAttribute{#1}{\setupxtable}{foregroundstyle}{style}{style}{\tf}% \setupToAttribute{#1}{\setupxtable}{offset}{cellpadding}{}{0pt}% \setupToAttribute{#1}{\setupxtable}{columndistance}{cellspacing}{}{0pt}% \setupToAttribute{#1}{\setupxtable}{spaceinbetween}{rowspacing}{}{0pt}% \setupToAttribute{#1}{\setupxtable}{option}{option}{}{}% } \def\setupframeparameters#1#2{% % color % Always set background to color if backgroundcolor is set. \doifnot{\xmlatt{#1}{bgcolor}}{\empty}{#2[background=color]}% % But it can be overridden. \doifnot{\xmlatt{#1}{background}}{\empty}{#2[background=\xmlatt{#1}{background}]}% \setupToAttribute{#1}{#2}{foregroundcolor}{color}{}{darkblue}% \setupToAttribute{#1}{#2}{backgroundcolor}{bgcolor}{}{green}% % frame \doifnot{\xmlatt{#1}{frame}}{\empty}% {#2[frame=off]\setframeparts{\xmlatt{#1}{frame}}{#2}}% \setupToAttribute{#1}{#2}{framecolor}{framecolor}{}{black}% \setupToAttribute{#1}{#2}{corner}{corner}{}{rectangular}% \setupToAttribute{#1}{#2}{radius}{radius}{}{0.5ex}% \setupToAttribute{#1}{#2}{backgroundcorner}{bgcorner}{}{rectangular}% \setupToAttribute{#1}{#2}{backgroundradius}{bgradius}{}{0.5ex}% % dimensions \setupToAttribute{#1}{#2}{rulethickness}{rulethickness}{}{3pt}% \doifnot{\xmlatt{#1}{height}}{\empty}% {#2[height=\NumberCollect{"\xmlattdef{#1}{height}{fit}","\the\makeupheight"}]}% \doifnot{\xmlatt{#1}{width}}{\empty}% {#2[width=\NumberCollect{"\xmlattdef{#1}{width}{fit}","\the\textwidth"}]}% % alignment \setupToAttribute{#1}{#2}{strut}{strut}{}{on}% \setupToAttribute{#1}{#2}{align}{align}{html}{normal}% \setupToAttribute{#1}{#2}{align}{valign}{html}{lohi}% } % Setup parameter to attribute. % #1 = node, #2 = setup, #3 = param, #4 = attrib, #5 = category, #6 = default. \def\setupToAttribute#1#2#3#4#5#6{% % Only executed if attribute is present. \doifexistattribute{#1}{#4}% % Attribute is present but category can be empty. {\doifelse{#5}{\empty}% {\doifelse{\xmlatt{#1}{#4}}{\empty}% {#2[#3=#6]}% attribute present but empty then take default {#2[#3=\xmlatt{#1}{#4}]}% attribute has content }% {#2[#3=\xlat{#1}{#5}{#4}{#6}]}% translate from category }% } Hans van der Meer On 24 May 2015, at 17:31, Wolfgang Schuster > wrote: Am 24.05.2015 um 15:32 schrieb Meer, H. van der >: I can get rid of the unwanted spaces before the table by inserting a whole bunch of \unskip's in my code. All the \unskip's in the following code are necessary. I guess this observation will be enough to repair the ConText code. Or do I have to change something in my code? \startxmlsetups xmlcommon:tr \unskip \xmlstripanywhere{#1}{.} \unskip \bgroup \unskip \setupxtableparameters{#1} \unskip \startxrow \unskip\xmlflush{#1} \stopxrow \egroup \unskip \stopxmlsetups \startxmlsetups xmlcommon:td \unskip \xmlstrip{#1}{.} \bgroup \setupxtableparameters{#1} \startxcell[nc=\xmlattdef{#1}{colspan}{1},nr=\xmlattdef{#1}{rowspan}{1}] \xmlflush{#1} \stopxcell \egroup \stopxmlsetups How did you define the \setupxtableparameters command in your example? Wolfgang ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________