Ненумерованные строки в алгоритме

Ненумерованные строки в алгоритме

Мой вопрос похож наВот этот, мне нужно пропустить номер для некоторых строк алгоритма. Однако решение из этого вопроса не работает для меня. Как я могу отключить номера для некоторых строк с помощью пакета algorithmic?

Вот что я попробовал:

\documentclass{article}
\usepackage{algorithmic} 
\usepackage{algorithm} 

\def\NoNumber#1{{\def\alglinenumber##1{}\State #1}\addtocounter{ALG@line}{-1}}
\begin{document}

\begin{algorithmic}[1]
\STATE Compute $Pr(X_i < x)$ and $Pr(x < X_i)$ for all $i = 1, \dots, M$ and
\FOR {$i = 1, \dots, n$}
\STATE with a number
\NoNumber{ without number}
\ENDFOR
\end{algorithmic}

\end{document}

решение1

Одним из вариантов было бы использование более универсальногоalgorithmicxпакет, с его algcompatibleформатом (позволяющим использовать algorithmicсинтаксис); можно использовать \STATExдля ненумерованных строк:

\documentclass{article}
\usepackage{algcompatible}

\begin{document}

\begin{algorithmic}[1]
\IF{some condition is true}
\STATE do some processing
\ELSIF{some other condition is true}
\STATEx do some different processing
\ELSIF{some even more bizarre condition is met}
\STATEx do something else
\ELSE
\STATE do the default actions
\ENDIF
\end{algorithmic}

\end{document}

введите описание изображения здесь

Конечно, использование algcompatibleбыло предложено только в том случае, если у вас уже есть алгоритмы, написанные с использованием синтаксиса, algorithmicи вы хотите перейти на него algorithmicxбез серьезных травм; если же вы только начинаете писать свои алгоритмы, то используйте формат algpseudocodeс самого начала:

\documentclass{article}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithmic}[1]
\If{some condition is true}
\State do some processing
\ElsIf{some other condition is true}
\Statex do some different processing
\ElsIf{some even more bizarre condition is met}
\Statex do something else
\Else
\State do the default actions
\EndIf
\end{algorithmic}

\end{document}

решение2

Добавьте пустую строку для переноса строки, а затем просто напишите все, что захотите, в следующей строке:

\documentclass{article}
\usepackage{algorithmic} 
\usepackage{algorithm} 

\def\NoNumber#1{{\def\alglinenumber##1{}\State #1}\addtocounter{ALG@line}{-1}}
\begin{document}

\begin{algorithmic}[1]
\STATE Compute $Pr(X_i < x)$ and $Pr(x < X_i)$ for all $i = 1, \dots, M$ and
\FOR {$i = 1, \dots, n$}
\STATE with a number

without number
\ENDFOR
\end{algorithmic}

\end{document}

введите описание изображения здесь

Связанный контент