Hi Larry, > As can be seen above, the page number is shifted improperly when its > string name contains numerals.
It's something to do with tbl not correctly copying the whole string register name into the troff output. Consider $ cat foo.tbl .TS expand; l n . one \*[aaaXbbb] two \*[ccc1ddd] .TE $ $ tbl foo.tbl | g 'aaa|bbb|ccc|ddd' | cat -A .nr 3w1 \n[3w1]>?\w\[tbl]\*[aaaXbbb]\[tbl]$ .nr 3tbw1,1 0\w\[tbl]\*[ccc1\[tbl]$ .nr 3rnw1 \n[3rnw1]>?\w\[tbl]ddd]\[tbl]$ \&\h'|\n[3cl0]u'one\h'|\n[3cl1]u'^B^C\*[aaaXbbb]^C^B$ \&\h'|\n[3cl0]u'two\h'|(\n[3w1]u-\n[3lnw1]u-\n[3rnw1]u/2u+\n[3lnw1]u+\n[3cl1]u-\n[3tbw1,1]u)'\*[ccc1ddd]$ $ \*[aaaXbbb] is always passed through but \*[ccc1ddd] is split into \*[ccc1 (no closing bracket) and ddd] when working out widths. A similar thing happens with \(z9 and \(9z. Given tbl is a preprocessor and looks at the text you give to work out alignment, it's probably not surprising? I suppose tbl's logic could become troff logic that was evaluated later, when the contents of string registers are known. This would be a change in behaviour though. Cheers, Ralph.