Чи є приємний спосіб написати псевдокод?


11

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

Чи є приємний спосіб це зробити? Я намагаюся робити це в org-режимі, але це не відступає належним чином тощо.


Хтось написав режим псевдокоду , але на цей час він пропонує лише виділення синтаксису, без відступів.
dsedivec

Відповіді:


4

Я не знаю псевдокодового режиму, тим більше підтримка цього в org-режимі.

Однак ви можете писати псевдо-код в #+BEGIN_EXAMPLEблоки, безумовно, без відступів, або ви вирішили використовувати справжню мову як базовий синтаксис і псевдо-код в цьому і отримуєте відступ і досить синтаксичне виділення. Рубі може бути хорошим кандидатом, або старим добрим 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. Ось приклад відомого алгоритму Прима:

#+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або латексний спеціальний блок, щоб позбутися цих груп варіантів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.