[NTG-context] xmlpos values doubled

Ben Moon ben at themoons.uk
Mon Mar 28 11:44:16 CEST 2022


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

Ben Moon
ben at themoons.uk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20220328/ff1f9be7/attachment.htm>


More information about the ntg-context mailing list