算法中未编号的行

算法中未编号的行

我的问题类似于这个,我需要跳过算法中某些行的数字。但是该问题的解决方案对我来说不起作用。如何使用包禁用某些行的数字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,才建议使用;如果您刚开始编写算法,那么从一开始就使用格式:algorithmicalgorithmicxalgpseudocode

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

在此处输入图片描述

相关内容