\documentclass{article}
\pagestyle{empty}
\usepackage[USenglish,ngerman]{babel}
\usepackage{makeidx}
\makeindex
\newcommand{\indexUSeWithSubsubentryAsGer}[4]{\index{000#1 #2 #3@\foreignlanguage{USenglish}{#1}!\foreignlanguage{USenglish}{#2}!\foreignlanguage{USenglish}{#3}|see{#4}}} % for 3-level USenglish English -> German "siehe" entries
\begin{document}
\index{Zustandsraum!lokaler}\emph{geteilter Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{shared}{Zustandsraum, geteilter}\emph{\foreignlanguage{USenglish}{shared state space}})
\index{Zustandsraum!geteilter}\emph{lokaler Zustandsraum} (engl.\@ \indexUSeWithSubsubentryAsGer{space}{state}{local}{Zustandsraum, lokaler}\emph{\foreignlanguage{USenglish}{local state space}})
\printindex
\end{document}
and feed it to the loop pdflatex mwe && makeindex mwe. The intention of 000 above is to obtain first an index of English terms then followed by an index of German terms. The result is this: However, you expected that the subentries would be grouped compactly, as in
Code: Select all
space
state
local, siehe Zustandsraum, lokaler
shared, siehe Zustandsraum, geteilter
Zustandsraum
geteilter, 1
lokaler, 1
Crossposts: http://texwelt.de/fragen/26229 , http://golatex.de/viewtopic,p,110783.html .