Re: [O] [PATCH] ox-html: Restore wrongly omitted table attributes under HTML5.
Hello, Kodi Arfer k...@arfer.net writes: I don't think I can. I'm not clear about the relationship between maint and master in general, maint is for bugfixes only. master is for new features. but it looks like maint doesn't have the bug my patch is supposed to fix, because it doesn't treat an HTML5 doctype specially at all. You're right. Never mind then. One nitpick. It is more explicit to use: (and (not (org-html-html5-p info)) (plist-get info :html-table-attributes)) since you are using the returned value. Sure, I can change that. Should I base the patch off master again? I made the change before applying your patch to master. Thank you again. Also, please consider signing FSF papers for more contributions to Emacs. Regards, -- Nicolas Goaziou
Re: [O] Bug: org-edit-special won't let me edit a latex snippet
Hi Nicolas, Nicolas Richard address@hidden writes: I'm at commit 830e231ef1da5c5a1ab760a6a059551841952610, and notice the following unexpected behaviour. Starting from emacs -Q -L ~/sources/org-mode/lisp/ : M-x org-mode insert l and hit SPC hit C-c ' = user-error: No special environment to edit here Fixed, thanks! -- Bastien It seems to me that in 8.0.3 this is still an issue. Both latex and quote blocks gives the response: user-error: No special environment to edit here Regards Gustav
Re: [O] [PATCH] (update) Add :caption attribute to #+ATTR_LATEX property
Hello, feng shu tuma...@gmail.com writes: This is the updated patch of Add :caption attribute to #+ATTR_LATEX property If possible, please include it to master Thanks for your patch. I agree that #+CAPTION isn't ready for complex caption commands (nor that it should), so a :caption attribute may be useful. Though, it must be documented in the manual (see 12.7.4 LaTeX specific attributes). In particular, documentation should insist on the fact that: 1. :caption attribute has precedence over #+caption keyword 2. :caption attribute is only meaningful special caption commands, i.e., this isn't the standard way to set a caption in Org. 3. This is a raw command, nothing in it will be interpreted by Org. Here are some comments about the code: + (caption-from-attr-latex (plist-get (org-export-read-attribute :attr_latex element) :caption))) You can use the following slightly shorter sexp: (caption-from-attr-latex (org-export-read-attribute :attr_latex element :caption)) +(if (and caption-from-attr-latex (not (equal caption-from-attr-latex ))) + (concat caption-from-attr-latex \n) + (cond + ((and (not main) (equal label-str ))) + ((not main) (concat label-str \n)) + ;; Option caption format with short name. + (short (format \\caption[%s]{%s%s}\n + (org-export-data short info) + label-str + (org-export-data main info))) + ;; Standard caption format. + (t (format \\caption{%s%s}\n label-str (org-export-data main info))) Here you can include the then part in the `cond', and use `org-string-nw-p': (cond ((org-string-nw-p caption-from-attr-latex) (concat caption-from-attr-latex \n)) ((and (not main) (equal label-str )) ) ...) (defun org-latex-guess-inputenc (header) Set the coding system in inputenc to what the buffer is. @@ -1655,7 +1658,7 @@ used as a communication channel. (cond ((and (not float) (plist-member attr :float)) nil) ((string= float wrap) 'wrap) ((string= float multicolumn) 'multicolumn) - ((or float (org-element-property :caption parent)) + ((or float (org-element-property :caption parent) (plist-get attr :caption)) Be careful here: (plist-get attr :caption) will be non-nil if :caption is set to the empty string. It may be bulkier to use: (org-string-nw-p (plist-get attr :caption)) 'figure (placement (let ((place (plist-get attr :placement))) @@ -2333,7 +2336,7 @@ This function assumes TABLE has `org' as its `:type' property and ((and (not float) (plist-member attr :float)) nil) ((string= float sidewaystable) sidewaystable) ((string= float multicolumn) table*) - ((or float (org-element-property :caption table)) + ((or float (org-element-property :caption table) (plist-get attr :caption)) Ditto. Regards, -- Nicolas Goaziou
Re: [O] Beamer handouts, pgfpages, no love
On Jun 30, 2013 7:22 PM, Nicolas Goaziou n.goaz...@gmail.com wrote: James Harkins jamshar...@gmail.com writes: This example does reproduce the issue where the slides are rendered at twice their normal size, instead of half. (I installed TexLive 2012 -- I'm not using the outdated tex packages from Ubuntu.) The generated LaTeX code looks correct. Why do you think it isn't? I never said that. I was only reporting some testing results. And if there's a problem, couldn't it be related to pgf instead of Org? Yes, that's quite likely. Just reporting some testing results. hjh
Re: [O] [PATCH] (update) Add :caption attribute to #+ATTR_LATEX property
Hi version 3 patch, add document about :caption attribute. On Sun, Jun 30, 2013 at 7:46 PM, Nicolas Goaziou n.goaz...@gmail.comwrote: Hello, feng shu tuma...@gmail.com writes: This is the updated patch of Add :caption attribute to #+ATTR_LATEX property If possible, please include it to master Thanks for your patch. I agree that #+CAPTION isn't ready for complex caption commands (nor that it should), so a :caption attribute may be useful. Though, it must be documented in the manual (see 12.7.4 LaTeX specific attributes). In particular, documentation should insist on the fact that: 1. :caption attribute has precedence over #+caption keyword 2. :caption attribute is only meaningful special caption commands, i.e., this isn't the standard way to set a caption in Org. 3. This is a raw command, nothing in it will be interpreted by Org. Here are some comments about the code: + (caption-from-attr-latex (plist-get (org-export-read-attribute :attr_latex element) :caption))) You can use the following slightly shorter sexp: (caption-from-attr-latex (org-export-read-attribute :attr_latex element :caption)) +(if (and caption-from-attr-latex (not (equal caption-from-attr-latex ))) + (concat caption-from-attr-latex \n) + (cond + ((and (not main) (equal label-str ))) + ((not main) (concat label-str \n)) + ;; Option caption format with short name. + (short (format \\caption[%s]{%s%s}\n + (org-export-data short info) + label-str + (org-export-data main info))) + ;; Standard caption format. + (t (format \\caption{%s%s}\n label-str (org-export-data main info))) Here you can include the then part in the `cond', and use `org-string-nw-p': (cond ((org-string-nw-p caption-from-attr-latex) (concat caption-from-attr-latex \n)) ((and (not main) (equal label-str )) ) ...) (defun org-latex-guess-inputenc (header) Set the coding system in inputenc to what the buffer is. @@ -1655,7 +1658,7 @@ used as a communication channel. (cond ((and (not float) (plist-member attr :float)) nil) ((string= float wrap) 'wrap) ((string= float multicolumn) 'multicolumn) - ((or float (org-element-property :caption parent)) + ((or float (org-element-property :caption parent) (plist-get attr :caption)) Be careful here: (plist-get attr :caption) will be non-nil if :caption is set to the empty string. It may be bulkier to use: (org-string-nw-p (plist-get attr :caption)) 'figure (placement (let ((place (plist-get attr :placement))) @@ -2333,7 +2336,7 @@ This function assumes TABLE has `org' as its `:type' property and ((and (not float) (plist-member attr :float)) nil) ((string= float sidewaystable) sidewaystable) ((string= float multicolumn) table*) - ((or float (org-element-property :caption table)) + ((or float (org-element-property :caption table) (plist-get attr :caption)) Ditto. Regards, -- Nicolas Goaziou 0001-Add-caption-attribute-to-ATTR_LATEX-property.patch Description: Binary data
[O] Special Properties when matching for Properties in a search
Hi list! When matching for tags and properties using C-c / m there is the option to match for Special Properties. Is there a complete list of these special properties somewhere? I was thinking that 7.2 Special Properties in the manual would be that list, but then noticed a property possible to use for searches, but not available in that list (the LEVEL-property). Is that property just missing from there? /Gustav
[O] Calling org babel to each row in a table
I often need to transform a table or list of values into a block of text. For example, if I have a list of 4 files that I want to generate a SQL script for. After hunting around, this is the best I came up with: #+name: table | File | | a| | b| | c| | d| #+name: template #+begin_src org :results verbatim :var name=abc DROP TABLE $name CREATE TABLE $name (name varchar(100)) BULK INSERT $name FROM '\\1.1.1.1\$name.txt' ... #+end_src #+name: apply-template #+begin_src emacs-lisp :results silent :var table=() (let (result-table) (dolist (line (cdr table)) (setq result-table (cons (concat #+call: template(\ (car line) \) :results raw drawer) result-table))) (mapconcat 'identity (nreverse result-table) \n)) #+end_src #+call: apply-template(table) :results org :exports both #+RESULTS: apply-template(table):results org :exports both #+BEGIN_SRC org #+END_SRC Is there a more straightforward method to apply this type of transformation? Ideally I would skip the emacs-lisp block and use some syntax to apply a org-babel block for each row in a table. It sounded similar to this: http://thread.gmane.org/gmane.emacs.orgmode/69326/focus=69340*, *but that didn't have a full example for me to build off of Is there a more straightforward to accomplish this transformation? Thanks, Joe
[O] Standalone hyperlinked images in HTML export
The manual explains in Images in HTML export that you can make an image a hyperlink like this: [[file:highres.jpg][file:thumb.jpg]] where thumb.jpg becomes the img 'src' and highres.jpg becomes the a 'href'. One might infer it should also be possible to link to something other than an image, like this: [[http://gnu.org][http://example.com/gnu-head.jpg]] For example, try exporting this file: #+begin_src org Some initial text. [[http://example.com/a.png]] Some text between images 1 and 2. [[http://eeyup.com][http://example.com/b.png]] Some text between images 2 and 3. http://example.com/c.png Some trailing text. #+end_src You do indeed get a href=http://eeyup.com;img src=http://example.com/b.png; alt=b.png //a in the output, but the exporter doesn't regard the image as standalone, so it doesn't get put in a div (or, in HTML5 mode, figure) like the others, and if you add a #+CAPTION, no caption will be included. The attached patch to master shows how this can be fixed, but I hesitate to recommend applying it because two new bugs are immediately apparent: 1. Figure numbers are screwed up. If you add #+CAPTIONs to each image in the above file, the figure numbers go Figure 1, Figure 3, Figure 4. 2. The a ... ... /a gets wrapped around the whole div or figure, not just the img. This breaks markup validity (div isn't allowed in a) and makes the caption, if you have one, into a giant hyperlink. I think I'm going to stop working on this issue for now, but at least what I've done could be helpful for anybody else who wants to go further down the rabbit hole. P.S. I sent a request for a copyright-assignment form earlier today. From fe74b3507795f2664291250250bc24b943f8f12b Mon Sep 17 00:00:00 2001 From: Kodi Arfer g...@arfer.net Date: Sun, 30 Jun 2013 15:40:33 -0400 Subject: [PATCH] ox-html: Allow standalone images to be hyperlinked * lisp/ox-html.el (org-html-standalone-image-p): If the link is the description of another link, look one more element up the tree to find `paragraph'. * lisp/ox.el (org-export-inline-image-p): When the description is a link, test the description instead of the path. TINYCHANGE --- lisp/ox-html.el | 9 ++--- lisp/ox.el | 38 -- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index 4753e66..4091bcc 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -2579,9 +2579,12 @@ standalone images, do the following. \(org-element-property :caption paragraph\)\)\) (let ((paragraph (case (org-element-type element) (paragraph element) - (link (and (org-export-inline-image-p - element org-html-inline-image-rules) -(org-export-get-parent element))) + (link (let ((x (and (org-export-inline-image-p + element org-html-inline-image-rules) + (org-export-get-parent element + (if (eq (org-element-type x) 'link) + (org-export-get-parent x) + x))) (t nil (when (eq (org-element-type paragraph) 'paragraph) (when (or (not (and (boundp 'org-html-standalone-image-predicate) diff --git a/lisp/ox.el b/lisp/ox.el index 08fbddd..9179576 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -3919,20 +3919,30 @@ type is TYPE. The function will return a non-nil value if any of the provided rules is non-nil. The default rule is `org-export-default-inline-image-rule'. -This only applies to links without a description. - (and (not (org-element-contents link)) - (let ((case-fold-search t) - (rules (or rules org-export-default-inline-image-rule))) - (catch 'exit - (mapc - (lambda (rule) - (and (string= (org-element-property :type link) (car rule)) - (string-match (cdr rule) - (org-element-property :path link)) - (throw 'exit t))) - rules) - ;; Return nil if no rule matched. - nil +This only applies to links without a description, unless the +description is itself a link, as for hyperlinked images in HTML. +In this case, the test is applied to the description instead of +the path. + (let* ((cs (org-element-contents link)) + (dlink (and (= (length cs) 1) + (eq (org-element-type (car cs)) 'link) + (car cs +(when (or dlink (not (org-element-contents link))) + (message dlink: %s (show-org-element dlink)) + (when dlink +(setq link dlink)) + (let ((case-fold-search t) +(rules (or rules org-export-default-inline-image-rule))) +(catch 'exit + (mapc + (lambda (rule) + (and (string= (org-element-property :type link) (car rule)) + (string-match (cdr rule) +(org-element-property :path link)) + (throw 'exit t))) + rules) + ;; Return nil if no rule matched. + nil) (defun org-export-resolve-coderef (ref info) Resolve a code reference
[O] how to make forward-paragraph stop at the end of every normally-defined paragraph
Here is an example: === a par :LOGBOOK: - Note taken on [2013-06-30 Sun 13:32] \\ test :END: another par # another par # another par another par === Where forward-paragraph stops is at the dots: === a par . :LOGBOOK: - Note taken on [2013-06-30 Sun 13:32] \\ test .:END: another par . # another par # another par another par . === Sometimes it does not stop at :END: but stops at the end of the following paragraph. That is not useful for me when I want to navigate (YMMV). There is no way I can predict that even if it makes sense in the parser's theory. I am aware that the parser has its own logic, but stopping on the last line of a drawer is not something that I would predict and stopping after the paragraph after the drawer is too long a jump for me as a user. Also, stopping after a series of commented paragraphs instead of between them is not useful to me as a user. I want each one to be a separate paragraph because that is the way I comment things. I do not restrict myself to a single commented paragraph; there is a semantic distinction between two commented paragraphs and one comment with two internal paragraphs. Of course, this is my own preference and maybe some others do not draw that distinction. Where i'd like it to stop is ideally here: === a par . :LOGBOOK: - Note taken on [2013-06-30 Sun 13:32] \\ test :END: . another par . # another par . # another par . another par . === (In reality, I am thinking that it would be great if Emacs could optionally make both forward and backward motion go to the beginning of an object instead of the end, but that is a separate topic as we are talking about consistency with the rest of Emacs.) There are probably theoretical reasons for the existing choices, but they do not match my intuitive needs. Is there a way to make it work the way I want it to? I think my intuition is more consistent with the rest of Emacs? Hope this stimulates discussion. Thanks. Samuel -- The Kafka Pandemic: http://thekafkapandemic.blogspot.com The disease DOES progress. MANY people have died from it. ANYBODY can get it. Denmark: free Karina Hansen NOW.
Re: [O] Special Properties when matching for Properties in a search
Gustav Wikström gustav.e...@gmail.com writes: When matching for tags and properties using C-c / m there is the option to match for Special Properties. Is there a complete list of these special properties somewhere? The section you found in the manual and the value of org-special-properties would seem the logical places to look for such a complete list. However, there are some discrepancies in the two. There seem to be some very special properties that are mentioned in the doc but not in the variable. I was thinking that 7.2 Special Properties in the manual would be that list, but then noticed a property possible to use for searches, but not available in that list (the LEVEL-property). Is that property just missing from there? I think so: LEVEL is mentioned in neither place, although it is mentioned in sec. 10.3.3, Matching tags and properties, which I presume is where you found it. It should probably be added to sec. 7.2, and maybe added to org-special-properties. Here's my census of special properties from these three places: --8---cut here---start-8--- * Special properties | Name | doc sec. 7.2 | org-special-properties | other places | |--+--++--| | ID | yes | no | | | TODO | yes | yes| yes (sec 10.3.3) | | TAGS | yes | yes| | | ALLTAGS | yes | yes| | | CATEGORY | yes | no | yes (sec 10.3.3) | | PRIORITY | yes | yes| yes (sec 10.3.3) | | DEADLINE | yes | yes| yes (sec 10.3.3) | | SCHEDULED| yes | yes| yes (sec 10.3.3) | | CLOSED | yes | yes| | | TIMESTAMP| yes | yes| | | TIMESTAMP_IA | yes | yes| | | CLOCKSUM | yes | yes| | | CLOCKSUM_T | yes | yes| | | BLOCKED | yes | yes| | | ITEM | yes | no | yes (sec 10.3.3) | | FILE | yes | yes| | | LEVEL| no | no | yes (sec 10.3.3) | --8---cut here---end---8--- Are there others? Should org-special-properties include them all? -- Nick
Re: [O] [PATCH] ox-html: Restore wrongly omitted table attributes under HTML5.
Hi Kodi, Nicolas Goaziou n.goaz...@gmail.com writes: Thank you again. Also, please consider signing FSF papers for more contributions to Emacs. Here is the link to the form you need to fill for that: http://orgmode.org/cgit.cgi/org-mode.git/plain/request-assign-future.txt Thanks in advance! -- Bastien
Re: [O] bug leading to duplicate subtrees
Hi Samuel, Samuel Wales samolog...@gmail.com writes: I finally found out how some duplicate subtrees are created: * test 1 * test 2 Refile test 1. Kill test 2. Move. Yank. You will yank both lines. To fix: make refiling not be an appendable kill. Indeed. I fixed this in maint, thanks for reporting this bug. -- Bastien
Re: [O] Blank lines in date-trees
Hi Vincent, Vincent Beffara vbeff...@ens-lyon.fr writes: Thanks - but it doesn't ... More precisely, it does insert a blank line before the new entry itself, but not before the higher-level month and day entries that possibly need to be created. Ah, I see... so no, I don't think we can fine-tune things here, sorry! -- Bastien
Re: [O] Relation between todo-mode.el and Org-mode?
Hi Stephen, Stephen Berman stephen.ber...@gmx.net writes: Since I became the maintainer more than four years ago there haven't been any bug reports or feature requests, and there were few prior to that. The ones there were, years before, were what got me interested in Todo mode in the first place. I don't know of any users of the old version. I think it had a nice UI but limited functionality, so I'd guess most people who want to manage todo lists in Emacs already use Org mode. I guess I'm an exception, because I had already started adding functionality to Todo mode before Org mode existed and that kept me sticking with it. Thanks for the answer. I hope other orgers will be curious enough to test todo-mode.el! Best, -- Bastien
Re: [O] [PATCH] Add a flat clocktable formatter useful for tables whose CSV export can be imported into accounting/invoiving tools such as Zoho Invoicing.
Hi Ross, Ross Patterson m...@rpatterson.net writes: Bastien b...@gnu.org writes: thanks for the patch. Do you mind filling the copyright assignment so we can accept the patch ? I already have an FSF Emacs Assignment from 2008-12-22, RT 393650. Is there something else I need to do? Nope. I didn't know you had a FSF assignment. That said, the patch looks more like an add-on to Org for a very specific use, so putting this code in contrib/ would be better. Also, `org-clock-clocktable-flat-columns' defines some customizable values that are hardcoded in `org-clocktable-write-flat'. Either the values should not be customizable, or the `org-clocktable-write-flat' should call them differently? Just a suggestion. http://orgmode.org/cgit.cgi/org-mode.git/plain/request-assign-future.txt Also, please have a look at this page with guidance on how to submit a patch with a ChangeLog etc. http://orgmode.org/worg/org-contribute.html#sec-4-2 I did a search for such docs on orgmode.org but only found a pointer to the list. Perhaps someone should make these links more obvious. I promoted the org-contribute.html page in the homepage of Org, thanks for bringing this up! -- Bastien
Re: [O] [PATCH] (update) Add :caption attribute to #+ATTR_LATEX property
Hi Feng, feng shu tuma...@gmail.com writes: (org-latex--inline-image): Tiny change. org-latex--org-table): Tiny change. The Emacs usage is to write it like this: (org-latex--inline-image, org-latex--org-table): Tiny change. Thanks! -- Bastien, nitpicking again :)
Re: [O] auto pack empty space between headers?
Hi Xebar, Xebar Saram zelt...@gmail.com writes: i was wondering if there was any command to auto pack empty space between headers? I sometimes use this crude method: M- C-M-% ^C-qC-jC-qC-j+ RET C-qC-j RET Otherwise you can tweak `org-blank-before-new-entry'. HTH, -- Bastien
Re: [O] how to make forward-paragraph stop at the end of every normally-defined paragraph
Hi Samuel, Samuel Wales samolog...@gmail.com writes: Where forward-paragraph stops is at the dots: This is something I've long wanted, `forward-paragraph' and `backward-delete' are now bound to `org-forward-element' and `org-backward-element'. Thanks, -- Bastien
Re: [O] HTML export and info: links
Hi Sebastian, Sebastian Wiesner lunary...@gmail.com writes: how can I customize info: links in HTML output? Look at org-info.el in the source code. You can extend (org-add-link-type info 'org-info-open) into (org-add-link-type info 'org-info-open org-info-export) and write a new `org-info-export' that will take care of exporting info links correctly in the backends you decide. See `org-bbdb-export' or `org-docview-export' for examples of such functions -- if you write `org-info-export', we might be interested in integrating it into Org! Thanks, -- Bastien
Re: [O] Ordered List (Alphabetical) and HTML Export
Hi Josiah, Josiah Schwab jsch...@gmail.com writes: I am using orgmode 8.0.3 with emacs 24.3. I frequently use ordered lists with alphabetical bullets. I have (setq org-list-allow-alphabetical t) in my .emacs. You should be able to export them to ol type=a lists now (from the maint branch, which will be the next stable release.) -- Bastien
Re: [O] managing a work log
Hi Adam, Adam Spiers orgm...@adamspiers.org writes: With `org-archive-mark-done' set to `t', entries will be marked as done when `org-archive-subtree' is invoked. However, this does not honour the expected behaviour when `org-log-done' is set to `'time', i.e. that a `CLOSED: [timestamp]' line will be inserted just after the headline. Is that a bug/feature, or am I missing something? I get the same behavior but there is a ARCHIVE_TIME property, which tells you what time the entry was archived-and-marked-done. Why would you want redundant information with a CLOSED timestamp here? Are you handling the CLOSED cookie in a specific way? Best, -- Bastien
Re: [O] [PATCH] Re: using orgtbl-sqlinsert
Hi Eric, Eric Abrahamsen e...@ericabrahamsen.net writes: Clearly whining wasn't getting me anywhere, so here's a patch. I don't claim to understand all the ins and outs of orgtbl-to-generic, so this might not be complete, but at least it gets it working again. There were plain old errors in the existing code (undefined variables, etc), so this has to be an improvement, even if it's incomplete. I applied this patch, thanks. -- Bastien
Re: [O] Elpa twice in load-path
Hi Rene, Rene jl...@yahoo.com writes: Achim Gratz Stromeko at nexgo.de writes: Line 4 of `org-autoloads.el in org/elpa package. Since this file is created by package manager this is probably how it adds Org to the load path, don't you think? What I notice is that for elpa packages that don't hold such a line in their `package-autoloads.el', the package path only appears once in `load-path', which is the right behavior. Can you suggest a fix, if needed? Thanks, -- Bastien
Re: [O] [PATCH] summarize timestamps in column view
Hi Pedro, Pedro Silva psilva+...@pedrosilva.pt writes: * org-colview.el (org-columns-compile-map): (org-columns-number-to-string): (org-columns-string-to-number): Handle timestamp summaries. * org.texi (Column attributes): Document timestamp summaries. Looks good, thanks! It hardly counts as a tiny change, though, as I count 25 lines... I'm afraid the patch is larger than what we can accept without paperwork. Would you mind signing the FSF copyright assignment (or telling me if you did so already for Emacs)? http://orgmode.org/cgit.cgi/org-mode.git/plain/request-assign-future.txt That'll leave some time so that someone else can test the patch and report about it :) Thanks in advance! -- Bastien
Re: [O] Standalone hyperlinked images in HTML export
Hi Kodi, Kodi Arfer k...@arfer.net writes: I think I'm going to stop working on this issue for now, but at least what I've done could be helpful for anybody else who wants to go further down the rabbit hole. I can't follow this rabbit right now, but I hope someone can tidy things up a bit here (been there, done that...) P.S. I sent a request for a copyright-assignment form earlier today. I added you here: http://orgmode.org/worg/org-contribute.html#sec-6-2 Thanks! -- Bastien
Re: [O] Bug: org-edit-special won't let me edit a latex snippet
Hi Gustav, Gustav Wikström gustav.e...@gmail.com writes: It seems to me that in 8.0.3 this is still an issue. Both latex and quote blocks gives the response: user-error: No special environment to edit here I can use C-c ' in #+begin_latex environments correctly with latest Org (release_8.0.3-309), but I don't think C-c ' was ever supported for quote blocs. Does the manual suggest otherwise? Best, -- Bastien
Re: [O] how to make forward-paragraph stop at the end of every normally-defined paragraph
Hi Samuel, Samuel Wales samolog...@gmail.com writes: Where forward-paragraph stops is at the dots: This is something I've long wanted, `forward-paragraph' now calls `org-format-element' in master. Thanks, -- Bastien
Re: [O] Special Properties when matching for Properties in a search
Hi Gustav, Gustav Wikström gustav.e...@gmail.com writes: When matching for tags and properties using C-c / m there is the option to match for Special Properties. Is there a complete list of these special properties somewhere? I was thinking that 7.2 Special Properties in the manual would be that list, but then noticed a property possible to use for searches, but not available in that list (the LEVEL-property). Is that property just missing from there? Mhhh... no, AFAIK the LEVEL property is a special-special property: you can use it in search constructs, but not in column view (which is the primary context for the 7.2 manual section.) But I'd say that's the only property missing here. I'm short of good ideas on how to improve the manual here. -- Bastien
Re: [O] cannot batch export agenda
Hi Rainer, Rainer Stengele rainer.steng...@online.de writes: I found this: (setq org-agenda-sticky nil) to be working, which might indicate a bug in the batch export when using sticky agenda views. So this does what I want: emacs -batch -l ~/.emacs -eval ' (progn (setq org-agenda-sticky nil)(org-batch-agenda 0w))' Indeed! `org-batch-agenda' uses `org-agenda-buffer-name' which only make sense when `org-agenda-sticky' is nil. This should be fixed now, thanks for reporting this. -- Bastien
Re: [O] How do I create an agenda block for entries with a specific tag?
Hi Alan, Alan Schmitt alan.schm...@polytechnique.org writes: I'm trying to find a way to create an agenda bloc (of type agenda) that is restricted to a set of tags. I tried using a skip function but (as I explained in another mail) I cannot get it to work. If someone has done it before, I'd gladly have a look at how to do it. You can try `org-agenda-tag-filter-preset' but I noticed some quirks with it, so maybe you'll have a change to report more bugs. -- Bastien
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
Hi Greg, Greg Minshall minsh...@acm.org writes: here is the thread: http://comments.gmane.org/gmane.emacs.orgmode/64229 Thanks. I'm reattaching the patch, with a reworked ChangeLog. (We could not apply it at the time because Michael didn't have his copyright assignment.) I like geiser very much, but maybe this introduces too much external dependencies. Eric, do you think we can go ahead and apply it? PS: The patch does not apply, we need to revert http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=92e327 first. From bc33a46041086abd5d1fec321f104aa034823576 Mon Sep 17 00:00:00 2001 From: Michael Gauland mike_gaul...@stanfordalumni.org Date: Wed, 9 Jan 2013 12:41:13 +1300 Subject: [PATCH] ob-scheme.el: Use geiser for babel scheme evaluation * ob-scheme.el (run-scheme, org-babel-scheme-eoe) (org-babel-scheme-cmd, scheme-program-name) (org-babel-prep-session:scheme) (org-babel-scheme-initiate-session): Deleted. (org-babel-execute-scheme): Rewritten to use geiser. (org-babel-scheme-repl-map, org-babel-scheme-cleanse-repl-map) (org-babel-scheme-get-session-buffer) (org-babel-scheme-set-session-buffer) (org-babel-scheme-get-buffer-impl, org-babel-scheme-get-repl) (org-bable-scheme-make-session-name) (org-babel-scheme-execute-with-geiser): New functions. --- lisp/ob-scheme.el | 192 - 1 files changed, 117 insertions(+), 75 deletions(-) diff --git a/lisp/ob-scheme.el b/lisp/ob-scheme.el index c9fa44a..31e0cad 100644 --- a/lisp/ob-scheme.el +++ b/lisp/ob-scheme.el @@ -2,7 +2,7 @@ ;; Copyright (C) 2010-2013 Free Software Foundation, Inc. -;; Author: Eric Schulte +;; Authors: Eric Schulte, Michael Gauland ;; Keywords: literate programming, reproducible research, scheme ;; Homepage: http://orgmode.org @@ -33,27 +33,16 @@ ;; - a working scheme implementation ;; (e.g. guile http://www.gnu.org/software/guile/guile.html) ;; -;; - for session based evaluation cmuscheme.el is required which is -;; included in Emacs +;; - for session based evaluation geiser is required, which is available from +;; ELPA. ;;; Code: (require 'ob) -(eval-when-compile (require 'cl)) - -(declare-function run-scheme ext:cmuscheme (cmd)) +(load-library geiser-impl) (defvar org-babel-default-header-args:scheme '() Default header arguments for scheme code blocks.) -(defvar org-babel-scheme-eoe org-babel-scheme-eoe - String to indicate that evaluation has completed.) - -(defcustom org-babel-scheme-cmd guile - Name of command used to evaluate scheme blocks. - :group 'org-babel - :version 24.1 - :type 'string) - (defun org-babel-expand-body:scheme (body params) Expand BODY according to PARAMS, return the expanded body. (let ((vars (mapcar #'cdr (org-babel-get-header params :var @@ -65,70 +54,123 @@ )\n body )) body))) -(defvar scheme-program-name) + +(defvar org-babel-scheme-repl-map (make-hash-table :test 'equal) + Map of scheme sessions to session names.) + +(defun org-babel-scheme-cleanse-repl-map () + Remove dead buffers from the REPL map. + (maphash + (lambda (x y) + (when (not (buffer-name y)) + (remhash x org-babel-scheme-repl-map))) + org-babel-scheme-repl-map)) + +(defun org-babel-scheme-get-session-buffer (session-name) + Look up the scheme buffer for a session; return nil if it doesn't exist. + (org-babel-scheme-cleanse-repl-map) ; Prune dead sessions + (gethash session-name org-babel-scheme-repl-map)) + +(defun org-babel-scheme-set-session-buffer (session-name buffer) + Record the scheme buffer used for a given session. + (puthash session-name buffer org-babel-scheme-repl-map)) + +(defun org-babel-scheme-get-buffer-impl (buffer) + Returns the scheme implementation geiser associates with the buffer. + (with-current-buffer (set-buffer buffer) +geiser-impl--implementation)) + +(defun org-babel-scheme-get-repl (impl name) + Switch to a scheme REPL, creating it if it doesn't exist: + (let ((buffer (org-babel-scheme-get-session-buffer name))) +(or buffer +(progn + (run-geiser impl) + (if name + (progn + (rename-buffer name t) + (org-babel-scheme-set-session-buffer name (current-buffer + (current-buffer) + +(defun org-babel-scheme-make-session-name (buffer name impl) + Generate a name for the session buffer. + +For a named session, the buffer name will be the session name. + +If the session is unnamed (nil), generate a name. + +If the session is 'none', use nil for the session name, and +org-babel-scheme-execute-with-geiser will use a temporary session. + (let ((result + (cond ((not name) + (concat buffer (symbol-name impl) REPL)) + ((string= name none) nil) + (name +result)) + +(defun org-babel-scheme-execute-with-geiser (code output impl repl) + Execute code in specified REPL. If the REPL doesn't exist, create it +using the given scheme implementation. + +Returns the output of executing the code if the output
Re: [O] bug leading to duplicate subtrees
Thank you. -- The Kafka Pandemic: http://thekafkapandemic.blogspot.com The disease DOES progress. MANY people have died from it. ANYBODY can get it. Denmark: free Karina Hansen NOW.
Re: [O] [PATCH] (update) Add :caption attribute to #+ATTR_LATEX property
Thanks for your help. This is V4 patch. On Mon, Jul 1, 2013 at 4:27 AM, Bastien b...@gnu.org wrote: Hi Feng, feng shu tuma...@gmail.com writes: (org-latex--inline-image): Tiny change. org-latex--org-table): Tiny change. The Emacs usage is to write it like this: (org-latex--inline-image, org-latex--org-table): Tiny change. Thanks! -- Bastien, nitpicking again :) 0001-Add-caption-attribute-to-ATTR_LATEX-property.patch Description: Binary data
Re: [O] Modifying the Beamer Exporter
I want to include my collaborators in the header of each org file just as I would authors, that is by including a line like #+COLLABORATORS: Alice Bob I've found some limited documentation on modifying the exporter (manual section 12.3) and taken a look at ox.el, ox-latex.el, ox-beamer.el, etc. What I did was: + Create a new backend derived from the beamer one + add COLLABORATORS to its options-alist + set the template (in translate-alist) to one handling collaborators This works, but before I continued on making other modifications (in a similar vein), I wanted to check in with people with a higher level understanding. In general if it's generally useful make a patch (if feasible). . . Could you point out exactly which function (with ref to the Beamer manual) you're using? Searching for collaborator in the manual didn't give me any hints. . . For my subtitle example, \subtitle{} is a beamer command so I can make a patch for that and see what people think. There is no beamer command for collaborators -- which is why you didn't find it in the manual. But I almost always have collaborators on my presentations, so I want to choose once how to render collaborators and then ever after only have to set the content. That could either mean adding a custom \collaborators{} command in my personal beamer theme and have the exporter set that appropriately or just having my local exporter do something like (format \\author{%s {\\small with %s}}\n author collaborators) when COLLABORATORS is set. Maybe, maybe not. Difficult to say unless you give us a better idea of what kind of changes you plan on making. To add to Eric's comment: Filters is a viable option and potentially more sustainable if your code ain't submitted up stream. Ok, I will go read more about filters in the manual and come back to the list if I have questions. Thanks for your time! Best, Josiah
Re: [O] Refiling list items
Hi Samuel, Samuel Wales samolog...@gmail.com writes: I confirm the following bug in git master. Fixed, thanks. -- Bastien
Re: [O] org-mode and python pandas
Dov Grobgeld dov.grobg...@gmail.com writes: Has anyone used org-mode with the python pandas package? Pandas is in a certain way an alternative to R, but with the (for me) familiar syntax of python. See: http://pandas.pydata.org/ Pandas is very much built to be used interactively, and it outputs its data in space separated tabular format. E.g. in ipython: In [1]: import pandas as pd In [2]: import numpy as np In [3]: pd.DataFrame(np.random.random((4,3)), columns=['A','B','C']) Out[3]: A B C 0 0.628365 0.424279 0.619791 1 0.799666 0.527572 0.132928 2 0.837255 0.138906 0.408233 3 0.388080 0.146212 0.575346 Unfortunately this doesn't output as nicely when used from org-mode: #+BEGIN_SRC python import pandas as pd import numpy as np return pd.DataFrame(np.random.random((4,3)), columns=list('ABC')) #+END_SRC #+RESULTS: : A B C : 0 0.827817 0.664009 0.089161 : 1 0.170031 0.729214 0.110918 : 2 0.575918 0.863924 0.757536 : 3 0.682722 0.774445 0.992041 while I would like to have: | |A |B |C | |---+--+--+--| | 0 | 0.827817 | 0.664009 | 0.089161 | | 1 | 0.170031 | 0.729214 | 0.110918 | | 2 | 0.575918 | 0.863924 | 0.757536 | | 3 | 0.682722 | 0.774445 | 0.992041 | What happens if you add :results table to your code block? Would that be sufficient? The question is how to get this? Here are a few ideas: 1. Write a general filter in the org-mode elisp than uses heuristics to recognize ascii aligned tables and change these to org-tables. The default value should be to convert multi-line output to tables, the :results table option above will force this conversion in case it is currently not taking place due to the default header arguments in use. 2. Add to pandas the option of globally influencing the text formatting so that it outputs something more parsable by org-mode. This sounds promising, if pandas support csv output that will be correctly parsed by Org-mode. 3. Create a special language pandas that recognize the ascii aligned tables and saves the need to import pandas and np? 4. And the obvious approach of writing a python function that writes a org-mode parsable table and always call it as part of the return. Which is the preferable approach? Any other ideas? I think a header-argument-based approach would be ideal, I'd look at the value of org-babel-default-header-args:python, and read the portion of the manual related to the results header arguments. I don't understand multi-line strings in python, but I get the following behavior from simple shell script blocks. #+begin_src sh cat EOF A B C 0 0.628365 0.424279 0.619791 1 0.799666 0.527572 0.132928 2 0.837255 0.138906 0.408233 3 0.388080 0.146212 0.575346 EOF #+end_src #+RESULTS: | A |B |C | | | 0 | 0.628365 | 0.424279 | 0.619791 | | 1 | 0.799666 | 0.527572 | 0.132928 | | 2 | 0.837255 | 0.138906 | 0.408233 | | 3 | 0.38808 | 0.146212 | 0.575346 | #+begin_src sh cat EOF ,A,B,C 0,0.628365,0.424279,0.619791 1,0.799666,0.527572,0.132928 2,0.837255,0.138906,0.408233 3,0.388080,0.146212,0.575346 EOF #+end_src #+RESULTS: | |A |B |C | | 0 | 0.628365 | 0.424279 | 0.619791 | | 1 | 0.799666 | 0.527572 | 0.132928 | | 2 | 0.837255 | 0.138906 | 0.408233 | | 3 | 0.38808 | 0.146212 | 0.575346 | Hope this helps, Regards, Dov -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] org-babel-lob-execute: Wrong type argument: integer-or-marker-p
Hi Loris, Thanks for reporting this problem. I've just pushed up a change which should fix this error, please let me know if it continues. Thanks, Loris Bennett loris.benn...@fu-berlin.de writes: Hi, When I add the caching option to a call to a code block, like this #+CALL: get_raw_timelimit_elapsed_data() :cache yes everything works OK, but I get the error org-babel-lob-execute: Wrong type argument: integer-or-marker-p With an ECM the error does not occur, just with my crufty .emacs. As I say, the problem seems to be purely cosmetic, but I was wondering what could be causing this. Any ideas? Loris -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] evaluation context in call statements
Achim Gratz strom...@nexgo.de writes: Eric Schulte writes: My vote is for adding #+name support to call lines, and then handling their results in the same manner as code block results. Achim Gratz strom...@nexgo.de writes: I'm not sure what this would entail other than replacing the call with its arguments with the name of the call in the results line. But yes, that'd be a step forward, although you'd have to be careful when copying calls. This could work exactly as named source blocks work. E.g., [...] I see. The problem then really is that #+CALL lines are currently implicitly named by copying their arguments to the results line. If explicit naming is allowed, this implicit naming should go away or at least not be the default, IMHO. Exactly. I've just pushed up a patch which implements this change. Call lines should now work exactly as named code blocks providing clarity, uniformity and the flexibility to run multiple identical call lines. #+name: bar #+BEGIN_SRC emacs-lisp :baz #+END_SRC #+call: bar() #+RESULTS: : :baz #+call: bar() #+RESULTS: : :baz #+name: foo #+call: bar() #+RESULTS: foo : :baz #+name: foo2 #+call: bar() #+RESULTS: foo2 : :baz #+name: foo #+call: bar() Cheers, -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] [BUG] :colnames not applied to #+call input
Rick Frankel r...@rickster.com writes: it seems that the :colnames header is not being respected on parsing the input to a `#+call:' line containing arguments, but is being applied to the output! For example: #+BEGIN_SRC org * Identity #+name: table | a | b | c | |---+---+---| | 1 | 2 | 3 | #+name: identity #+BEGIN_SRC emacs-lisp :var table=table :colnames yes (mapcar 'identity table) #+END_SRC Emacs Lisp handles the :colnames header argument differently than other languages, hence the Note that the behavior of the ':colnames' header argument may differ across languages. phrase in the manual. If you remove :colnames yes from the emacs-lisp code block in your example everything should work fine. Best, -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
Greg Minshall minsh...@acm.org writes: hi, Bastien, hi. what happened to this patch? i don't see it anywhere. cheers! Can you give a pointer to this patch? here is the thread: http://comments.gmane.org/gmane.emacs.orgmode/64229 cheers, Greg Hi Greg, Thanks for sending this along. 1. Have you completed the FSF assignment? I don't see you listed on http://orgmode.org/worg/org-contribute.html 2. This patch no longer applies cleanly, I get the following error output when trying to apply it to the current repo. 17:24 bagel:org-mode git am ~/64406-001.bin Applying: Use geiser for babel scheme evaluation. /home/eschulte/src/org-mode/.git/rebase-apply/patch:83: trailing whitespace. (or buffer /home/eschulte/src/org-mode/.git/rebase-apply/patch:87: trailing whitespace. (progn /home/eschulte/src/org-mode/.git/rebase-apply/patch:101: trailing whitespace. (let ((result /home/eschulte/src/org-mode/.git/rebase-apply/patch:226: trailing whitespace. error: patch failed: lisp/ob-scheme.el:65 error: lisp/ob-scheme.el: patch does not apply Patch failed at 0001 Use geiser for babel scheme evaluation. Once these are resolved we can apply this patch. Thanks! -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] Calling org babel to each row in a table
Joe Bogner joebog...@gmail.com writes: I often need to transform a table or list of values into a block of text. For example, if I have a list of 4 files that I want to generate a SQL script for. After hunting around, this is the best I came up with: #+name: table | File | | a| | b| | c| | d| #+name: template #+begin_src org :results verbatim :var name=abc DROP TABLE $name CREATE TABLE $name (name varchar(100)) BULK INSERT $name FROM '\\1.1.1.1\$name.txt' ... #+end_src #+name: apply-template #+begin_src emacs-lisp :results silent :var table=() (let (result-table) (dolist (line (cdr table)) (setq result-table (cons (concat #+call: template(\ (car line) \) :results raw drawer) result-table))) (mapconcat 'identity (nreverse result-table) \n)) #+end_src #+call: apply-template(table) :results org :exports both #+RESULTS: apply-template(table):results org :exports both #+BEGIN_SRC org #+END_SRC Is there a more straightforward method to apply this type of transformation? Ideally I would skip the emacs-lisp block and use some syntax to apply a org-babel block for each row in a table. It sounded similar to this: http://thread.gmane.org/gmane.emacs.orgmode/69326/focus=69340*, *but that didn't have a full example for me to build off of Is there a more straightforward to accomplish this transformation? Hi Joe, There is no way to map a code block over the rows of a table. You could use the `sbe' macro and a spreadsheet formula to call a code block on multiple table cells, but the results would be inserted back into the table. | A | --A-- | | B | --B-- | | eric| --eric--| | schulte | --schulte-- | #+TBLFM: $2='(sbe foo (in $$1)) #+name: foo #+begin_src emacs-lisp :var in=foo (format --%s-- in) #+end_src Possibly you could use the sbe macro to simplify the elisp code block in your example. Best, Thanks, Joe -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
Bastien b...@gnu.org writes: Hi Greg, Greg Minshall minsh...@acm.org writes: here is the thread: http://comments.gmane.org/gmane.emacs.orgmode/64229 Thanks. I'm reattaching the patch, with a reworked ChangeLog. (We could not apply it at the time because Michael didn't have his copyright assignment.) I like geiser very much, but maybe this introduces too much external dependencies. Eric, do you think we can go ahead and apply it? I've just applied this patch. I don't think external dependencies are a problem if they offload language integration work to a dedicated external package. The more babel can re-use existing packages the better, e.g., common lisp code blocks are just thin wrappers around slime, but they work exceedingly well with almost no babel-side coding or maintenance. Thanks Greg for this patch! PS: The patch does not apply, we need to revert http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=92e327 first. Thanks for figuring out this conflict. -- Eric Schulte http://cs.unm.edu/~eschulte
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
hi, Eric, this patch isn't mine, but rather Michael Gauland's; i just wondered where it had gone. cheers, Greg here is the thread: http://comments.gmane.org/gmane.emacs.orgmode/64229
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
Eric Schulte schulte.e...@gmail.com writes: Thanks Greg for this patch! (Michael Gauland is the one to thank for the patch, and Greg for the heads up. Thanks to both!) -- Bastien
Re: [O] [PATCH] Use geiser for babel scheme evaluation.
Ah, apologies and thanks all around. Cheers, Greg Minshall minsh...@acm.org writes: hi, Eric, this patch isn't mine, but rather Michael Gauland's; i just wondered where it had gone. cheers, Greg here is the thread: http://comments.gmane.org/gmane.emacs.orgmode/64229 -- Eric Schulte http://cs.unm.edu/~eschulte
[O] [BUG] A typo introduced in '6abc114f188267e4b804a3eca8794900eee66db0'
Hello, a typo introduced in commit '6abc114f188267e4b804a3eca8794900eee66db0' prevents `org-agenda.el' to compile into 'elc' (actually Emacs shows me an error which I don't understand). I compared `org-agenda.el' of '6abc114f188267e4b804a3eca8794900eee66db0' commit with previous commit and made small patch which fixes the problem. --- WBR, Vladimir Lomov -- There's nothing very mysterious about you, except that nobody really knows your origin, purpose, or destination. diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index b4f604b..04e80a3 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -3133,9 +3133,9 @@ before running the agenda command. (let (org-agenda-sticky) (if ( (length cmd-key) 2) (org-tags-view nil cmd-key) - (org-agenda nil cmd-key))) + (org-agenda nil cmd-key (set-buffer org-agenda-buffer-name) -(princ (buffer-string +(princ (buffer-string))) (defvar org-agenda-info nil)