如何调整 algpseudocode 包中的嵌套 if 语句

如何调整 algpseudocode 包中的嵌套 if 语句

我有以下代码:

\documentclass{article}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}
\caption{Main D Algorithm}\label{alg:cap}
\begin{algorithmic}[1]
\For{a for statement}
\If{some coding}
    \State do something
\ElsIf{another condition}
    \For{some condition}
    \If{another statement}
    \State do something
\ElsIf{problem is here}
\State whatever
\end{algorithmic}
\end{algorithm}
\end{document}

显示如下:

输出

我的问题是,我想让最后一个 elseif 语句(第 8 行)与第一个 if 语句(第 2 行)对齐,但我无法做到这一点。我尝试过使用 endif 之类的方法(显然我当时修改了 \usepackage),但算法没有调整。有没有人能帮助我调整这个以及这个包中的缩进?

答案1

您必须分别用和关闭所有\For循环和\If语句。\EndFor\EndIf

在此处输入图片描述

\documentclass{article}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}
\caption{Main D Algorithm}\label{alg:cap}
\begin{algorithmic}[1]
\For{a for statement}
    \If{some coding}
        \State do something
    \ElsIf{another condition}
        \For{some condition}
            \If{another statement}
                \State do something
            \EndIf
        \EndFor
    \ElsIf{problem is here}
        \State whatever
    \EndIf
\EndFor
\end{algorithmic}
\end{algorithm}
\end{document}

相关内容