我试图编写如下所示的算法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}