Может ли кто-нибудь помочь написать алгоритм, показанный на рисунке, в LaTex?

Может ли кто-нибудь помочь написать алгоритм, показанный на рисунке, в LaTex?

Я пытался написать алгоритм, показанный на рисунке.1в латексе.

Ниже приведен код, который я попробовал. Однако он не возвращает отступов, которые мне были нужны. Я ценю помощь.

\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}

Я попробовал цикл do-while, как показано ниже. К сожалению, некоторые проблемы с форматированием, включая ввод, вывод и подпись, не работают.

\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}

Спасибо

решение1

Вот набросок одного из способов сделать это с помощью algorithm2e. Я включил его xcolor, soulв демонстрационных целях, на случай, если вы захотите выделить определенную строку.

Намекать: Математическая среда, которую я здесь использую, — это всего лишь набросок, т.е. она нуждается в доработке.

алго

\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}

Связанный контент