Sequência de controle indefinida.\BState ->\State \algbackskip \BState

Sequência de controle indefinida.\BState ->\State \algbackskip \BState

Recebi o erro ao criar um pseudocódigo para meu relatório. A seguir está meu código em LaTeX. Isso fornece uma mensagem "sequência de controle indefinida \BState-> \State \algbackskip \BState". Por favor, me ajude com isso.

\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}[H]
  \begin{algorithmic}[1]
    \BState \emph{\textbf{Key(s)}}:
  \end{algorithmic}
\end{algorithm}
\end{document}

Responder1

A parte que está causando esse problema é um subdefinido \@algbackskip(que faz parte do \BState).

O principalalgorithmicxpacotecódigo -algorithmicx.sty- contém definições para \@algbackskip, mas foi comentado:

%\def\algbackskip{\hskip-\ALG@thistlm}

Minha suposição é que isso pode ser um erro e deve ser corrigido.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage[noend]{algpseudocode}

\makeatletter
% Reinsert missing \algbackskip
\def\algbackskip{\hskip-\ALG@thistlm}
\makeatother

\begin{document}

\begin{algorithmic}[1]
  \State something
  \If{this}
    \State do this
    \BState do that
  \EndIf
  \BState now this
\end{algorithmic}

\end{document}

informação relacionada