Wie kann man in Latex einen mehrzeiligen Block in einem Aufzählungselement unterbringen?

Wie kann man in Latex einen mehrzeiligen Block in einem Aufzählungselement unterbringen?

In Latex:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage[utf8]{inputenc}
\title{example}
\author{ }
\date{October 2022}
\begin{document}
\maketitle
\section{Introduction}

\begin{algorithm}
    \begin{algorithmic}
    
            \State $InvariantList \gets FD(PDDL)$
            \State $StateVar \gets StateVar(LatPlan)$
            
            \While{$InvariantList \neq $ $\emptyset$}
                \State 
                    \begin{enumerate}
                        \item \textit{Inv} = $highInv($InvariantList) 
                        \item Train LatPlan by enforcing \textit{Inv}
                        \item  $StateVarTmp \gets StateVar(LatPlan)$ \\ \If{$StateVarTmp <    $ StateVar} \State Keep Inv in the loss function and in InvariantList\Else \State Discard Inv from the loss function and from InvariantList \EndIf
                        \item other item
                    \end{enumerate}
                    
            \EndWhile
    \end{algorithmic}
\end{algorithm}

\end{document}

Sie geben nicht das wieder, was ich erwarte, nämlich:

Bildbeschreibung hier eingeben

Ich möchte z. B. die Zahlen für den „Wenn“-Block entfernen, da dieser Block Teil des 3. Elements sein soll.

Irgendeine Idee ?

Antwort1

Mit dem Paket enumitem und ein bisschen DIY

  • \setlist{nosep}

     \documentclass{article}
     \usepackage{algorithm}
     \usepackage{algpseudocode}
     \usepackage{enumitem}
    
     \begin{document}
     \setlist{nosep}
     \begin{algorithm}
     \begin{algorithmic}
         \State $InvariantList \gets FD(PDDL)$
         \State $StateVar \gets StateVar(LatPlan)$
         \While{$InvariantList \neq $ $\emptyset$}
             \State              
                 \begin{enumerate}\vspace{-1\baselineskip}
                     \item \textit{Inv} = $highInv($InvariantList) 
                     \item Train LatPlan by enforcing \textit{Inv}
                     \item  
                     $StateVarTmp \gets StateVar(LatPlan)$
                 \end{enumerate}
                 \begin{itemize}[label =]\vspace{-1.\baselineskip}
                     \item\If{$StateVarTmp <    $ StateVar} \State Keep Inv in the loss function and in InvariantList\Else \State Discard Inv from the loss function and from InvariantList \EndIf
                 \end{itemize}
                     \begin{enumerate}[resume]
                 \item other item
                 \end{enumerate} 
         \EndWhile         
     \end{algorithmic}
     \end{algorithm}
     \end{document}
    

Bildbeschreibung hier eingeben

verwandte Informationen