Amended answer
For each thematic "category", manually add (and keep track of) a separate sorting character (s@t, where s = sorting string, t = index entry text, with "a@" for "cats", "b@" and "c@" for canids and carrypacks respectively, and "z@" for misc, so the index entry would look like, for example, \index[theme]{a@Cats!leopard}
). "Miscellaneous" would logically be at the end in a theme list.
An .ist
file with a dotfill
command would give you right justification: if it is called plain.ist
, invoking it would be by: \makeindex[name=theme,title=Thematic Index,options=-s plain]
.
One-column (columns=1
option in the \makeindex
command):

Default two-columns:

MWE
\documentclass{article}
\usepackage[splitindex]{imakeidx}
\makeindex[name=fel,title=Cats]%a
\makeindex[name=can,title=Canids]%b
\makeindex[name=equ,title=Carrypacks]%c
\makeindex[name=msc,title=Misc]%z
\makeindex[name=theme,title=Thematic Index,options=-s plain]
\begin{document}
lion\index[fel]{lion}\index[theme]{a@Cats!lion}
coyote\index[can]{coyote}\index[theme]{b@Canids!coyote}
zebra\index[equ]{zebra}\index[theme]{c@Carrypacks!zebra}
moose\index[msc]{moose}\index[theme]{z@Miscellaneous!moose}
\newpage
wolf\index[can]{wolf}\index[theme]{b@Canids!wolf}
gazelle\index[equ]{gazelle}\index[theme]{c@Carrypacks!gazelle}
tiger\index[fel]{tiger}\index[theme]{a@Cats!tiger}
mouse\index[msc]{mouse}\index[theme]{z@Miscellaneous!mouse}
\newpage
guinea pig\index[msc]{guinea pig}\index[theme]{z@Miscellaneous!guinea pig}
leopard\index[fel]{leopard}\index[theme]{a@Cats!leopard}
dingo\index[can]{dingo}\index[theme]{b@Canids!dingo}
horse\index[equ]{horse}\index[theme]{c@Carrypacks!horse}
\newpage
\printindex[can]
\printindex[equ]
\printindex[fel]
\printindex[msc]
\printindex[theme]
\end{document}
The plain.ist
file:
delim_0 "\\space\\dotfill\\space "
delim_1 "\\space\\dotfill\\space "
delim_2 "\\space\\dotfill\\space "
delim_n ", "
delim_r "--"
delim_t ""
encap_prefix "\\"
encap_infix "{"
encap_suffix "}"
line_max 1000
Original answer
If I have understood correctly, do you mean adding something like a summary or thematic index, using level 0 as grouping?

It's a separate index and has its own \index[...]{...}
entries.
A script could go through the .idx
files and derive a theme .idx
file, getting, say, \indexentry{lion}{1}
(from the -fel.idx
) and outputting \indexentry{Cats!lion}{1}
into the -theme.idx
but this would be partway through the automatic toolchain, and in any case, a mapping to match the sub-entry (lion) to the grouping (Cats) would still need to be done/defined somewhere beforehand. Perhaps a regex could work, after the mapping is established.
MWE
\documentclass{article}
\usepackage[splitindex]{imakeidx}
\makeindex[name=fel,title=Cats]
\makeindex[name=can,title=Canids]
\makeindex[name=msc,title=Misc]
\makeindex[name=theme,title=Thematic Index]
\begin{document}
lion\index[fel]{lion}\index[theme]{Cats!lion}
coyote\index[can]{coyote}\index[theme]{Canids!coyote}
moose\index[msc]{moose}\index[theme]{Miscellaneous!moose}
\newpage
wolf\index[can]{wolf}\index[theme]{Canids!wolf}
tiger\index[fel]{tiger}\index[theme]{Cats!tiger}
mouse\index[msc]{mouse}\index[theme]{Miscellaneous!mouse}
\newpage
guinea pig\index[msc]{guinea pig}\index[theme]{Miscellaneous!guinea pig}
leopard\index[fel]{leopard}\index[theme]{Cats!leopard}
dingo\index[can]{dingo}\index[theme]{Canids!dingo}
\newpage
\printindex[can]
\printindex[fel]
\printindex[msc]
\printindex[theme]
\end{document}
\index{Item!Subitem}