算法中“then”的缩进?

算法中“then”的缩进?

我已经从parbox命令中受益,对我的算法的某些行应用了一些缩进。

现在,我需要对then关键字应用缩进。由于或then自动生成,因此我无法使用 的典型技巧。\IfElsIfparbox

我需要的是下图所示:每个then关键字必须与其对应的关键字对齐else if

在此处输入图片描述

我的MWE

\documentclass[letterpaper, 10pt, conference]{IEEEconf}

\let\proof\relax
\let\endproof\relax

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{algorithm}
\usepackage{algorithmicx,algpseudocode}

\newcommand\Sth[1]{S^{#1}\mkern-3mu(\mkern-2.5mu\theta^{\mkern-1mu#1}\mkern-2mu)}

\title{My Title*}

\author{Guy$^{1}$
    \thanks{*This work was not supported by any organization}
    \thanks{$^{1}$Guy is with Hell, {\tt\small [email protected]}}
}

\algnewcommand\algorithmicforeach{\textbf{for each}}
\algdef{S}[FOR]{ForEach}[1]{\algorithmicforeach\ #1\ \algorithmicdo}

\let\oldReturn\Return
\renewcommand{\Return}{\State\oldReturn}

\begin{document}

    \maketitle
    \thispagestyle{empty}
    \pagestyle{empty}

    \begin{abstract}

        ABSTRACT

    \end{abstract}

    \section{INTRODUCTION}

    \begin{algorithm}
        \renewcommand{\thealgorithm}{}
        \caption{algorithm}
        \label{euclid}
        \begin{algorithmic}[1] 
            \While{true}
            \ForEach{xxx}
            \State do $A$
            \If{nothing happened}
            \State \parbox[t]{\dimexpr\linewidth-\algorithmicindent}{$\text{updated var} \gets \varnothing$\strut}
            \ElsIf{objects lie inside the same operating space}
            \ForEach{object with sweeping function $S$}
            \State \parbox[t]{\dimexpr\linewidth-\algorithmicindent}{$\text{updated var} \gets S$\strut}  
            \EndFor
            \ElsIf{objects lie inside different operating space} 
            \ForAll{functions $B$}
            \ForAll{functions $C$}
            \State \parbox[t]{\dimexpr\linewidth-\algorithmicindent}{$\text{updated adjacency} \gets S$\strut}
            \EndFor
            \EndFor
            \EndIf
            \Return updated var
            \EndFor  
            \EndWhile\label{euclidendwhile}
        \end{algorithmic}
    \end{algorithm}
\end{document}

答案1

  • 这里没有行号then——这表明这不是一条自己的逻辑行。
  • 这只是一个换行符,因为文本太长,一行无法容纳下它。
  • 我使用了非常小的字体来向您显示逻辑换行发生的位置。
  • 您使用具有两列的文档类 - 因此文本宽度非常小。

在此处输入图片描述

在此处输入图片描述

(我用了在两列布局中显示框架/边距以显示边界。

algorithm与环境宽度相关的链接

相关内容