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