1 COMMENT(-- $Id: masonyodl.yo,v 1.2 2003-11-24 17:31:27 pcg Exp $ --)
2 COMMENT(-----------------------------------------------------------------------
3 -- We want more functionality and some better layout
5 -- starttable(nColumns)(Alignment)(borderwidth)
6 ------------------------------------------------------------------------------)
7 NEWCOUNTER(RRindentlevel)
9 SETCOUNTER(RRindentlevel)(0)
11 DEFINEMACRO(nltxt)(0)(\
12 IFZERO(RRnl)()( ADDTOCOUNTER(RRnl)(-1)nltxt()))
15 DEFINEMACRO(XXnl)(0)(\
18 whentxt(SETCOUNTER(RRnl)(RRindentlevel)nltxt()))
22 whenhtml(SETCOUNTER(RRnl)(1)htmlcommand(<p>))\
25 UNDEFINEMACRO(starttable)
26 DEFINEMACRO(starttable)(3)(\
27 SETCOUNTER(XXtablewidth)(ARG1)\
28 whenhtml(IFZERO(ARG3)(htmlcommand(<table>))\
29 (htmlcommand(<table border=ARG3>))XXnl())\
30 whenlatex(latexcommand(\begin{tabular}{)ARG2+latexcommand(}))\
31 whenman(roffcmd(.TS)()()())\
32 whenman(IFZERO(ARG3)(roffcmd(tab(`);)()()())\
33 (roffcmd(allbox,tab(`);)()()()))\
34 whenman(ARG2 NOTRANS(.
36 whenms(roffcmd(.TS)()()())\
37 whenms(IFZERO(ARG3)(roffcmd(tab(`);)()()())\
38 (roffcmd(allbox,tab(`);)()()()))\
39 whenms(ARG2+mscommand(.))\
40 SETCOUNTER(XXtablewidth)(ARG1)\
41 SETCOUNTER(XXparcounter)(0))
42 COMMENT( For HTML, we'll need <table>, for
43 LaTeX we'll need \begin{tabular}{alignment}. Also, we don't want
44 paragraph delimiters.)
47 DEFINEMACRO(cell)(1)(\
48 ADDTOCOUNTER(XXtableline)(1)\
49 whenhtml(htmlcommand(<td>) ARG1 \
50 IFZERO(XXcellcounter)\
53 htmlcommand(</td>) XXnl())\
55 IFZERO(XXcellcounter)\
56 ()(latexcommand( & )))\
59 IFZERO(XXcellcounter)\
63 IFZERO(XXcellcounter)\
66 ADDTOCOUNTER(XXcellcounter)(-1))
67 COMMENT(For HTML we need:
68 <td> text </td>, so that's fairly easy. If we're already at the last
69 cell, we need <td> text <br></td>.
70 For LaTeX: we need text followed by &, unless
71 we're already at the last cell 'cuz in that case we need only text.
72 Also we need to decrement the cell counter..)
75 DEFINEMACRO(cells)(2)(\
76 ADDTOCOUNTER(XXtableline)(ARG1)\
77 ADDTOCOUNTER(XXcellcounter)(-ARG1)\
78 ADDTOCOUNTER(XXcellcounter)(1)\
79 whenhtml(htmlcommand(<td colspan=ARG1 align=center>) ARG2 \
80 IFZERO(XXcellcounter)\
83 htmlcommand(</td>) XXnl())\
85 latexcommand(\multicolumn{)ARG1+latexcommand(}{c}{)ARG2+latexcommand(})\
86 IFZERO(XXcellcounter)\
87 ()(latexcommand( & )))\
90 IFZERO(XXcellcounter)\
94 IFZERO(XXcellcounter)\
97 ADDTOCOUNTER(XXcellcounter)(-1))
99 DEFINEMACRO(indent)(1)(\
100 whenhtml(htmlcommand(<ul>)ARG1+htmlcommand(</ul>))\
101 whentxt(ADDTOCOUNTER(RRindentlevel)(4)ARG1+ADDTOCOUNTER(RRindentlevel)(-4))\
102 whenman(roffcmd(.RS)()()()roffcmd(.HP)()()()ARG1+roffcmd(.RE)()()())\
105 DEFINEMACRO(startdl)(0)(\
106 whenhtml(htmlcommand(<dl>))\
107 whentxt(ADDTOCOUNTER(RRindentlevel)(4))\
110 DEFINEMACRO(enddl)(0)(\
111 whenhtml(htmlcommand(</dl>))\
112 whentxt(ADDTOCOUNTER(RRindentlevel)(-4))\
116 whenhtml(htmlcommand(<dt>)ARG1+htmlcommand(</dt><dd>)\
117 ARG2+htmlcommand(</dd>))\
118 whentxt(ADDTOCOUNTER(RRindentlevel)(2)dit(ARG1)\
119 ADDTOCOUNTER(RRindentlevel)(2)nl()\
120 ARG2+ADDTOCOUNTER(RRindentlevel)(-4))\
121 whenman(dit(ARG1)ARG2))
123 DEFINEMACRO(manpageauthors)(0)(\
124 manpagesection(AUTHORS)\
125 DEFINESYMBOL(XXmanpageAuthor))