使用 IEEEtran 的嵌套算法标记

使用 IEEEtran 的嵌套算法标记

IEEEtran在写文章时使用了该类,我想包含一个带有(多个)嵌套函数的算法。IEEEtran起初,将算法包含在类中令人困惑,但我找到了两个可行的示例,然而,我似乎无法让它们在嵌套函数上工作。

我的第一个方法如下:

\documentclass[conference]{IEEEtran}
\usepackage{algpseudocode}

\begin{figure}
\begin{algorithmic}
\State Step 1: Create M (number of samples) Transition Matrices
\ForAll {t}
    \ForAll {a\in A}\\
        \ForAll {i\in\{1,...,n \}}
            Sample M vectors for the i^{th} row of the transition matrix
        \EndFor
    \EndFor
\EndFor
\State Step 2: Generate estimates of the value function
\While{j\leq M}
    \State Calculate the value function based on the $j^{th}$ sample
\EndWhile
 \State Step 3: Determine the average value function and the corresponding value function sensitivity
\end{algorithmic}
\end{figure}

然而,结果却是这样的:

结果快照

我尝试了\\和的所有可能组合\State,但我不知道发生了什么。我的意思是,甚至还有一个额外的对全部文中为什么这么说呢?

因此,我尝试使用algorithm2e带有该类解决方法的包IEEEtran,但这似乎根本不允许嵌套结构。

如果有人能帮助我了解正在发生的事情,我将非常感激。

答案1

您的主要问题是您使用了未在数学模式中设置的数学内容$...。$使用适当的符号后,您的示例代码将按预期工作:

在此处输入图片描述

\documentclass[conference]{IEEEtran}

\usepackage{algpseudocode}

\begin{document}

\begin{algorithmic}
  \raggedright
  \State Step 1: Create $M$ (number of samples) Transition Matrices
  \ForAll { $t$ }
    \ForAll { $a \in A$ }
      \ForAll { $i \in \{ 1, \ldots, n \}$ }
        \State Sample $M$ vectors for the $i$\textsuperscript{th} row of the
        \State \quad transition matrix%
          \strut}
      \EndFor
    \EndFor
  \EndFor
  \State Step 2: Generate estimates of the value function
  \While{ $j \leq M$ }
    \State Calculate the value function based on the $j$\textsuperscript{th} sample
  \EndWhile
  \State Step 3: Determine the average value function and the corresponding value function sensitivity
\end{algorithmic}

\end{document}

我添加了一些格式建议(例如),包括在多行语句周围\raggedright使用强制中断和缩进( )。\quad

由于conference模板ieeetran必须将文档设置为two-column模式,因此无需将algorithmic环境放置在 内figure,因为它不会浮动。但是,根据您的文档布局,可能需要这样做;algorithmic充当列表,并允许算法跨越列边界。

答案2

我认为问题与从算法到算法的切换有关,因为 IEEEtran 不支持算法浮点类型。

\documentclass{ieeetran}
\usepackage{algpseudocode}
\begin{document}

\begin{figure}[t]
\begin{algorithmic}
\State Step 1: Create $M$ (number of samples) Transition Matrices
\ForAll {$t$}
    \ForAll {$a\in A$}
        \ForAll {$i\in\{1,...,n \}$}
            \State Sample $M$ vectors for the $i^{th}$ row of the transition matrix
        \EndFor
    \EndFor
\EndFor
\State Step 2: Generate estimates of the value function
\While{$j\leq M$}
    \State Calculate the value function based on the $j^{th}$ sample
\EndWhile
 \State Step 3: Determine the average value function and the corresponding value function sensitivity
\end{algorithmic}
\end{figure}

\end{document}

演示


此版本显示如何缩进整个\State

\documentclass{ieeetran}
\usepackage{algpseudocode}
\begin{document}

\begin{figure}[t]
\begin{algorithmic}
\State Step 1: Create $M$ (number of samples) Transition Matrices
\ForAll {$t$}
    \ForAll {$a\in A$}
        \ForAll {$i\in\{1,...,n \}$}
            \State \parbox{\dimexpr\columnwidth-\csname ALG@tlm\endcsname}%
            {\strut Sample $M$ vectors for the $i^{th}$ row of the transition matrix\strut}
        \EndFor
    \EndFor
\EndFor
\State Step 2: Generate estimates of the value function
\While{$j\leq M$}
    \State Calculate the value function based on the $j^{th}$ sample
\EndWhile
 \State Step 3: Determine the average value function and the corresponding value function sensitivity
\end{algorithmic}
\end{figure}

\end{document}

演示2

相关内容