如何在 itemize/enumerate 中插入与项目内联的算法

如何在 itemize/enumerate 中插入与项目内联的算法

我正在使用 itemize 列出几种算法,并且我想使用算法包来显示该算法。

但是,当我在某个项目中使用 \begin{algorithm} 时,该算法会延伸到整个页面的宽度,而我希望它与项目的开始保持一致。

我该怎么做呢?

作为参考,这是我的错误乳胶的样子:

\begin{itemize}
    \item this algorithm .....
    \begin{algorithm}
    \caption{Algorithm 1}\label{alg:cap}
    \begin{algorithmic}
    \state{algorithm step}
    \end{algorithmic}
    \end{algorithm}
    \item ...
\end{itemize}

答案1

尽管您希望算法固定在列表中,但您使用的是浮动环境。因此,您可以省略算法环境:

\documentclass{article}
\usepackage{algorithm, algpseudocodex}
\usepackage{enumerate}
\usepackage{caption}

\begin{document}
\begin{itemize}
    \item this algorithm .....
    \item Algorithm 1:\label{alg:cap}
          \begin{algorithmic}
            \State $i \gets 10$
            \If{$i\geq 5$} 
              \State $i \gets i-1$
            \Else
              \If{$i\leq 3$}
                \State $i \gets i+2$
              \EndIf
            \EndIf 
          \end{algorithmic}
    \item ...
\end{itemize}
\end{document}

在此处输入图片描述


编辑:上面和下面有些行:

\documentclass{article}
\usepackage{algorithm, algpseudocodex}
\usepackage{enumitem}
\usepackage{caption}

\begin{document}
\begin{itemize}
    \item this algorithm .....
    \item Algorithm 1:\label{alg:cap}
          \item[] elegant line above
          \begin{algorithmic}
            \State $i \gets 10$
            \If{$i\geq 5$} 
              \State $i \gets i-1$
            \Else
              \If{$i\leq 3$}
                \State $i \gets i+2$
              \EndIf
            \EndIf 
          \end{algorithmic}
          \item[] elegant line below
    \item ...
\end{itemize}
\end{document}

在此处输入图片描述

如果您想调整行距等,请参阅文档枚举项

相关内容