Betrachten Sie die folgende Org-Datei:
#+PROPERTY: tangle "init.el"
#+PROPERTY: noweb yes
* A
#+begin_src elisp
; initialization code
; this *must* come first
#+end_src
* B
#+begin_src emacs-lisp
<<support-functions>>
#+end_src
** Cool Stuff
#+begin_src elisp :noweb-ref "support-functions" :tangle no
(message "willkommen")
#+end_src
** Test
#+begin_src elisp :noweb-ref "support-functions" :tangle no
(message "hi")
#+end_src
ergibt
(message "willkommen")
(message "hi")
; initialization code
; this *must* come first
Das Entfernen des :tangle
Header-Arguments in einem der Blöcke in Cool Stuff
behebt das Problem, dupliziert jedoch den Code:
; initialization code
; this *must* come first
(message "hi")
(message "willkommen")
(message "hi")
Was muss ich tun, um ein korrektes Verhalten sicherzustellen? Ich weiß, ich könnte einfach das Verwirren des Dokuments ausschalten und alles jetzt haben, aber das fühlt sich eher nach einer Problemumgehung als nach einer Lösung an.
var
iables in org-babel verwendet, aber die anderen Antworten sind fast genau das, was ich tue.