페이지의 절반만 사용 / 페이지의 오른쪽이 비어 있음

페이지의 절반만 사용 / 페이지의 오른쪽이 비어 있음

저는 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를 사용했고 완벽하게 작동했습니다. 정말 초보자 문제였습니다. 동일한 문제에 직면한 모든 사람에게 도움이 되기를 바랍니다.

관련 정보