谁能帮忙用 LaTex 写出图中所示的算法?

谁能帮忙用 LaTex 写出图中所示的算法?

我试图编写如下所示的算法1在 LaTex 中。

下面是我尝试的代码。但是,它没有返回我需要的缩进。非常感谢您的帮助。

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

相关内容