Hi Eric, Eric Schulte wrote: > "Sebastien Vauban" <wxhgmqzgw...@spammotel.com> writes: >> Eric Schulte wrote: >>> Emacs Lisp is an exception in terms of colname processing, it has default >>> header arguments set to pass column names through to the code block, where >>> the processing may be done trivially in Emacs Lisp. >> >> OK, but I don't understand the precedence of header arguments. I thought >> that a header argument given on the code block preempted all the other >> values (system-wide default for all languages, language defaults, file-wide >> arguments, and subtree arguments). >> >> Why isn't this true here as well? > > That is what is happening here, although combinations of :hlines and > :colnames can be tricky. Especially weird, is that if you want to *unset* a > header argument which is set at a higher level, you need to set it to '(), > as in ":colnames '()".
Much clearer, but not yet crystal-clear for me... Let me explain. AFAICT, there were 5 possibles values of the ":colnames" header argument: - no header argument :: (default for all languages but Emacs Lisp) - ":colnames no" :: (default for Emacs Lisp code blocks) - ":colnames yes" :: Tells Org Babel that your first row contains column names. - ":colnames <LIST>" :: Specifies to use <LIST> as column names. - ":colnames nil" :: Same as ":colnames yes". Right? Now, indeed, your trick with ":colnames '()" (or even ":colnames ()"...) does work well for Emacs-Lisp... Though, I thought that "()" was equivalent to "nil", but it seems not to be the case, then. Is it because of some sort of type coercion, that would convert nil as a string or something along such lines? Extra question: when do we have to use such a trick? When the value can be a list of things? If yes, why are you talking of ":hlines" -- there is no list argument there? Best regards, Seb -- Sebastien Vauban