# -*- mode: org; fill-column: 65 -*- #+STARTUP: showstars #+TITLE: Org-mode list of user-visible changes #+AUTHOR: Carsten Dominik #+EMAIL: carsten at orgmode dot org #+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:{} *:t TeX:t LaTeX:nil f:nil #+INFOJS_OPT: view:info toc:1 path:org-info.js tdepth:2 ftoc:t #+LINK_UP: index.html #+LINK_HOME: http://orgmode.org * Version 6.17 (in preparation) ** Details *** Built-in footnote support Org-mode now supports the creation of footnotes. In contrast to the `footnote.el' package, Org-mode's footnotes are designed for work on a larger document, not only for one-off documents like emails. The basic syntax is similar to the one used by `footnote.el', i.e. a footnote is defined in a paragraph that is started by a footnote marker in square brackets in column 0, no indentation allowed. The footnote reference is simply the marker in square brackets inside text. For example: #+begin_src org The Org homepage[1] now looks a lot better than it used to. ... [1] The link is: http://orgmode.org #+end_src Org-mode extends the number-based syntax to _named_ footnotes and optional inline definition. Using numbers as markers is supported for backward compatibility. Here are the valid references: - [1] :: A numeric footnote marker. - [fn:name] :: A named footnote reference, where `name' is a unique label word. - [fn:: This is the inline definition of this footnote] :: A LaTeX-like anonymous footnote where the definition is given directly at the reference point. - [fn:name: a definition] :: An inline definition of a footnote, which also specifies a name for the note. Since Org allows multiple references to the same note, you can then use use `[fn:name]' to create additional references. The following command handles footnotes: - C-c C-x f :: The footnote action command. When the cursor is on a footnote reference, jump to the definition. When it is at a definition, jump to the (first) reference. Otherwise, create a new footnote. Depending on the variable `org-footnote-define-inline' (with associated #+STARTUP options fninline and nofninline), the definitions will be placed locally, or into the nearest outline section with the heading `Footnotes'. If no such section is found after the reference point, one will be created at the end of the file. When this command is called with a prefix argument, a menu of additional options is offered: - s :: Sort the footnote definitions by reference sequence. During editing, Org makes no effort to sort footnote definitions into a particular sequence. If you want them sorted, use this command. - n :: Normalize the footnotes by collecting all definitions (including inline definitions) into a special section, and then numbering them in sequence. The references will then also be numbers. This is meant to be the final step before finishing a document (e.g. sending off an email). The exporters do this automatically, and so could something like `message-send-hook'. - d :: Delete the footnote at point, and all references to it. - C-c C-c :: If the cursor is on a footnote reference, jump to the definition. If it is a the definition, jump back to the reference. When called with a prefix argument at either location, offer the same menu as `C-u C-c C-x f'. Org-mode's footnote support is designed so that it should also work in buffers that are not in Org-mode, for example in email messages. Just bind =org-footnote-action= to a global key like =C-c f=. The main trigger for this development came from a hook function written by Paul Rivier, to implement named footnotes and to convert them to numbered ones before export. Thanks, Paul! *** Line numbers and references in literal examples Literal examples introduced with =#+BEGIN_EXAMPLE= or =#+BEGIN_SRC= do now allow optional line numbering in the example. Furthermore, links to specific code lines are supported, greatly increasing Org-mode utility for writing tutorials and other similar documents. Code references use special labels embedded directly into the source code. Such labels look like "((name))" and must be unique within a document. Org-mode links with the coderef cookie in the link part will be correctly interpreted, both while working with an Org file (internal links), and while exporting to the different backends. Line numbering and code references are supported for all three major backends, HTML, LaTeX, and ASCII. In the HTML backend, hovering the mouse over a link to a source line will remote-highlight the referenced code line. The options for the BEGIN lines are: - -n :: Number the lines in the example - +n :: Like -n, but continue numbering from where the previous example left off. - -r :: Remove the coderef cookies from the example, and replace links to this reference with line numbers. This option takes only effect if either -n or +n are given as well. If -r is not given, coderefs simply use the label name. Here is an example: #+begin_example -k #+begin_src emacs-lisp -n -r (defmacro org-unmodified (&rest body) ((def)) "Execute body without changing `buffer-modified-p'." `(set-buffer-modified-p ((back)) (prog1 (buffer-modified-p) ,@body))) #+end_src [[((def))][Line ((def))]] contains the macro name. Later at line [[((back))]], backquoting is used. #+end_example When exported, this is translated to: #+begin_src emacs-lisp -n -r (defmacro org-unmodified (&rest body) ((def)) "Execute body without changing `buffer-modified-p'." `(set-buffer-modified-p ((back)) (prog1 (buffer-modified-p) ,@body))) #+end_src [[((def))][Line ((def))]] contains the macro name. Later at line [[((back))]], backquoting is used. Thanks to Ilya Shlyakhter for proposing this feature set. Thanks to Sebastian Rose for the key Javascript element that made the remote highlighting possible. *** Capture column view into a different file. The :id parameter for the dynamic block capturing column view can now truly be an ID that will also be found in a different file. Also, it can be like =file:path/to/file=, to capture the global column view from a different file. Thanks to Francois Lagarde for his report that IDs outside the current file would not work. * Version 6.16 :PROPERTIES: :VISIBILITY: content :END: Cleanup of many small bugs, and one new feature. ** Details *** References to last table row with special names Fields in the last row of a table can now be referenced with $LR1, $LR2, etc. These references can appear both on the left hand side and right hand side of a formula. * Version 6.15f This version reverses the introduction of @0 as a reference to the last rwo in a table, because of a conflict with the use of @0 for the current row. * Version 6.15 ** Overview - All known LaTeX export issues fixed - Captions and attributes for figures and tables. - Better implementation for entry IDs - Spreadsheet references to the last table line. - Old syntax for link attributes abandoned ** Incompatible changes *** Old syntax for link attributes abandoned There used to be a syntax for setting link attributes for HTML export by enclosing the attributes into double braces and adding them to the link itself, like #+begin_example [[./img/a.jpg{{alt="an image"}}] ] #+end_example This syntax is not longer supported, use instead #+begin_src org ,#+ATTR_HTML: alt="an image" [[./img/a.jpg] ] #+end_src ** Details *** All known LaTeX export issues fixed All the remaining issues with the LaTeX exporter have hopefully been addressed in this release. In particular, this covers quoting of special characters in tables and problems with exporting files where the headline is in the first line, or with an active region. *** Captions and attributes for figures and tables. Tables, and Hyperlinks that represent inlined images, can now be equipped with additional information that will be used during export. The information will be taken from the following special lines in the buffer and apply to the first following table or link. - #+CAPTION: :: The caption of the image or table. This string should be processed according to the export backend, but this is not yet done. - #+LABEL: :: A label to identify the figure/table for cross references. For HTML export, this string will become the ID for the ~
C-c '@
(that is =C-c= followed by a
single quote) can now also be used to switch to a special
editing mode for fixed-width sections. The default mode is
=artist-mode= which allows you to create ASCII drawings.
It works like this: Enter the editing mode with
@C-c '@
. An indirect buffer will be created and
narrowed to the fixed-width region. Edit the drawing, and
press @C-c '@
again to exit.
Lines in a fixed-width region should be preceded by a colon
followed by at least one space. These will be removed during
editing, and then added back when you exit the editing mode.
Using the command in an empty line will create a new
fixed-width region.
This new feature arose from a discussion involving Scott
Otterson, Sebastian Rose and Will Henney.
*** /org-plot.el/ is now part of Org.
You can run it by simple calling org-plot/gnuplot.
Documentation is not yet included with Org, please refer to
http://github.com/eschulte/org-plot/tree/master until we have
moved the docs into Org or Worg.
Thanks to Eric Schulte for this great contribution.
*** Tags can be used to select the export part of a document
You may now use tags to select parts of a document for
inclusion into the export, and to exclude other parts. This
behavior is governed by two new variables:
=org-export-select-tags= and =org-export-exclude-tags=.
These default to =("export")= and =("noexport")=, but can be
changed, even to include a list of several tags.
Org first checks if any of the /select/ tags is present in
the buffer. If yes, all trees that do not carry one of these
tags will be excluded. If a selected tree is a subtree, the
heading hierarchy above it will also be selected for export,
but not the text below those headings. If none of the select
tags is found anywhere in the buffer, the whole buffer will
be selected for export. Finally, all subtrees that are
marked by any of the /exclude/ tags will be removed from the
export buffer.
You may set these tags with in-buffer options
=EXPORT_SELECT_TAGS= and =EXPORT_EXCLUDE_TAGS=.
I love this feature. Thanks to Richard G Riley for coming
up with the idea.
*** Prefix interpretation when storing remember notes
The prefix argument to the `C-c C-c' command that finishes a
remember process is now interpreted differently:
: C-c C-c Store the note to predefined file and headline
: C-u C-c C-c Like C-c C-c, but immediately visit the note
: in its new location.
: C-1 C-c C-c Select the storage location interactively
: C-0 C-c C-c Re-use the last used location
This was requested by John Wiegley.
*** Yanking inserts folded subtrees
If the kill is a subtree or a sequence of subtrees, yanking
them with =C-y= will leave all the subtrees in a folded
state. This basically means, that kill and yank are now
much more useful in moving stuff around in your outline. If
you do not like this, customize the variable
=org-yank-folded-subtrees=.
Right now, I am only binding =C-y= to this new function,
should I modify all bindings of yank? Do we need to amend
=yank-pop= as well?
This feature was requested by John Wiegley.
*** Column view capture tables can have formulas, plotting info
If you attach formulas and plotting instructions to a table
capturing column view, these extra lines will now survive an
update of the column view capture, and any formulas will be
re-applied to the captured table. This works by keeping any
continuous block of comments before and after the actual
table.
*** In column view, date stamps can be changed with S-cursor keys
If a property value is a time stamp, S-left and S-right can
now be used to shift this date around while in column view.
This was a request by Chris Randle.
*** The note buffer for clocking out now mentions the task
This was a request by Peter Frings.
*** Sorting entries alphabetically ignores TODO keyword and priority
Numerical and alphanumerical sorting now skips any TODO
keyword or priority cookie when constructing the comparison
string. This was a request by Wanrong Lin.
*** Agenda views can sort entries by TODO state
You can now define a sorting strategy for agenda entries that
does look at the TODO state of the entries. Sorting by TODO
entry does first separate the non-done from the done states.
Within each class, the entries are sorted not alphabetically,
but in definition order. So if you have a sequence of TODO
entries defined, the entries will be sorted according to the
position of the keyword in this sequence.
This follows an idea and sample implementation by Christian
Egli.
*** New face =org-scheduled= for entries scheduled in the future.
This was a request by Richard G Riley.
*** Remember templates for gnus links can now use the :to escape.
Thanks to Tommy Lindgren for a patch to this effect.
*** The file specification in a remember template may now be a function
Thanks to Gregory Sullivan for a patch to this effect.
*** Categories in iCalendar export now include local tags
The locally defined tags are now listed as categories when
exporting to iCalendar format. Org's traditional file/tree
category is now the last category in this list. Configure
the variable =org-icalendar-categories= to modify or revert
this behavior.
This was a request by Charles Philip Chan.
*** It is now possible to define filters for column view
The filter can modify the value that will be displayed in a
column, for example it can cut out a part of a time stamp.
For more information, look at the variable
=org-columns-modify-value-for-display-function=.
*** Disabling integer increment during table field copy
Prefix arg 0 to S-RET does the trick.
This was a request by Chris Randle.
* Older changes
For older Changes, see [[file:Changes_old.org]]