我想在乳胶中编写一个自定义伪代码,风格类似于下面的例子:。
我无法使用现有的伪代码包来获得我想要的东西,还有其他方法可以获得具有明确定义的对齐的这种设置吗?
感谢您的回答
答案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}
结果是