这是我在 tex.stackexchange 上的第一篇帖子,因此如有任何违反正确提问之处,请原谅。
我目前正在写一篇关于一个包含大量代码的项目的论文。我想将代码中最重要的(也是“天才的”)部分作为伪代码添加到论文中,并希望将它们列在我的常规中\listoffigures
,最好能提示一下,这些都是伪代码片段。
我的目的是与此类似:
图表列表
- 一些普通人物
- 另一个正常图形
- beautifulAlgorithm(伪代码)
伪代码片段的名称应该是“beautifulAlgorithm”,而不是“beautifulAlgorithm (PseudoCode)”。
我正在使用 TexMaker、MikTex 和article
环境。(以防万一这对任何人来说都是必要或有用的信息)
答案1
伪代码取自此处的其他地方。由于您没有提供 MWE,因此我不得不猜测一些内容。该包caption
通过模仿其他环境中的字幕来帮助您。伪代码的默认行为(布局)没有改变(至少在我的示例中没有改变)。
% arara: pdflatex
% arara: pdflatex
\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\usepackage{caption}
\begin{document}
\listoffigures
\begin{figure}[h] % [h] just to get it behind the list of figures.
\centering
\rule{3cm}{2cm}
\caption{1. Figure}
\end{figure}
\begin{algorithm}
\captionof{figure}[beautifulAlgorithm (PseudoCode)]{beautifulAlgorithm}
\begin{algorithmic}[1]
\Procedure{MyProcedure}{}
\State $\textit{stringlen} \gets \text{length of }\textit{string}$
\State $i \gets \textit{patlen}$
\If {$i > \textit{stringlen}$} \Return false
\EndIf
\State $j \gets \textit{patlen}$
\If {$\textit{string}(i) = \textit{path}(j)$}
\State $j \gets j-1$.
\State $i \gets i-1$.
\State \textbf{goto} \emph{loop}.
\State \textbf{close};
\EndIf
\State $i \gets i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$.
\State \textbf{goto} \emph{top}.
\EndProcedure
\end{algorithmic}
\end{algorithm}
\begin{figure}
\centering
\rule{3cm}{2cm}
\caption{2. Figure}
\end{figure}
\end{document}