Rasmus <ras...@gmx.us> writes: > Alan, > >> alan.schm...@polytechnique.org writes: >> >>> Yes, this is not satisfactory (and the email and author is also >>> problematic in this regard). We need to know whether an option was set >>> in the file, independently of its default value. Is there a way to do >>> this? >> >> Thanks to Nicolas, I've been able to create a cleaner solution: we track >> some of the variables (ones for which we currently output something by >> default, typically because they are set or because we choose to always >> output something, like from-phone), and we only output the code if the >> variable was set in the file. Thus if nothing is set, the lco file >> wins. Note that with this approach, one can have a default in the lco >> that is overridden by the file, for instance for foldmarks or to display >> phone numbers. >> >> Regarding the name and email, we output it before the lco if they are >> not specified in the file, and after if they are. >> >> What do you think of this approach? Are there other variables we should >> track?
I spoke too early. For example this letter no longer works as usual: #+TITLE: test #+OPTIONS: foldmarks:nil * Letter my letter ** TO :TO: someone somewhere But this is because nil has a "new" meaning of "not set" as opposed to "false". Is this OK? On one hand nil usually means False in ox, I think (e.g. inline:nil → inline comments not posted), but on the other hand nil often means not set in Emacs. . . It is nice to having to look at the extra setkomavariable, but I'm not sure whether it's right. I also find something like this ghastly: (unless author-set (when author (format "\\setkomavar{fromname}{%s}\n" (org-export-data author info)))) (unless email-set (when email (format "\\setkomavar{fromemail}{%s}\n" email))) ^^^^^^^^^^^^^^^^^^^^^^ ;; Letter Class Option File (when lco [...] )) ;; Define "From" data. (when (and author author-set) (format "\\setkomavar{fromname}{%s}\n" (org-export-data author info))) (when from-address (format "\\setkomavar{fromaddress}{%s}\n" from-address)) (when phone-number (format "\\setkomavar{fromphone}{%s}\n" phone-number)) (when (and email email-set) (format "\\setkomavar{fromemail}{%s}\n" email)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ But perhaps it is the only way to get what you want. Also, with the current setup, I can only set email before or after. Why? What if I want to let PLACE be dependent on my LCO file versus my org file? –Rasmus -- When the facts change, I change my mind. What do you do, sir?