Hi Jarmo,
1. I want to tangle to the default filename (derived from name of org
> file and programming language). However, the :tangle header argument
> only takes either "yes" or "filename." If the value is "yes", then
> the filename is deduced automatically. How can I specify a tangling
> directory and still have the default filename?
>
> There was a related question on stack exchange, but it did not use
> the default filename:
>
> https://emacs.stackexchange.com/questions/41806/org-babel-set-root-dir-for-tangled-files
You can specify a full path as the value of :tangle, but I don't know of a
way to specify only the directory.
As a workaround, you can also use emacs-lisp code as the value for :tangle,
so you could do something like this:
:tangle (concat "/some/dir/" (file-name-base (file-name-sans-extension
(buffer-file-name))) ".ext")
3. Is it possible to tangle automatically on (every) export? I always
> export, but I might forget to tangle, in which case export and tangle
> would be out of sync.
>
I use the following hook to tangle on every save. I find it indispensable :)
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook
'org-babel-tangle
'run-at-end 'only-in-org-mode)))
Also, check out my free book "Literate Config", where I discuss some more
tips about Literate Programming: https://leanpub.com/lit-config/read
Hope this helps,
--Diego