算法返回语句未在新行开始

算法返回语句未在新行开始

我有以下用于显示算法的代码:

\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..

相关内容