> pdfroff incorporates a rather gruesome hack to collate tables > of contents, such as those emitted by the ms .TC macro, from > the end to the beginning of the document; effectively, it > emits the document twice, capturing the body text in the first > pass, and the TOC in the second, then pushes the two through > ghostscript in collated order. > > IIRC, the spdf macro package redefines the .TC macro, adding > some voodoo to suppress TOC output in the first pass, and body > text in the second, but if you don't use this macro, you get > the full body text in both passes, hence the doubled output > you are seeing. To avoid this, you should add the > `--no-toc-relocation' option...
Some time ago I posted to this list a tentative set of replacement macros for the -ms TOC feature, which make use of groff's .write request to write a TOC file which can be read in at any place in the document. Perhaps something similar could simplify the procedure in pdfroff?