Comment spécifier les arguments d'en-tête par défaut dans les blocs de code orgmode

19

Je cherche à définir des arguments d'en-tête par défaut pour les blocs de code dans mon fichier org, comme ceci:

#+PROPERTY: header-args  :session *my_python_session*
#+PROPERTY: header-args  :results silent
#+PROPERTY: header-args  :tangle yes

Mes blocs de code ressemblent à ceci:

#+BEGIN_SRC python
  import pandas as pd
#+END_SRC

Cependant, lorsque j'appelle à org-babel-tanglepartir de ce tampon, j'obtiens Tangled 0 codes blocks from filename.org . Lorsque j'ajoute :tangle yesà la fin de la #+BEGIN_SRCligne, le bloc de code est exporté lorsque j'appelle org-babel-tangle.

Je m'attendrais à ce que je n'ai pas besoin de définir :tangle yessur chaque bloc de code. Qu'est-ce que je fais mal?

andreas-h
la source

Réponses:

24

Vous devriez avoir chaque argument d'en-tête sur une seule ligne:

#+PROPERTY: header-args :session *my_python_session* :results silent :tangle yes

Avoir plusieurs #+PROPERTYlignes est accepté, mais pas de la façon dont vous essayez de le faire.

Dans le manuel Org ( 7.1 Propriété syntaxe ):

Si vous souhaitez ajouter à la valeur d'une propriété existante, ajoutez un «+» au nom de la propriété. Les résultats suivants donnent à la propriété «var» la valeur «foo = 1 bar = 2».

#+PROPERTY: var  foo=1
#+PROPERTY: var+ bar=2

Donc, puisque header-argsc'est la propriété et :session, :resultset :tanglesont ses valeurs, elle devrait être:

#+PROPERTY: header-args :session *my_python_session*
#+PROPERTY: header-args+ :results silent
#+PROPERTY: header-args+ :tangle yes

Mais il est plus facile d'avoir une seule ligne IMO.

undostres
la source
pour ajouter des en-têtes org-babel pour une langue spécifique, le plus va après le nom de la langue par exemple,:header-args:shell+: :dir /workdir
jfs