数式モードで「-」(マイナス記号)を取得できません。手順 \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$使用後2行目に進まない\linebreak

そして-サインは入ってこない\Else $G_g(i, j)\leftarrow y_{\text{g−(n+q−m)}}$

ここに画像の説明を入力してください

答え1

  • 環境では、改行は ではなく キーワードalgorithmicxによって生成されます。\State\linebreak

  • XeLaTeX または LuaLaTeX と適切な Unicode 数式フォントを使用する場合を除き、×やなどの非 ASCII Unicode グリフを使用しないでください。代わりにおよびを使用してください。後者はプレーン ASCII の「ダッシュ」文字です。\times-

  • また、\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} 

関連情報