Questa potrebbe essere una base da cui partire`\begin{filecontents*}{dzmstyle.ist}
preamble “\\begin{theindex}\n
\\makeatletter
\\renewcommand\\subitem{\\@idxitem \\hspace*{5pt}-\\,-\\hspace*{5pt}}
\\renewcommand\\subsubitem{\\@idxitem \\hspace*{5pt}-\\,-\\hspace*{5pt}-\\,-\\hspace*{5pt}}
\\makeatother”
headings_flag 1
heading_prefix “\\goodbreak\\textbf{”
heading_suffix “}\\par\\nobreak\\vskip\\smallskipamount\\nobreak”
symhead_positive “Simboli”
symhead_negative “simboli”
numhead_positive “Numeri”
numhead_negative “numeri”
\end{filecontents*}
\documentclass{article}
\usepackage{imakeidx}
\makeindex[columns=1,options=-s dzmstyle]
\begin{document}
Ciao
\index{Angolo}
\index{Angolo!in Gradi}
\index{Angolo!in Radianti}
\index{Angolo!in Gradi!Sessagesimali}
\index{barca}\index{casa}\index{dromedario}
\printindex
\end{document}`Preferisco ridefinire \subitem e \subsubitem anziché usare i comandi di makeindex. Se guardi dentro a book.cls vedi che si scrive:`\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}`Cioè il comando [tt]\subitem[/tt] crea un a capo, una spaziatura orizzontale di 40 pt (solo per i rientri) più una spaziatura di 20 pt. [tt]\subsubitem[/tt] ne aggiunge 30 anziché 20.
Usando i comandi di makeindex avresti dovuto scrivere una cosa del genere`headings_flag 1
heading_prefix “\\goodbreak\\textbf{”
heading_suffix “}\\par\\nobreak\\vskip\\smallskipamount\\nobreak”
symhead_positive “Simboli”
symhead_negative “simboli”
numhead_positive “Numeri”
numhead_negative “numeri”
item_01 “\n \\subitem \\hspace{-20pt}\\hspace*{5pt}-\\,-\\hspace*{5pt}”
item_1 “\n \\subitem \\hspace{-20pt}\\hspace*{5pt}-\\,-\\hspace*{5pt}”
item_12 “\n \\subsubitem \\hspace{-30pt}\\hspace*{5pt}-\\,-\\hspace*{5pt}-\\,-\\hspace*{5pt}”`[tt]item_01[/tt] è il comando da inserire fra una voce di livello 0 e una voce di livello 1. Didefault è “\n \\subitem “.
[tt]item_1
[tt]item_12
Spero di aver fatto un po’ di chiarezza.
Fran