Ciao.
Come suggerito da fabusdr, la cosa logica è proprio cercare il sorgente della documentazione di listing (il dtx) ed estrarci la parte relativa all’indice:
`
\csname @twocolumntrue\endcsname
%\maketitle %%tralasciato per il momento
%\enlargethispage{2\baselineskip} %%anche questo superfluo
\csname @starttoc\endcsname{toc}
\onecolumn
`
Tuttavia, anche in base alla classe utilizzata (in listing.dtx usa ltxdoc ma è lo stesso con le altre), non dà proprio un bel risultato se non con qualche piccola modifica:
`
\twocolumn
\csname @twocolumntrue\endcsname
\csname @starttoc\endcsname{toc}
\onecolumn
`
Facendogli capire che è twocolumn.
Anche in questo caso non è proprio soddisfacente: termina la prima colonna fino a \textheight e poi si sposta sulla seconda colonna, col risultato che un indice lungo una colonna e mezzo risulta esteticamente inaccettabile, anche perche il twocolumn cambia pagina alla fine dell’opzione.
Io penso che, come di’ano a Pisa, <
Un esempio potrebbe essere:
`
{\noindent\hfill\Large\bfseries\contentsname\hfill}
\begin{multicols}{2}
\csname @twocolumntrue\endcsname
\csname @starttoc\endcsname{toc}
\end{multicols}
`
Ovviamente i colori presenti in listing.dtx, provengono da hyperref, mentre i puntini dipendono dalla classe usata.
Ciao,
Roberto.