Hello All,
I'm trying to render a table stored in XML JATS format (
https://jats.nlm.nih.gov/archiving/) and eventually want to use the <colgroup> tag to setup column aligning from the @align attribute, e.g.,
\setupTABLE [column] [\xmlpos{#1}] [align=\xmlatt{#1}{align}]
Including \xmlpos{#1} I get double the value returned, i.e.: the first element in colgroup returns 2, the second returns 4 etc.
Below is a MWE to show my issue. I show \xmlpos for each <col> tag in <colgroup> above the table, which returns 2, 4, 6, 8 but I expected 1, 2, 3, 4. Am I missing something or is there another way I could do this?
~~~~~~~~~~~~
\startbuffer[table]
<table-wrap>
<table>
<colgroup>
<col align="center" />
<col align="right" />
<col />
<col />
</colgroup>
<thead>
<tr>
<th>H1 (centre)</th>
<th>H2 (right)</th>
<th>H3</th>
<th>H4</th>
</tr>
</thead>
<tbody>
<tr>
<td>A1</td>
<td>A2</td>
<td>A3</td>
<td>A4</td>
</tr>
<tr>
<td>B1</td>
<td>B2</td>
<td>B3</td>
<td>B4</td>
</tr>
</tbody>
</table>
</table-wrap>
\stopbuffer
\startxmlsetups xml:tabletestsetups
\xmlsetsetup{#1}{*}{-}
% tables
\xmlsetsetup{#1}{table-wrap|table}{xml:*}
\xmlsetsetup{#1}{thead|tbody|tr|th|td}{xml:table:*}
\xmlsetsetup{#1}{colgroup|col}{xml:*}
\stopxmlsetups
\xmlregistersetup{xml:tabletestsetups}
\startxmlsetups xml:table-wrap
\startplacetable
% \contextversion \par
\xmlflush{#1}
\stopplacetable
\stopxmlsetups
\startxmlsetups xml:table
\bTABLE
\xmlflush{#1}
\eTABLE
\stopxmlsetups
\startxmlsetups xml:colgroup
\xmlflush{#1}
\stopxmlsetups
\startxmlsetups xml:col
\xmlpos{#1} \xmlatt{#1}{align}\par
\stopxmlsetups
\startxmlsetups xml:table:thead
\bTABLEhead
\xmlflush{#1}
\eTABLEhead
\stopxmlsetups
\startxmlsetups xml:table:tr
\bTR
\xmlflush{#1}
\eTR
\stopxmlsetups
\startxmlsetups xml:table:th
\bTH
\xmlflush{#1}
\eTH
\stopxmlsetups
\startxmlsetups xml:table:tbody
\bTABLEbody
\xmlflush{#1}
\eTABLEbody
\stopxmlsetups
\startxmlsetups xml:table:td
\bTC
\xmlflush{#1}
\eTC
\stopxmlsetups
\xmlprocessbuffer{main}{table}{}
~~~~~~~~~~~~
All the best,
Ben