有写伪代码的好方法吗?


11

我想勾勒出一些伪代码,然后与不会使用emacs的其他人共享。

有一个不错的方法吗?我正在尝试以组织模式进行操作,但是缩进不正确,等等。


有人编写了伪代码模式,但在撰写本文时,它仅提供语法高亮显示,没有缩进。
dsedivec

Answers:


4

我不知道伪代码模式,更不用说在组织模式下对它的支持。

但是,您可以#+BEGIN_EXAMPLE确实在块中编写伪代码,而不必缩进,或者在其中确定一种真正的语言作为基本语法和伪代码,然后获得缩进和漂亮的语法突出显示。Ruby可能是不错的选择,或者是很好的旧C / C ++,也许是Java ...

它看起来像这样:

#+HEADER: :exports both :results output
#+BEGIN_SRC ruby
class Pseudoclass
  def pseudofunction(items)
    add five to each item
  end
end

pseudoinstance = new Pseudoclass instance
call pseudofunction of pseudoinstance with list 2, 3, 4
#+END_SRC

0

如果您同意以LaTeX或PDF格式共享伪代码,则可以使用该软件包minted将电传打字和缩进表达式与LaTeX数学表达式混合使用。这是众所周知的Prim算法的示例:

#+begin_export latex
\begin{minted}[escapeinside=||,mathescape=true]{text}
Prim's Algorithm(|$V, s$|)
|$T = \varnothing$|
|$U = \{ s \}$|
while (|$U \neq V$|)
    let |$(u, v)$| be the lowest cost edge in the cut |$(U, V-U)$|
    |$T = T \cup \{(u, v)\}$|
    |$U = U \cup \{v\}$|
\end{minted}
#+end_export

它呈现为 在此处输入图片说明

如果只希望共享此伪代码段,则只需选择此块并调用,org-latex-export-as-latex或者org-latex-export-to-pdf取决于要导出的格式(您可能需要稍微修改org-mode选项以使布局令人满意)。要轻松编写伪代码,您当然可以更改minted数学表达式分隔符,并使用yasnippet或Latex自定义块来摆脱这些选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.