Verwendet nur die halbe Seite / Rechte Seite der Seite leer

Verwendet nur die halbe Seite / Rechte Seite der Seite leer

Ich bin ganz neu bei Tex und versuche, mit LaTeX einen Algorithmus auf Overleaf zu schreiben, aber es wird nur die linke Hälfte der Seite verwendet, während der Rest der Zeile an die nächste Zeile gesendet wird.

Bildbeschreibung hier eingeben

Können Sie mir sagen, was ich falsch gemacht habe?


 \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}

Antwort1

Das Problem entsteht dadurch, dass die Strukturen in Ihrem Algorithmus nicht geschlossen werden. Das heißt, \IFs sollte ein schließendes haben \ENDIF, \WHILEs sollte ein schließendes haben \ENDWHILEund \FORs sollte ein schließendes haben \ENDFOR. Darüber hinaus können Sie keine doppelten Indizes der Form haben a_b_c; stattdessen suchen Sie wahrscheinlich nach a_{b_c}. Schließlich \cdotist ein mathematisches Symbol und kann daher nur innerhalb von $... verwendet werden $.

Bildbeschreibung hier eingeben

\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}

Ich habe auch einige kleinere Änderungen an Ihrem Codierstil vorgenommen, nur um Konsistenz zu gewährleisten.

Antwort2

Ich glaube, mein Fehler bestand darin, das Symbol "-" auf meiner Tastatur zu verwenden, was für die Subtraktion in LaTeX nicht korrekt zu sein scheint.

Ich habe \textminus verwendet und es hat perfekt funktioniert. Es war wirklich ein Anfängerproblem. Ich hoffe, dass es jedem hilft, der vor dem gleichen Problem steht.

verwandte Informationen