Tracked Changes and Tables – a Complex Issue
I often am asked, “How does iRedline handle tables during the comparison process?” I say, “Great, because iRedline leverages Word 2007’s comparison engine, and Word tracks revisions in tables accurately.” This question is asked because comparison products that compare tables (Word documents) outside of Microsoft Word use very different comparison algorithms and usually have a difficult time with Words tables, especially complex tables, and the resulting documents have messed up table.
Under the hood, Word tables are very complex, and in Word 2007, they have hit a completely new level. I believe this is one of the reason many OpenXML (Microsoft Office’s new file format) will make it difficult for many non-Microsoft document viewers to show Word’s tables with Tracked Changes accurately. I’m amazed at how well Word handles tables during the comparison and document revision (Track Changes turned on) process, because of this complexity.
Observe the simple table below. This table has two deletions, one insertion and three deleted cells (pink). Yet look at the underlying OpenXML code below (see Simple Table as OpenXML Code) is very complex. The OpenXML code lists 18 revision changes and many of them are nested inside other changes.

Simple Table as OpenXML Code
<w:tbl xmlns:w="http://schemas.openxmlformats.org/
wordprocessingml/2006/main">
<w:tblPr>
<w:tblW w:w="0" w:type="auto" />
<w:tblBorders>
<w:top w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:left w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:bottom w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:right w:val="single" w:sz="12" w:space="0" w:color="auto" />
</w:tblBorders>
<w:tblLayout w:type="fixed" />
<w:tblCellMar>
<w:left w:w="30" w:type="dxa" />
<w:right w:w="30" w:type="dxa" />
</w:tblCellMar>
<w:tblLook w:val="0000" />
<w:tblPrChange w:id="0" w:author="Randall Farrar">
<w:tblPr>
<w:tblW w:w="0" w:type="auto" />
<w:tblBorders>
<w:top w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:left w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:bottom w:val="single" w:sz="12" w:space="0" w:color="auto" />
<w:right w:val="single" w:sz="12" w:space="0" w:color="auto" />
</w:tblBorders>
<w:tblLayout w:type="fixed" />
<w:tblCellMar>
<w:left w:w="30" w:type="dxa" />
<w:right w:w="30" w:type="dxa" />
</w:tblCellMar>
<w:tblLook w:val="0000" />
</w:tblPr>
</w:tblPrChange>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="3240" />
<w:gridCol w:w="180" />
<w:gridCol w:w="840" />
<w:gridCol w:w="1440" />
<w:tblGridChange w:id="1">
<w:tblGrid>
<w:gridCol w:w="3240" />
<w:gridCol w:w="90" />
<w:gridCol w:w="90" />
<w:gridCol w:w="1440" />
</w:tblGrid>
</w:tblGridChange>
</w:tblGrid>
<w:tr>
<w:trPr>
<w:trHeight w:val="310" />
<w:trPrChange w:id="2" w:author="Randall Farrar">
<w:trPr>
<w:trHeight w:val="310" />
</w:trPr>
</w:trPrChange>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="3240" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="3" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="3240" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1" />
<w:numPr>
<w:ilvl w:val="0" />
<w:numId w:val="0" />
</w:numPr>
<w:rPr>
<w:b />
<w:i />
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:b />
<w:color w:val="000000" />
</w:rPr>
<w:t>Chemical Composition</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="180" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="4" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="180" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:b />
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="840" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:cellDel w:id="5" w:author="Randall Farrar" />
<w:tcPrChange w:id="6" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="840" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:cellDel w:id="7" w:author="Randall Farrar" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1440" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="8" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="2400" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
<w:del w:id="9" w:author="Randall Farrar">
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:delText>Typical</w:delText>
</w:r>
</w:del>
</w:p>
</w:tc>
</w:tr>
<w:tr>
<w:trPr>
<w:trHeight w:val="310" />
<w:trPrChange w:id="10" w:author="Randall Farrar">
<w:trPr>
<w:trHeight w:val="310" />
</w:trPr>
</w:trPrChange>
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="3240" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="11" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="3240" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:t>Ca(OH)</w:t>
</w:r>
<w:r>
<w:rPr>
<w:color w:val="000000" />
<w:vertAlign w:val="subscript" />
</w:rPr>
<w:t>2</w:t>
</w:r>
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:t xml:space="preserve"> </w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="180" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="12" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="180" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:jc w:val="center" />
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="840" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:cellDel w:id="13" w:author="Randall Farrar" />
<w:tcPrChange w:id="14" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="840" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:cellDel w:id="15" w:author="Randall Farrar" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:jc w:val="center" />
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1440" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
<w:tcPrChange w:id="16" w:author="Randall Farrar">
<w:tcPr>
<w:tcW w:w="2400" w:type="dxa" />
<w:shd w:val="clear" w:color="000000" w:fill="auto" />
</w:tcPr>
</w:tcPrChange>
</w:tcPr>
<w:p>
<w:pPr>
<w:jc w:val="center" />
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:t>96.</w:t>
</w:r>
<w:del w:id="17" w:author="Randall Farrar">
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:delText>0%</w:delText>
</w:r>
</w:del>
<w:ins w:id="18" w:author="Randall Farrar">
<w:r>
<w:rPr>
<w:color w:val="000000" />
</w:rPr>
<w:t>5%</w:t>
</w:r>
</w:ins>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
<w:p xmlns:w="http://schemas.openxmlformats.org/
wordprocessingml/2006/main" />



, and then click the Restrict tab.
button in the Reviewing Pane does nothing, because the revision count is updated dynamically as revisions are made. I have found on VERY large documents it speeds up the process, but then on the same document it had no effect when I closed it-re-opened it and made the same changes. It shouldn’t be there, because it assumes that the revision count may need to be updated.

