% http://latexbr.blogspot.com.br/
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazil]{babel}
\usepackage{multicol}
\usepackage{makeidx} % cria indice remissivo
\makeindex % cria o indice remissivo

% retorna o \'indice remissivo em tr\^es colunas
\makeatletter
\renewenvironment{theindex}
  {\if@twocolumn
      \@restonecolfalse
   \else
      \@restonecoltrue
   \fi
   \setlength{\columnseprule}{0pt}
   \setlength{\columnsep}{35pt}
   \begin{multicols}{3}[\section*{\indexname}]
   \markboth{\MakeUppercase\indexname}%
            {\MakeUppercase\indexname}%
   \thispagestyle{plain}
   \setlength{\parindent}{0pt}
   \setlength{\parskip}{0pt plus 0.3pt}
   \relax
   \let\item\@idxitem}%
  {\end{multicols}\if@restonecol\onecolumn\else\clearpage\fi}
\makeatother

\title{Criando \'indice remissivo em tr\^es colunas}
\date{}

\begin{document}

\maketitle

Para retornar o \'indice remissivo em tr\^es colunas escrevemos o seguinte comando no pre\^ambulo:

Requer o pacote \verb|multicol|.

\begin{verbatim}
\makeatletter
\renewenvironment{theindex}
  {\if@twocolumn
      \@restonecolfalse
   \else
      \@restonecoltrue
   \fi
   \setlength{\columnseprule}{0pt}
   \setlength{\columnsep}{35pt}
   \begin{multicols}{3}[\section*{\indexname}]
   \markboth{\MakeUppercase\indexname}%
            {\MakeUppercase\indexname}%
   \thispagestyle{plain}
   \setlength{\parindent}{0pt}
   \setlength{\parskip}{0pt plus 0.3pt}
   \relax
   \let\item\@idxitem}%
  {\end{multicols}\if@restonecol\onecolumn\else\clearpage\fi}
\makeatother
\end{verbatim}

\index{An\'alise}

\index{Fun\c c\~ao}

\index{Hist\'oria!da Matem\'atica}

\index{Indu\c c\~ao}

\index{Juros}

\index{Kepler}

\index{Limite}

\index{Matem\'atica}

\index{Napier}

\index{Omega}

\index{Polin\^omios}

\index{Quociente}

\index{Raz\~ao}

\index{Somat\'orio}

\index{Topologia}

\index{Alef}

\index{Bola!aberta}

\index{Bola!fechada}

\index{Limite!infinito}

\index{Riemman}

\index{Liebniz}


\printindex

\end{document}
