ページの半分だけ使用 / ページの右側は空白

ページの半分だけ使用 / ページの右側は空白

私はTexの初心者です。OverleafでLaTeXを使用してアルゴリズムを記述しようとしていますが、ページの左半分だけが使用され、行の残りの部分は次の行に送られます。

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

何が間違っていたのか教えていただけますか?


 \documentclass{IEEEtran}
 \usepackage{algorithmic}
 \begin{document}
 %\begin{algorithm}
 %\caption{Algorithm for ...}
 \textbf{Algorithm:GraphPaths(capital,Cryptocurrencies[])}
 \begin{algorithmic}[1]
 \renewcommand{\algorithmicrequire}{\textbf{Input:}}
 \renewcommand{\algorithmicensure}{\textbf{Output:}}
 \REQUIRE capital, Cryptocurrencies [];
 \ENSURE  Augmenting paths and total arbitrage
 \\ \textit{Initialisation} :
 \STATE Path = [];
\FOR {$i$ in $Currencies$ }
    \WHILE{$Currencies_i.market[0]$\textless$Currencies_i.market[n]$:}
        \STATE volume = min($market_i_0$, $market_i_n$, $capital$);
        \STATE $market_i_0$, $market_i_n$-=volume;
        \IF {capital\textgreater volume}
            \STATE capital = capital-volume+volume\cdot($market_i_n.price$- $market_i_0.price$);
        \ELSE capital+=volume\cdot($market_i_n$.price - $market_i_0$.price);
        \STATE Path.add{$Currencies_i.market[0]$,$Currencies_i.market[n]$}
        \IF {$market.volume$ $\leq$ 0 in $Currencies$:}
            \STATE remove: $.market[x]$;
 
\ENDFOR

 \RETURN {Path, capital}
 \end{algorithmic} 
 %\end{algorithm}
 \end{document}

答え1

この問題は、アルゴリズム内の構造が閉じられていないことに起因します。つまり、\IFs は閉じ を持ち\ENDIF\WHILEs は閉じ を持ち\ENDWHILE\FORs は閉じ を持つ必要があります\ENDFOR。また、 という形式の二重下付き文字は使用できません。a_b_c代わりに、 の後に を置く必要がありますa_{b_c}。最後に、\cdotは数学記号であるため、$...内でのみ使用できます$

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

\documentclass{IEEEtran}

\usepackage{algorithmic}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\newcommand{\NONUMSTATE}{\item[]}
\newcommand{\VAR}{\textnormal}
\newcommand{\minusbecomes}{\mathrel{{-}{=}}}
\newcommand{\plusbecomes}{\mathrel{{+}{=}}}

\begin{document}

\noindent
\textbf{Algorithm: GraphPaths(capital,Cryptocurrencies [])}

\begin{algorithmic}[1]
  \REQUIRE capital, Cryptocurrencies [];
  \ENSURE  Augmenting paths and total arbitrage
  
  \NONUMSTATE \textit{Initialisation}:
  
  \STATE Path = [];
  \FOR {$i$ in $\VAR{Currencies}$}
    \WHILE{$i.\VAR{market}[0] < .\VAR{market}[n]$}
      \STATE $\VAR{volume} = \min(\VAR{market}_{i_0}, \VAR{market}_{i_n}, \VAR{capital})$;
      \STATE $\VAR{market}_{i_0}, \VAR{market}_{i_n} \minusbecomes \VAR{volume}$;
      \IF {$\VAR{capital} > \VAR{volume}$}
        \STATE $\VAR{capital} \plusbecomes 
          \VAR{capital} - \VAR{volume} + \VAR{volume} \cdot (\VAR{market}_{i_n}.\VAR{price} - \VAR{market}_{i_0}.\VAR{price})$;
      \ELSE
        \STATE $\VAR{capital} \plusbecomes \VAR{volume} \cdot (\VAR{market}_{i_n}.\VAR{price} - \VAR{market}_{i_0}.\VAR{price})$;
      \ENDIF
      \STATE Path.add $i.\VAR{market}[0], i.\VAR{market}[n]$
      \IF {$\VAR{market}.\VAR{volume} \leq 0$ in $\VAR{Currencies}$}
        \STATE remove $.\VAR{market}[x]$;
      \ENDIF
    \ENDWHILE
  \ENDFOR

  \RETURN Path, capital
\end{algorithmic} 

\end{document}

一貫性を保つために、コーディング スタイルにいくつかの小さな変更も導入しました。

答え2

私の間違いは、キーボードから「-」記号を使用したことだと思います。これは、LaTeX で減算を行う誤った方法のようです。

私は \textminus を使用しましたが、完璧に機能しました。これは本当に初心者の問題でしたが、同じ問題に直面している人の助けになれば幸いです。

関連情報