自定义伪代码样式

自定义伪代码样式

我想在乳胶中编写一个自定义伪代码,风格类似于下面的例子:在此处输入图片描述

我无法使用现有的伪代码包来获得我想要的东西,还有其他方法可以获得具有明确定义的对齐的这种设置吗?

感谢您的回答

答案1

以下是如何排版伪代码的两个示例。

第一个例子使用 cryptocode 包(https://www.ctan.org/pkg/cryptocode) 为编写伪代码提供了很大的灵活性。语法高亮的渲染速度有点慢,因此您可能需要使用草稿模式或进行手动高亮。

\documentclass{article}

\usepackage{cryptocode}
\begin{document}

\procedure[mode=text,keywords={Given,DO,While,END While,END DO},syntaxhighlight=auto]{Algorithm name.}{
Given: \\
$(A,B,C,D)$ -- Some parameters. \\
$n$ -- Another parameter. \\
$k$ -- Yet another pamareter. \\
$N$ -- Yet another pamareter. \\
\\
DO: \\
\textbf{1.} First step description:\\
\t for $j=1:n$\\
\t Loop definition\\
While(condition $<N$) \\
\t \textbf{2.} Second step description. \\
\vdots \\
\\
END While \\
END DO \\
\textbf{6.} Return (some variable)
}


\end{document}

得出以下结果:

在此处输入图片描述

或者,您可以使用 listings 包,它提供了大量选项来自定义算法的呈现方式。这是一个相当简单的配置

\documentclass{article}

\usepackage{listings}

\begin{document}

\lstset{
    emph={Given,DO,While,END},
    emphstyle={\bfseries}
}

\begin{lstlisting}[title={\bf\underline{Algorithm name.}}]
Given: 
(A,B,C,D) -- Some parameters. 
n -- Another parameter. 
k -- Yet another pamareter. 
N -- Yet another pamareter. 

DO: 
1. First step description:
    for j=1:n
    Loop definition
While(condition <N) 
    2. Second step description. 
...

END While 
END DO 
6. Return (some variable)
\end{lstlisting}

\end{document}

结果是

在此处输入图片描述

相关内容