16

我正在使用 org-babel 进行识字程序。我的来源的结构是这样的,

-imports
-utility fns
-game structure
 - detailed explanations

这是代码的正常结构,我想做的是把实用程序 fns 的解释移到最后,这样它就不会首先出现在生成的 pdf 文件中。现在这可以用 noweb 扩展来完成,但问题是当你有很多小功能时,我必须添加一个具有唯一名称的 src_block 向下滚动文件并在文件中添加对它的引用,这真的很烦人. 有没有办法命名一个部分中的所有 src_blocks?假设本节中的所有代码都进入块 A。

4

1 回答 1

11

您可以为多个块赋予相同的名称。例如,我使用 org-tangle 生成我的 .emacs 文件,在 org 文件的顶部,我有一个主模板,看起来像这样:

#+begin_src emacs-lisp :tangle "/path/to/.emacs" :comments both :noweb tangle
<<generated-file-warning>
<<includes>>
<<definitions>>
<<settings>>
<<generated-file-warning>
#+end_src

在此之下,我的大纲带有如下源块:

* extensions
** yasnippet

#+name: early-includes
#+begin_src emacs-lisp
(require 'yasnippet)
(yas/initialize)
#+end_src

#+name: settings
#+begin_src emacs-lisp
(yas/load/directory "/path/to/my/snippets")
#+end_src

注意:对于旧版本的 org-mode,您可能需要使用#+srcname:而不是#+name:

您还可以创建一个名为 的属性noweb-ref,它将相同的名称应用于子树中的所有源块。

于 2011-12-15T08:31:43.830 回答