Boomer's code was correct for root categories if you just remove the "sub" text. I haven't added the {else} option if you show subcategories in the categories menu below root, but that seems simple enough. Here's the basic code.
Multiple columns of
root categories:
Code:
{* $Id: categories.tpl,v 1.23 2004/06/24 09:53:29 max Exp $ *}
{capture name=menu}
{* first coloumn *}
<TABLE width="100%"><TR><TD valign="top" width="50%">
{section name=cat_num loop=$categories start=0 step=2}
{math equation="x/2" x=$smarty.section.cat_num.max assign="counter"}
{if %cat_num.first%}
<table border=0 width="100%" cellspacing=5><tr>
{/if}
<td width="50%">
{$categories[cat_num].category}
</td>
</tr><tr>
{ if %cat_num.last% }
</tr></table>
{/if}
{/section}
{* 2nd coloumn *}
</TD><TD valign="top" width="50%">
{section name=cat_num loop=$categories start=1 step=2}
{math equation="x/2" x=$smarty.section.cat_num.max assign="counter"}
{if %cat_num.first%}
<table border=0 width="100%" cellspacing=5><tr>
{/if}
<td width="50%">
{$categories[cat_num].category}
</td>
</tr><tr>
{ if %cat_num.last% }
</tr></table>
{/if}
{/section}
</TD></TR></TABLE>
{/capture}
{ include file="menu.tpl" dingbats="dingbats_categorie.gif" menu_title=$lng.lbl_categories menu_content=$smarty.capture.menu }