Considere el siguiente archivo Org:
#+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
rendimientos
(message "willkommen")
(message "hi")
; initialization code
; this *must* come first
Sin embargo, eliminar el :tangleargumento de encabezado en uno de los bloques Cool Stuffsoluciona el problema, pero duplica el código:
; initialization code
; this *must* come first
(message "hi")
(message "willkommen")
(message "hi")
¿Qué debo hacer para garantizar un comportamiento correcto? Sé que podría simplemente desactivar el enredo para el documento y hacer que todo sea nuevo, pero esto se siente como una solución alternativa en lugar de una solución.

variables en org-babel, pero las otras respuestas son casi exactamente lo que estoy haciendo.Respuestas:
Creo que el problema es simplemente que está utilizando dos formas diferentes de especificar el idioma de los bloques de origen:
emacs-lisppara algunos yelisppara otros. Parece que todos loselispbloques están enredados antes que todosemacs-lisp(¿orden alfabético?). Si usa uno u otro de manera sistemática, se respetará el orden de los bloques en su archivo:enredos a
fuente
Hay dos problemas aquí. La primera es que está configurando la
tanglepropiedad en todo el documento. Cuando hace esto, necesita establecer cada bloque que sea un bloque noweb como:tangle no. Es mucho más fácil establecer latanglepropiedad en un bloque y usarla como marco para todo el documento enredado. Puedes ver cómo funciona esto en mi ejemplo a continuación.El segundo problema son sus declaraciones de tipo fuente inconsistentes. los
elispbloques salen primero porque antes se juntanemacs-lisp. Todos deberían tener la misma etiqueta si son del mismo idioma y van en el mismo archivo (hay excepciones, por supuesto, como incrustar SQL en PHP o algo así, pero seguir mi primera sugerencia ayudará a evitar problemas.Enredos a
fuente