Kann jemand helfen, den in der Abbildung gezeigten Algorithmus in LaTex zu schreiben?

Kann jemand helfen, den in der Abbildung gezeigten Algorithmus in LaTex zu schreiben?

Ich habe versucht, den in gezeigten Algorithmus zu schreiben1in LaTex.

Unten ist der Code, den ich ausprobiert habe. Er gibt jedoch nicht die Einrückung zurück, die ich brauche. Ich bin für die Hilfe dankbar.

\documentclass[11pt]{article}
\usepackage[margin=4cm]{geometry}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage[norelsize, linesnumbered, ruled, lined, boxed, commentsnumbered]{algorithm2e}

%\algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%
%\algblockdefx[ARBITRARY]{Arbitrary}{endArbitrary}[1]{#1}

\begin{document}


\begin{algorithm}[H]
 \SetAlgoLined
 \LinesNumbered
 \SetKwInOut{Input}{Input}
 \Input{$x,y,z,$}
 \SetKwProg{Function}{function}{}{end}
 \SetKwRepeat{Do}{do}{while}
 %\Function{function($ inp$) : int}{
     \Do{done = false}{ something }
        \Do{done2 =true} {something2}
% }
 \caption{Algorithm}
\end{algorithm}

Ich habe die do-while-Schleife wie unten gezeigt ausprobiert. Leider funktionieren einige Formatierungsprobleme, darunter Eingabe, Ausgabe und Beschriftung, nicht.

\documentclass{article}
\usepackage[ruled,vlined]{algorithm2e}
\usepackage{blkarray}
\usepackage{algpseudocode}
\usepackage{amsmath}

\algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%


\begin{document}
\begin{algorithmic}
\SetAlgoLined
\SetKwInOut{Input}{input}
\SetKwInOut{Output}{output}
\DontPrintSemicolon
  \Do
    \State r s t $\boldsymbol{J}_{dh}$
        \Do 
    \State Compute $\boldsymbol{J}_{dh}$ %$m,n,p,q,\boldsymbol{J}_{dh}$ 
            \Do
        \State $m,n,o,\boldsymbol{J}_{dh}$
                \Do
                \State $ m, n \boldsymbol{J}_{dh} $
                \doWhile {$k<k_{max}$} 
            \doWhile{$\Delta_\alpha<tol$}
    \doWhile{$\varepsilon <2\pi$}
  \doWhile{$z<z_f$} % <--- use \doWhile for the "while" at the end
\end{algorithmic}
\end{document}

Danke

Antwort1

Hier ist eine Skizze einer Möglichkeit, dies mit zu tun algorithm2e. Ich habe es xcolor, soulzu Demozwecken beigefügt, falls Sie eine bestimmte Zeile hervorheben möchten.

Hinweis: Die mathematische Umgebung, die ich hier verwende, ist nur eine Skizze, d. h. sie muss verfeinert werden.

Alge

\documentclass[11pt]{article}
\usepackage[linesnumbered,lined,ruled,commentsnumbered]{algorithm2e}
\usepackage{xcolor, soul}% <<<
\sethlcolor{yellow}% <<<


\begin{document}

  \begin{algorithm}[h]
    \caption{Algorithm}

    \While{$Z < Z_f$}{
        r, s, t;
        
        \While{$eps < 2 pi$}{
            \hl{m, n, P};% <<< if you need to highlight something
            
            \While{}{
                \While{$k < k_{max}$}{
                    m, n, Td;
                }
                $theta =$;
                $psi =$;
            
            }
        }
    }
    plot(something);
  \end{algorithm}

\end{document}

verwandte Informationen