[comp.text.desktop] Ditroff/ms macro problem with multi-page tables

cberg@leadsv.UUCP (Charles R Berg) (02/06/90)

I'm looking for some help with the enclosed troff/tbl file.  This
has been extracted from a much larger (MUCH larger) file, that is
automatically produced by a document production system we're using.
Therefore, while there are many things that I can change about it,
one thing I cannot change is the use of ms macros.

The problems are numerous, all dealing with interactions between
the redefined headers and footers, and tables that span multiple
pages.  As the file is presented here, everything is fine.  However,
if the table is expanded by duplicating the supplied rows, such that
the table extends onto multiple pages, the vertical bars disappear on
all but the last page.

Of course, you say, that's because of:

	.de FO
	..

Well, if I don't do that, then I get the following errors:

	ditroff: Can't open /usr/lib/font/devpsc/1.out; line 86
	stack: NP FO BT 
	ditroff: Can't open /usr/lib/font/devpsc/4.out; line 86
	stack: PT NP FO BT 
	ditroff: Can't open /usr/lib/font/devpsc/4.out; line 86
	stack: NP FO BT 
	ditroff: Can't open /usr/lib/font/devpsc/4.out; line 86
	stack: BT 
	ditroff: Can't open /usr/lib/font/devpsc/1.out; line 86
	stack: NP FO BT BT 
	...

So, the next logical thing to try is to remove:

	.fp 4 Ag	\" Mount AvantGarde-Demi in position 4
	.ft Ag		\" And select it
&
	.fp 4 S		\" Restore Symbol to position 4
	.ft \\n(PF	\" Restore previous face

from both PT & BT.  This results in an infinitely recursive loop,
with no error messages at all.  I know its a recursive loop because
when I ctrl-c, and print what I have so far, the headers and footers
are inter-mixed, and the table never appears.  Besides, the stack
trace printed above looks kinda recursive, too.

The command line I'm using is:

	tbl tbl.test | ditroff -ms -Tpsc | psdit > tbl.test.ps

So, my scalp is getting sore from me pulling my hair out over this
one.  Any ms macro hackers out there want to volunteer to give a hand?

Thanks to all in advance.

Chuck Berg
excelan \
practic  \
pyramid   > !leadsv!cberg
sunncal  /
versatc /


*********************** troff/tbl file starts here *****************
.pn 0
.nr PS 12
.ps \n(PSu
.nr VS 16
.vs \n(VSu
.nr LL 6.5i
.ll \n(LLu
.nr LT 6.5i
.lt \n(LTu
.nr PO 1i
.po \n(POu
.na
.nh
.\"
.nr FM  0.75i			\" Footer margin
.nr HM  0.85i			\" Header margin
.ch BT -1.15i			\" Bottom title trap at bottom of page
.\"
.	\" PT - Page Title (or Header)
.de PT
.nr PF \\n(.f			\" Save current face
.nr PX \\n(.s			\" Save current point size
.nr PV \\n(.v			\" Save current line spacing
.fp 4 Ag			\" Mount AvantGarde-Demi in position 4
.ft Ag				\" And select it
.ps 9p				\" Set header point size
.vs 10p				\" Set header line spacing
'sp
.if !\\n% \\{.tl |\v'-12p'\s10\\*(H3\s0||\s10\\*(H1\s0|
.         tl |\v'-12p'\s9\\*(H4\s0|\s18\\*(SC\s0|\s9\\*(H2\s0|\\}
.if \\n% .if o \\{.tl |\v'-12p'\s10\\*(H1\s0||\s10\\*(H3\s0|
.         tl |\v'-12p'\s9\\*(H2\s0|\s18\\*(SC\s0|\s9\\*(H4\s0|\\}
.if \\n% .if e \\{.tl |\v'-12p'\s10\\*(H3\s0||\s10\\*(H1\s0|
.         tl |\v'-12p'\s9\\*(H4\s0|\s18\\*(SC\s0|\s9\\*(H2\s0|\\}
.tl ||\v'-18p'\s1\l'6.75i'\s0||
.fp 4 S				\" Restore Symbol to position 4
.ft \\n(PF			\" Restore previous face
.ps \\n(PX			\" Restore previous point size
.vs \\n(PVu			\" Restore previous line spacing
..
.	\" BT - Bottom Title (or Footer)
.de BT
.nr PF \\n(.f			\" Save current face
.nr PX \\n(.s			\" Save current point size
.nr PV \\n(.v			\" Save current line spacing
.fp 4 Ag			\" Mount AvantGarde-Demi in position 4
.ft Ag				\" And select it
.ps 9p				\" Set footer point size
.vs 10p				\" Set footer line spacing
'sp | 10.25i			\" Space to top of footer
.tl ||\s1\l'6.75i'\s0||
.if !\\n% \\{.tl ||\v'6p'\s18\\*(SC\s0\v'-6p'|\s9\\*(F1\s0|
.         tl |||\s9\\*(F2\s0|
.         tl |||\s9\\*(F3\s0|\\}
.if \\n% .if o \\{.tl ||\v'6p'\s18\\*(SC\s0\v'-6p'|\s9\\*(F1\s0|
.         tl |||\s9\\*(F2\s0|
.         tl ||- \\*(SD.% -|\s9\\*(F3\s0|
.         nr PO 0.75i\\}
.if \\n% .if e \\{.tl |\s9\\*(F1\s0|\v'6p'\s18\\*(SC\s0\v'-6p'||
.         tl |\s9\\*(F2\s0|||
.         tl |\s9\\*(F3\s0|- \\*(SD.% -||
.         nr PO 1.00i\\}
.fp 4 S				\" Restore Symbol to position 4
.ft \\n(PF			\" Restore previous face
.ps \\n(PX			\" Restore previous point size
.vs \\n(PVu			\" Restore previous line spacing
'bp
..
.	\" FO - footnotes
.de FO
..
.\"
.LP
.sv 2.5i
.os
.ds SC SHDBCYEJKFI
.ds SD A
.ds H1 GYH Jdiehtndidsk Heghautiodj
.ds H2 Hiwje Sdsfhi 363849 Asdfk 83
.ds H3 Hsjdfn Hweow Uiwer Smdn
.ds H4 Pejfd Hwi Eidhj Uhdn
.ds F1 Hy fdjandk ew
.ds F2 Hjkasnfke
.ds F3 Pkfdjeorj.
.bp
.ce
Title Page
.bp
.TS H
center tab (~) doubleframe;
cb | cb 
cb | cb
lTw(1.5i)p9 1 |lTw(4.5i)p9 1 .
Gaut~Wjdkeisrycni
\^~\^
_
.TH
T{
.na
.nh
NJHG Hnasdkwo hnsd
T}~T{
.na
.nh
Nhoiw askd trhe asdm ahejre thae adhas afsfhr ehaltr
fjhastr ashdfa ehreja the eas hre asehr athe tae a
aseriehj athea eieqw  asfhd aehre asehe fa aea
fjhastr ashdfa ehreja the eas hre asehr athe tae a
aseriehj athea eieqw  asfhd aehre asehe fa aea
fakefa efher ae aseas.
T}
_
T{
.na
.nh
NJHG Hnasdkwo hnsd
T}~T{
.na
.nh
Nhoiw askd trhe asdm ahejre thae adhas afsfhr ehaltr
fjhastr ashdfa ehreja the eas hre asehr athe tae a
aseriehj athea eieqw  asfhd aehre asehe fa aea
fjhastr ashdfa ehreja the eas hre asehr athe tae a
aseriehj athea eieqw  asfhd aehre asehe fa aea
fakefa efher ae aseas.
T}
.TE