在数学模式下没有得到“-”(减号),程序 \linebreak 不适用于“算法”环境

在数学模式下没有得到“-”(减号),程序 \linebreak 不适用于“算法”环境
\begin{algorithmic}
        \Procedure{$M_{topo}$}{$f^-,y$} \inebreak
            $(n, m, q, A,B)\leftarrowff^-, y_1...y_m\leftarrow y$
            \For {$(g, i, j) \in \{n + 1, . . . , n + q\} × \{0, 1\} × \{0, 1\}$}
                \If{$g  \leq n + q − m$} $G_g(i, j) \leftarrow 0$
                \Else $G_g(i, j)\leftarrow y_{\text{g−(n+q−m)}}$
                \EndIf
            \EndFor
            $f \leftarrow (n, m, q, A,B,G), x \leftarrow 0^n$ k
            \Return (f, x)
        \EndProcedure
\end{algorithmic} \\

使用后没有进入$(n, m, q, A,B)\leftarrowff^-, y_1...y_m\leftarrow y$第二行\linebreak

标志-没有进入\Else $G_g(i, j)\leftarrow y_{\text{g−(n+q−m)}}$

在此处输入图片描述

答案1

  • algorithmicx环境中,换行符是通过\State关键字生成的,而不是通过\linebreak

  • 不要使用非 ASCII Unicode 字形,例如×,除非您使用 XeLaTeX 或 LuaLaTeX 以及合适的 Unicode 数学字体。相反,请使用\times-;后者是纯 ASCII“破折号”字符。

  • 另外,请输入\dots“而不是“ ...”。

完整的 MWE;注意“突然”的出现万一结束于

在此处输入图片描述

\documentclass{article}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithmic}
        \Procedure{$M_{\mathrm{topo}}$}{$f^-,y$} 
            \State $(n, m, q, A,B)\gets f^-,\ y_1,\dots, y_m\gets y$
            \For {$(g, i, j) \in \{n+1,\dots,n+q\} \times \{0, 1\} \times \{0, 1\}$}
                \If {$g  \leq n + q - m$} $G_g(i, j) \gets 0$
                \Else \ $G_g(i, j)\gets y_{g-(n+q-m)}$
                \EndIf
            \EndFor
            \State $f \gets (n, m, q, A,B,G),\ x \gets 0^n$ k % huh?
            \State \textbf{return} $(f, x)$
        \EndProcedure
\end{algorithmic}
\end{document} 

相关内容