Есть хороший способ написать псевдокод?

11

Я хотел бы набросать какой-нибудь псевдокод, а затем поделиться им с другими людьми, которые не будут использовать emacs.

Есть ли хороший способ сделать это? Я пытаюсь сделать это в режиме орг, но это не делает отступ правильно, и т.д ...

theQman
источник
Кто-то написал псевдокод-режим , но на момент написания он предлагает только подсветку синтаксиса, без отступов.
dsedivec

Ответы:

4

Я не знаю о режиме псевдокода, тем более, что поддержка в режиме org.

Тем не менее, вы можете писать псевдокод в #+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
theldoria
источник
0

В случае, если вы согласитесь поделиться своим псевдокодом в формате LaTeX или PDF, вы можете использовать пакет, mintedчтобы смешать телетайп и хорошо выраженное выражение с математическим выражением LaTeX. Вот пример известного алгоритма Прима:

#+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, чтобы иметь подходящий макет). Чтобы легко написать псевдокод, вы, конечно, можете изменить mintedразделитель математических выражений и использовать yasnippetили латексный пользовательский блок, чтобы избавиться от этих параметров.

Фирмин Мартин
источник