[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Release 7.02

From: Carsten Dominik
Subject: [Orgmode] Release 7.02
Date: Fri, 29 Oct 2010 08:49:31 +0200

Dear all,

I have release version 7.02 or Org-mode.  Thanks to all who
have contributed!


- Carsten

Changes in version 7.02

Incompatible Changes

Code block hashes
Due to changes in the code resolving code block header arguments
hashing of code block results should now re-run a code block when
an argument to the code block has changed.  As a result of this
change *all* code blocks with cached results will be re-run after
upgrading to the latest version.

Testing update
Anyone using the org-mode test suite will need to update the jump
repository for test navigation by executing the following from
the root of the org-mode repository.
git submodule update
Failure to update this repository will cause loading of
org-test.el to throw errors.

Lists handling

Due to changes made to lists, it is no longer possible to have a
sublist, some text and then another sublist while still in the same
top-level list item, like in the following situation:

  - Some list
    + A first sublist
    + of two elements

    A text belonging to the top-level list

    + Then another sublist
    + and a second element in it
  - End of main list

Moreover, two variables are now obsolete, namely
=org-provide-checkbox-statistics= and =org-auto-renumber-ordered-lists=.
If you have changed default value of the former, you should have a
look at the new variable =org-list-automatic-rules=, specifically at the
checkbox rule. The latter has no equivalent, but a new way is provided
to enforce some special numbering in a list. See [announcement] below.

[announcement]: sec-2_1


Plain lists changes

There is now two possibilities to end a plain list: either by
indenting some text less than the last bullet of the list — like
before, but now it now closes /all/ sublists in the process — or by
specifying some regex — two blank lines, by default. All of this can
be configured through =org-list-ending-method=, =org-list-end-regexp= and
=org-empty-line-terminates-plain-lists=. This allows such constructs:

  1. an ordered list
  2. with two items

  - another independent list
  - of two items

Note that anyting inside a block (like example or src) isn't taken
into consideration with regards to list ending.

You can now enforce a special numbering in an ordered list with address@hidden
syntax, which generalizes the address@hidden:num]= concept. It can be inserted
in any item of the list, and exporters recognize it. Here is an
example of what you can obtain:

  2. address@hidden I like
  3. prime-numbered
  5. address@hidden lists

Cycling an item – using TAB — more than once just after its creation
no longer moves it until it reaches the left margin. Now, all
positions offered are meaningful in list's structure. Furthermore,
indenting and outdenting items or subtrees within the list cannot
break its integrity either.

=org-insert-item=, when plain-list-item is set to auto in
=org-blank-before-new-entry=, will apply some heuristics to insert the
right number of blank lines, if any, after, or before, the newly
created item. When no information is avalaible to take a guess, it
will default to no blank line.

=org-sort-list= sorts timer lists with t and T commands.

Automatic actions are now taken by Org when some commands are issued.
You can have a look at them and disable them individually with the
help of the new variable =org-list-automatic-rules=.

It is possible to change indentation of the whole list — it's, by the
way, the only way to acheive this: indenting a region won't move lists
— by using M-S-right and M-S-left when on its very first item. This
global indentation has no influence on the text after the list:

  You can have some text before a list.

        - then a
        - small list

  And a text following the list, indented like if there was no list at

Many bugfixes are included. For example, =org-cycle= on a list no longer
swallows text after it and indenting a region containing a list
shouldn't be problematic anymore. Some inconsistencies are also
corrected. Thus, =org-cycle-list-bullet= will not offer "1." if you have
disabled this kind of bullet by configuring

Implement MathJax support

Org-mode now uses MathJax to display math on web pages.  We serve
MathJax from the orgmode.org server, at least for the time being
(thanks Bastien!).  If you are going to use this for pages which
are viewd often, please install MathJax on your own webserver.

To return to the old way of creating images and inserting them
into web pages, you would have to set

(setq org-export-with-LaTeX-fragments 'dvipng)

or on a per-file basis

#+OPTIONS: LaTeX:dvipng

Add org-wikinodes.el as a contributed package

One frequent request has been to be able to use CamelCase words
for automatic cross links in a Wiki created by Org.  THis is now
possible with org-wikinodes.el, which is available in the contrib
directory.  We also have some [documentation] for this feature up
on Worg.

[documentation]: http://orgmode.org/worg/org-contrib/org-wikinodes.php

Timer/clock enhancements

=org-timer-set-timer= displays a countdow timer in the modeline.
From the agenda, `J' invokes =org-agenda-clock-goto=.

Fontify code in code blocks.

Source code in code blocks can now be fontified.  Please customize the
varable =org-src-fontify-natively=. For very large blocks (several
hundreds of lines) there can be delays in editing such fontified
blocks, in which case C-c ' should be used to bring up a dedicated
edit buffer.

Thanks to Dan Davison for this.

Allow "#" and "%" in tags

Tags can now also contain the characters =#= and =%=, in addition
to address@hidden and letters.

MobileOrg: Encryption finally works

As soon as MobilOrg 1.5 hits the Apple's AppStore, you can
encrypt your org files on public servers.  Please see the
documentation of MobileOrg and Appendix B of the manual for more

MobileOrg: Do not force to insert IDs

If you dislike the property of MobileOrg to insert ID properties
for in all entries being part of an agenda view, you can now turn
this off using the variable
=org-mobile-force-id-on-agenda-items=.  When this variable is set
to =nil=, MobileOrg will use outline paths to identify entries.
Note that this may fail if several entries have identical outline

Table fields are now aligned better, new <c> cookie.

In HTML export, table fields are now properly aligned in accord
with automatic alignment in org, or as set by the =<r>=, =<l>=, and
=<c>= cookies.  The =<c>= cookie is new and has no effect in
Org, but it does do the right thing in HTML export.

Improve XEmacs compatibility

Org-mode 7.02 now runs again in 21.4.22 if the new XEmacs base
package is installed.

Thanks to Uwe Bauer, Volker Ziegler, Michael Sperber and others
for a discussion that lead to this nice result.

Agenda: Allow compact two-column display in agenda dispatcher

If you have many custom agenda commands, you can have the display
in the dispatcher use two columns with the following settings

(setq org-agenda-menu-show-match nil
      org-agenda-menu-two-column t)

This was a request by John Wiegley.

Language-mode commands are available in the Org-buffer
    The most general machinery for doing this is the macro
    `org-babel-do-in-edit-buffer'. There is also the convenience
    function `org-babel-do-key-sequence-in-edit-buffer' which makes
    use of this macro, and is bound to C-c C-v C-x and C-c C-v x. If
    there is an active region contained within the code block, then
    this is inherited by the edit buffer. Some examples of the sorts
    of usage this permits are

C-c C-v C-x M-;       comment region according to language
C-c C-v C-x C-M-\     indent region according to language

Users can make these more convenient, e.g.

(defun my/org-comment-dwim (&optional arg)
    (interactive "P")
    (or (org-babel-do-key-sequence-in-edit-buffer "\M-;")
        (comment-dwim arg)))

(define-key org-mode-map "\M-;" 'my/org-comment-dwim)

A common instance of this general pattern is built in to Org-mode,
controlled by the variable `org-src-tab-acts-natively': if this
variable is set, then TAB in a code block has the effect that it would
have in the language major mode buffer.

Org-babel commands are available in language-mode edit buffer
    Mirroring the language-native commands in Org buffers above, a new
    macro `org-src-do-at-code-block' and convenience function
    `org-src-do-key-sequence-at-code-block' provide the converse. When
    used in a language major-mode edit buffer (i.e. a buffer generated
    by C-c '), `org-src-do-key-sequence-at-code-block' executes a key
    sequence at the code block in the source Org buffer.  The command
    bound to the key sequence in the Org-babel key map is executed
    remotely with point temporarily at the start of the code block in
    the Org buffer.

    The command is not bound to a key by default, to avoid conflicts
    with language major mode bindings. To bind it to C-c @ in all
    language major modes, you could use

  (add-hook 'org-src-mode-hook
            (lambda () (define-key org-src-mode-map "\C-c@"

    In that case, for example, C-c @ t issued in code edit buffers
    would tangle the current Org code block, C-c @ e would execute
    the block and C-c @ h would display the other available
    Org-babel commands.

Multi-line header arguments to code blocks
Code block header arguments can now span multiple lines using the
new =#+header:= or =#+headers:= lines preceding a code block or
nested in between the name and body of a named code block.
Examples are given below.

- multi-line header arguments on an un-named code block
  #+headers: :var data1=1
  #+begin_src emacs-lisp :var data2=2
    (message "data1:%S, data2:%S" data1 data2)

  : data1:1, data2:2

- multi-line header arguments on a named code block
    #+source: named-block
    #+header: :var data=2
    #+begin_src emacs-lisp
      (message "data:%S" data)

    #+results: named-block
    : data:2

Unified handling of variable expansion for code blocks
The code used to resolve variable references in code block header
arguments has now been consolidated.  This both simplifies the
code base (especially the language-specific files), and ensures
that the arguments to a code block will not be evaluated multiple
times.  This change should not be externally visible to the
Org-mode user.

Improved Caching
Code block caches now notice if the value of a variable argument
to the code block has changed, if this is the case the cache is
invalidated and the code block is re-run.  The following example
can provide intuition for the new behavior.

  #+srcname: random
  #+begin_src R :cache yes

  #+results[a2a72cd647ad44515fab62e144796432793d68e1]: random

  #+srcname: caller
  #+begin_src emacs-lisp :var x=random :cache yes

  #+results[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller

Added :headers header argument for LaTeX code blocks
This makes it possible to set LaTeX options which must take place in
the document pre-amble for LaTeX code blocks.  This header argument
accepts either a single string or a list, e.g.

  #+begin_src latex :headers \usepackage{lmodern} :file name1.pdf
    latex body

#+begin_src latex :headers '("\\usepackage{mathpazo}" "\ \usepackage{fullpage}") :file name2.pdf
    latex body

New function `org-export-string'
Allows exporting directly from a string to the specified export format.

Code block header argument ":noweb tangle"
Only expands noweb syntax references when tangling, not during
export (weaving).

New function `org-babel-switch-to-session-with-code'
C-c C-v z (`org-babel-switch-to-session-with-code') is a variant of
C-c C-v C-z (`org-babel-switch-to-session'): instead of switching to
the session buffer, it splits the window between (a) the session
buffer and (b) a language major-mode edit buffer for the code block in
question. This can be convenient for using language major mode for
interacting with the session buffer.

Improvements to R sessions
    R now uses standard ESS code evaluation machinery in the :results
    value case, which avoids unnecessary output to the comint
    buffer. In addition, the R command responsible for writing the
    result to file is hidden from the user.  Finally, the R code edit
    buffer generated by C-c ' is automatically linked to the ESS
    session if the current code block is using :session.

Temporary file directory
All babel temporary files are now kept in a single sub-directory in
the /tmp directory and are cleaned up when Emacs exits.

Function for demarcating blocks `org-babel-demarcate-block'
Can be called to wrap the region in a block, or to split the block
around point, bound to (C-c C-v d).

Function for marking code block contents `org-babel-mark-block'
    Bound to C-M-h in the babel key map (i.e. C-c C-v C-M-h by
    default).  This can be useful in conjunction with
    `org-babel-do-in-edit-buffer', for example for language-native
    commenting or indenting of the whole block.

Lists of anniversaries are now handeled better

When several anniversaries are defined in the bbdb anniversaries
field (separated by semicolon), this is now handled nicely by the

Thanks to Lukasz Setmann for a patch to this effect.

Update freemind converter to include body text

The freemind exporter now incorporates body text into the mind

Thanks to Lennard Borgman for this patch.

Make footnotes work correctly in message-mode
The footnotes code now searches for the message delimiter "--" in
order to place footnotes before the signature.
Thanks to Tassilo Horn for this patch.

Make it configurable wether agenda jumping prefers the future

When jumping to a date from the agenda using the =j= key, you may
or may not like the property of Org's date reader to prefer the
future when you enter incomplete dates.   This can now be
configured using the variable =org-agenda-jump-prefer-future'.

Add publishing functions for ASCII, Latin-1 and UTF-8

There are now publishing functions =org-publish-org-to-ascii=,
=org-publish-org-to-latin1=, and =org-publish-org-to-utf8=.

Thanks to Matthias Danzl for showing how to do this.

Indentation and headline insertion after inline tasks

Indentation in inline tasks, and headline insertion after inline
tasks now behave as expected.

Encryption in MobileOrg finally works

As soon as MobilOrg 1.5 hits the Apple's AppStore, you can
encrypt your org files on public servers.  Please see the
documentation of MobileOrg and Appendix B of the manual for more

MobileOrg: Do not force to insert IDs

If you dislike the property of MobileOrg to insert ID properties
for in all entries being part of an agenda view, you can now turn
this off using the variable
=org-mobile-force-id-on-agenda-items=.  When this variable is set
to =nil=, MobileOrg will use outline paths to identify entries.
Note that this may fail if several entries have identical outline

LaTeX minted package for fontified source code export
Patch by Dan Davison.

Setting `org-export-latex-listings' to have the special value 'minted
causes source code to be exported to latex using the minted package,
which will fontify source code with color.  If you want to use this,
you need to make LaTeX use the minted package. Add minted to
`org-export-latex-packages-alist', for example using customize, or
with something like

  (require 'org-latex)
  (add-to-list 'org-export-latex-packages-alist '("" "minted"))

In addition, it is neccessary to install
pygments ([http://pygments.org]), and to configure
`org-latex-to-pdf-process' so that the -shell-escape option is
passed to pdflatex.

Allow to use texi2dvi or rubber for processing LaTeX to pdf

Please see the variable =org-export-latex-to-pdf-process= for
more information.

Thanks to Olivier Schwander for the rubber part.

LaTeX package fixes

We updated the list of default packages loaded by LaTeX exported

New STARTUP keywords to turn on inline images

If you want to inline images whenever you visit an Org file, use

#+STARTUP: inlineimages

Support for user-extensible speed commands.

There is a new hook =org-speed-command-hook=.  Thanks to
Jambunathan for a patch to this effect.

Add macro to insert property values into exported text

you can use {{{property{NAME}}}} to insert the value of a
property upon export.

Thanks to David Maus for a patch to this effect.

Show command names in manual

Andreas Röhler is adding command names to keys in the manual.
This will take a while to complete, but a start has been made.

Make backslash escape "-" in property matches

When entering a tags/property query, "-" is a logical operator.
However, "-" is also allowed in property names.  So you can now
write "SOME\-NAME" to work around this issue.

This was a request by Ilya Shlyakhter.

Document quick insertion of empty structural elements

Org-mode has a built-in template mechanism for inserting block
templates.  This was undocumented until now.

Thanks to Jambunathan K for the patch.

- Carsten

reply via email to

[Prev in Thread] Current Thread [Next in Thread]