Мой вопрос похож наВот этот, мне нужно пропустить номер для некоторых строк алгоритма. Однако решение из этого вопроса не работает для меня. Как я могу отключить номера для некоторых строк с помощью пакета 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}