Я не нашел, как удалить "= 0" после окончания for. Некоторые люди рекомендуют удалить \usepackage[noend]{algpseudocode}, но отступ в этом случае будет потерян. Есть ли другая альтернатива?
\documentclass[3p,times]{article}
\usepackage{algorithm,algorithmic}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}[H]
\caption{caption}\label{algorithm_1}
\begin{algorithmic}[1]
\STATE $\mathrm{initialization}$
\FOR{steps = $1$ to $N$}
\WHILE{condition 1}
\STATE compute solution
\If{condition}
\State do 1
\Else
\If{condition 2}
\State do 2
\Else
\State do 3
\EndIf
\EndIf
\ENDWHILE
\ENDFOR ~
\end{algorithmic}
\end{algorithm}
\end{document}
Я пытался использовать пакет algorithm2e, но это не решает проблему. пакет algpseudocode обязателен для отступа алгоритма
Ваш документ не компилируется. Выдает ошибку
Command \algorithmic already defined. }
После ошибки синтаксис только латекса проверяет остальную часть документа, не обязательно создавая разумный вывод. Нет смысла беспокоиться о случайных =0
, если в вашем документе все еще есть ошибки. Вместо этого вы должны исправить несовместимость пакетов.
Ваша комбинация синтаксисов из разных пакетов (\STATE
против \State
и т. д.) делает это немного сложным, но, похоже, работает следующее:
\documentclass{article}
\usepackage{float}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}[H]
\caption{caption}\label{algorithm_1}
\begin{algorithmic}[1]
\State $\mathrm{initialization}$
\For{steps = $1$ to $N$}
\While{condition 1}
\State compute solution
\If{condition}
\State do 1
\Else
\If{condition 2}
\State do 2
\Else
\State do 3
\EndIf
\EndIf
\EndWhile
\EndFor
\end{algorithmic}
\end{algorithm}
\end{document}
Затем это работало при использовании алгоритма x и использовании \State , \For, \While ... вместо \STATE, \FOR , \WHILE ...