LINUX.ORG.RU

[emacs][org-mode] Корректный экспорт noweb-разметки в latex

 ,


0

1

Как бы заставить org-mode понимать разметку noweb, с сохранением всех его плюшек (типа редактирования кода в нативном режиме)? Хочется видеть что-то вроде:

#+BEGIN_NOWEB perl :defines id1 id2 id3
Описание кода.

<<code chunk name>>=
while (<<cond>>) {
  <<do something>>
}
#+END_NOWEB

А в выходном документе получить:

@ Описание кода

<<code chunk name>>=
while (<<cond>>) {
  <<do something>>
}
@ %def id1 id2 id3

Есть ли какой-нибудь мануал по расширению org-mode?

Ответ на: комментарий от Zubok

Нет, не в ту. У org-mode есть собственная софтина для literate programming - babel вроде называется. Она поддерживает синтаксис noweb, но weave и tangle делает сама. Классический noweb помощнее будет, вот я хотел бы совместить его с org-mode заместо babel.

pyani_master
() автор топика
Ответ на: комментарий от recon88

Это значит, что, допустим, код на перле, расположенный посередине документа и внутри блоков #+begin_src perl ... #+end_src распознается емаксом именно как код на перле, и для его редактирования будут использованы возможности cperl-mode. За пределами этого блока ни подсветка, ни хоткеи из cperl-mode работать не будут.

pyani_master
() автор топика
Ответ на: комментарий от recon88

У меня работает из коробки - поставил emacs starter kit.

pyani_master
() автор топика
Ответ на: комментарий от recon88

Да, кусок кода можно редактировать в отдельном буфере по нажатию C-c '.

pyani_master
() автор топика
Ответ на: комментарий от pyani_master

>Классический noweb помощнее будет, вот я хотел бы совместить его с org-mode заместо babel.

Ну это тогда писать расширение самому. Например, собирать в буфере области #+BEGIN_NOWEB #+END_NOWEB и отдавать их в процесс, а назад забирать результат (если он необходим).

На вопрос, есть ли тьюториал по написанию расширений и где он лежит, не отвечу. Проще взять для начала код какого-нибудь модуля экспорта, например, и глянуть внутрь. Часто бывает так, что документация не поспевает за исходным кодом, а иногда и просто отсутсвует.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.