在數學模式下沒有得到「-」(減號),程式 \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} 

相關內容