Practical guide / tables
Fix a JATS table row with the wrong column count
A table may look aligned in an editor while one XML row occupies fewer columns than its neighbors. Find the row in the source, count the positions its cells occupy, and restore the missing cell or intended span before export.
In the NISO JATS table model, a th or td without colspan occupies one column. A cell with colspan="2" occupies two.
Separate the wrapper from the grid
<table-wrap> represents the complete table, including its label, caption, table content, and notes. The nested <table> contains the rows and columns. Moving caption text into a grid cell does not repair a short row, and moving a data cell into the caption loses its tabular meaning.
This guide uses the NISO JATS table model with tr, th, and td. If your file uses the alternative OASIS table model, follow that model's column specifications instead.
Find the exact short row
Here the header establishes three columns: Measure, Group A, and Group B. The first body row has three td cells. The second body row has only two, so its value for Group B is missing.
<table-wrap id="tbl-1">
<label>Table 1</label>
<caption><title>Response by group</title></caption>
<table>
<thead>
<tr><th>Measure</th><th>Group A</th><th>Group B</th></tr>
</thead>
<tbody>
<tr><td>Enrolled</td><td>20</td><td>20</td></tr>
<tr><td>Responded</td><td>12</td></tr>
</tbody>
</table>
</table-wrap>
The row beginning Responded is the one to inspect in the source data. Do not add a blank cell until you know whether Group B truly has no reported value or a value was dropped during conversion.
Count spans before editing
For each simple row, add the column widths of its th and td cells. An absent colspan contributes one; colspan="2" contributes two. A row with <td colspan="2">No group split</td><td>20</td> occupies three positions, despite having two cell elements.
If the table also uses rowspan, account for positions already occupied by cells from preceding rows before judging the current row. Check the displayed column meaning as well as the total: a row can have the expected width while putting a value under the wrong heading.
Repair the row and retain its table notes
The source for this example confirms that Group B had no reported value. Add an explicit third cell to the Responded row. Keep the caption in table-wrap and place the explanatory note in table-wrap-foot, outside the grid.
<table-wrap id="tbl-1">
<label>Table 1</label>
<caption><title>Response by group</title></caption>
<table>
<thead>
<tr><th>Measure</th><th>Group A</th><th>Group B</th></tr>
</thead>
<tbody>
<tr><td>Enrolled</td><td>20</td><td>20</td></tr>
<tr><td>Responded</td><td>12</td><td>Not reported</td></tr>
</tbody>
</table>
<table-wrap-foot><p>Group B response was not reported.</p></table-wrap-foot>
</table-wrap>
<table-wrap-foot> holds prose notes or footnotes after the table. It is different from <tfoot>, which holds tabular footer rows.
Check the final destination file
- 01Re-export the article
Inspect the final XML, since a conversion step can restore an older version of the short row.
- 02Review each table row
Check occupied positions, spans, header alignment, and whether the value belongs to the intended column.
- 03Review the complete table
Keep the caption and notes with the wrapper. For a PMC destination, compare the final article with its current table tagging guidance and other submission requirements.
- 04Check references and deliverables
If text points to this table, verify its
xref/@ridagainst the table wrapper'sid. See the broken cross-reference guide for that separate repair.
JATS Verify checks table structure in an uploaded JATS package. Run it on the final XML, then review any table finding against the source data. A passing check does not guarantee acceptance by PMC, a journal, or another destination.
Official sources
Check the final XML
Review table structure before delivery.
Upload one JATS XML package free. No account, email, card, or sales call.