我有以下用于显示算法的代码:
\begin{algorithm}
\caption{Compute index of nearest grid point given particle position (1D)}
\label{nearestGridPoint}
\begin{algorithmic}[1]
\Function{FindMeshIndex}{$position$, $nGrid$}
\State $index=math.floor(position+0.5)+((nGrid/2)+1)$
\If{$index=-1$}
\State $index=nGrid-1$
\EndIf
\Return $index$
\EndFunction
\end{algorithmic}
\end{algorithm}
输出放置万一和返回语句在同一行。我是否遗漏了一些格式方面的细节?
答案1
\State \Return your-text
将会修复它。
答案2
\Return
不会在算法中发出新行。您可以通过重新定义来强制执行此操作:
\documentclass{article}
\usepackage{algorithm,algpseudocode}
\newcommand{\vars}{\texttt}
\newcommand{\func}{\textrm}
\let\oldReturn\Return
\renewcommand{\Return}{\State\oldReturn}
\begin{document}
\begin{algorithm}
\caption{Compute index of nearest grid point given particle position (1D)}
\label{nearestGridPoint}
\begin{algorithmic}[1]
\Function{FindMeshIndex}{$\vars{position}, \vars{nGrid}$}
\State $\vars{index} = \func{math.floor}(\vars{position} + 0.5) + ((\vars{nGrid}/2)+1)$
\If{$\vars{index} = -1$}
\State $\vars{index} = \vars{nGrid} - 1$
\EndIf
\Return $\vars{index}$
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
\Return
已被重新定义为发出\State
第一的。
我已经擅自定义了\vars
(对于变量)和\func
(对于函数),这可以改善您的算法显示。
答案3
在序言中:
\algrenewcommand{\Return}{\State\algorithmicreturn~}
答案4
\\
另一个简单的解决方案是在前一个的末尾添加State
。
\State bla.. bla.. bla.. \\
\Return bla..