Я хотел бы набросать какой-нибудь псевдокод, а затем поделиться им с другими людьми, которые не будут использовать emacs.
Есть ли хороший способ сделать это? Я пытаюсь сделать это в режиме орг, но это не делает отступ правильно, и т.д ...
Я хотел бы набросать какой-нибудь псевдокод, а затем поделиться им с другими людьми, которые не будут использовать emacs.
Есть ли хороший способ сделать это? Я пытаюсь сделать это в режиме орг, но это не делает отступ правильно, и т.д ...
Ответы:
Я не знаю о режиме псевдокода, тем более, что поддержка в режиме 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
В случае, если вы согласитесь поделиться своим псевдокодом в формате 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
или латексный пользовательский блок, чтобы избавиться от этих параметров.