Como fazer referência cruzada de listas de enumeração aninhadas? (Formatação avançada de referência cruzada com intelligentef)

Como fazer referência cruzada de listas de enumeração aninhadas? (Formatação avançada de referência cruzada com intelligentef)

Preciso fazer referência a listas de enumeração aninhadas e não quero repetir o nível mais alto se vários pontos de nível inferior forem mencionados consecutivamente. Assim, em vez de uma lista como

1.1a(i), 1.1b, 1.1c

Gostaria de obter o seguinte resultado

1.1a(i), b, c

Infelizmente, não encontro uma solução adequada. Aqui está um MWE, baseado na cleverefabordagem padrão, que produz um resultado estranho:

\documentclass[ngerman, 12pt]{article}
\usepackage{enumitem}
\usepackage{cleveref}
\parindent0pt

\labelcrefmultiformat{enumi}%
{\edef\crefstripprefixinfo{#1}#2#1#3}%
{ and~#2\crefstripprefix{\crefstripprefixinfo}{#1}#3}%
{, #2\crefstripprefix{\crefstripprefixinfo}{#1}#3}%
{, and~#2\crefstripprefix{\crefstripprefixinfo}{#1}#3}

\setlist[1]{leftmargin=*}
\setlist[2]{label=\alph*}
\setlist[3]{label=(\roman*)}

\begin{document}

\section{References}
\begin{enumerate}[ref=\thesection.\arabic*]
\item Fruits
\begin{enumerate}[ref=\theenumi\alph*]
\item \label{en:apples} Apples
\begin{enumerate}[ref=\theenumii(\roman*)]
\item \label{en:red} Red Apples
\item \label{en:green} Green Apples
\end{enumerate}
\item \label{en:bananas} Bananas
\item \label{en:pears} Pears
\end{enumerate}
\item \label{en:vegetables} Vegetables
\end{enumerate}
Now, I would like to reference to \labelcref{en:red,,en:bananas,,en:pears,,en:vegetables}.\\
\end{document}

Em vez de

1.1a(i), b, c e 1.2.

Recebo o seguinte resultado estranho:

1.1a(i), 11.1b, 11.1c e 1.2

No entanto, se eu não usar o nível mais baixo e substituir a referência pelo código a seguir, tudo funcionaria bem:

\labelcref{en:apples,,en:bananas,,en:pears,,en:vegetables}.

Alguém tem alguma ideia de como resolver isso também para o nível mais baixo?

informação relacionada