Commit 2a12997c authored by Bastien Guerry's avatar Bastien Guerry
Browse files

etc/ORG-NEWS: New file documenting changes between Org 6.34 and current one.

parent 3959f369
ORG NEWS -- history of user-visible changes. -*- org -*-
Copyright (C) 2012 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Org bug reports to emacs-orgmode@gnu.org.
* Incompatible changes
** Emacs 21 support has been dropped
:PROPERTIES:
:OrgVersion: 7.01
:END:
Do not use Org mode 7.xx with Emacs 21, use [[http://orgmode.org/org-6.36c.zip][version 6.36c]] instead.
** XEmacs support requires the XEmacs development version
:PROPERTIES:
:OrgVersion: 7.01
:END:
To use Org mode 7.xx with XEmacs, you need to run the developer
version of XEmacs. We were about to drop XEmacs support entirely,
but Michael Sperber stepped in and made changes to XEmacs that made
it easier to keep the support. Thanks to Michael for this
last-minute save.
** New keys for TODO sparse trees
:PROPERTIES:
:OrgVersion: 7.01
:END:
The key =C-c C-v= is now reserved for Org Babel action. TODO sparse
trees can still be made with =C-c / t= (all not-done states) and =C-c /
T= (specific states).
** The Agenda =org-agenda-ndays= is now obsolete
:PROPERTIES:
:OrgVersion: 7.4
:END:
The variable =org-agenda-ndays= is obsolete - please use
=org-agenda-span= instead.
Thanks to Julien Danjou for this.
** Changes to the intended use of =org-export-latex-classes=
:PROPERTIES:
:OrgVersion: 6.35
:END:
So far this variable has been used to specify the complete header of the
LaTeX document, including all the =\usepackage= calls necessary for the
document. This setup makes it difficult to maintain the list of
packages that Org itself would like to call, for example for the special
symbol support it needs.
First of all, you can *opt out of this change* in the following way: You
can say: /I want to have full control over headers, and I will take
responsibility to include the packages Org needs/. If that is what you
want, add this to your configuration and skip the rest of this section
(except maybe for the description of the =[EXTRA]= place holder):
#+begin_src emacs-lisp
(setq org-export-latex-default-packages-alist nil
org-export-latex-packages-alist nil)
#+end_src
/Continue to read here if you want to go along with the modified setup./
There are now two variables that should be used to list the LaTeX
packages that need to be included in all classes. The header definition
in =org-export-latex-classes= should then not contain the corresponding
=\usepackage= calls (see below).
The two new variables are:
1. =org-export-latex-default-packages-alist= :: This is the variable
where Org-mode itself puts the packages it needs. Normally you
should not change this variable. The only reason to change it
anyway is when one of these packages causes a conflict with another
package you want to use. Then you can remove that packages and
hope that you are not using Org-mode functionality that needs it.
2. =org-export-latex-packages-alist= :: This is the variable where you
can put the packages that you'd like to use across all classes.
The sequence how these customizations will show up in the LaTeX
document are:
1. Header from =org-export-latex-classes=
2. =org-export-latex-default-packages-alist=
3. =org-export-latex-packages-alist=
4. Buffer-specific things set with =#+LaTeX_HEADER:=
If you want more control about which segment is placed where, or if you
want, for a specific class, have full control over the header and
exclude some of the automatic building blocks, you can put the following
macro-like place holders into the header:
#+begin_example
[DEFAULT-PACKAGES] \usepackage statements for default packages
[NO-DEFAULT-PACKAGES] do not include any of the default packages
[PACKAGES] \usepackage statements for packages
[NO-PACKAGES] do not include the packages
[EXTRA] the stuff from #+LaTeX_HEADER
[NO-EXTRA] do not include #+LaTeX_HEADER stuff
#+end_example
If you have currently customized =org-export-latex-classes=, you should
revise that customization and remove any package calls that are covered
by =org-export-latex-default-packages-alist=. This applies to the
following packages:
- inputenc
- fontenc
- fixltx2e
- graphicx
- longtable
- float
- wrapfig
- soul
- t1enc
- textcomp
- marvosym
- wasysym
- latexsym
- amssymb
- hyperref
If one of these packages creates a conflict with another package you are
using, you can remove it from =org-export-latex-default-packages-alist=.
But then you risk that some of the advertised export features of Org
will not work properly.
You can also consider moving packages that you use in all classes to
=org-export-latex-packages-alist=. If necessary, put the place holders
so that the packages get loaded in the right sequence. As said above,
for backward compatibility, if you omit the place holders, all the
variables will dump their content at the end of the header.
** The constant =org-html-entities= is obsolete
:PROPERTIES:
:OrgVersion: 6.35
:END:
Its content is now part of the new constant =org-entities=, which is
defined in the file org-entities.el. =org-html-entities= was an internal
variable, but it is possible that some users did write code using it.
** `org-bbdb-anniversary-format-alist' has changed
:PROPERTIES:
:OrgVersion: 7.5
:END:
Please check the docstring and update your settings accordingly.
** Deleted =org-mode-p=
:PROPERTIES:
:OrgVersion: 7.8
:END:
This function has been deleted: please update your code.
* Important new features
** New Org to ODT exporter
:PROPERTIES:
:OrgVersion: 7.8
:END:
Jambunathan's Org to ODT exporter is now part of Org.
To use it, it `C-c C-e o' in an Org file. See the documentation for more
information on how to customize it.
** org-capture.el is now the default capture system
:PROPERTIES:
:OrgVersion: 7.01
:END:
This replaces the earlier system org-remember. The manual only describes
org-capture, but for people who prefer to continue to use org-remember,
we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
remember]].
The new system has a technically cleaner implementation and more
possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
announcement]] for more details.
To switch over to the new system:
1. Run
: M-x org-capture-import-remember-templates RET
to get a translated version of your remember templates into the
new variable =org-capture-templates=. This will "mostly" work,
but maybe not for all cases. At least it will give you a good
place to modify your templates. After running this command,
enter the customize buffer for this variable with
: M-x customize-variable RET org-capture-templates RET
and convince yourself that everything is OK. Then save the
customization.
2. Bind the command =org-capture= to a key, similar to what you did
with org-remember:
: (define-key global-map "\C-cc" 'org-capture)
If your fingers prefer =C-c r=, you can also use this key once
you have decided to move over completely to the new
implementation. During a test time, there is nothing wrong
with using both system in parallel.
* New libraries
** New Org libraries
*** org-eshell.el (Konrad Hinsen)
:PROPERTIES:
:OrgVersion: 7.8
:END:
Implement links to eshell buffers.
*** org-special-blocks (Carsten Dominik)
:PROPERTIES:
:OrgVersion: 7.8
:END:
This package generalizes the #+begin_foo and #+end_foo tokens.
To use, put the following in your init file:
#+BEGIN_EXAMPLE
(require 'org-special-blocks)
#+END_EXAMPLE
The tokens #+begin_center, #+begin_verse, etc. existed previously. This
package generalizes them (at least for the LaTeX and html exporters). When
a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
into \begin{foo}. The text inside the environment is not protected, as
text inside environments generally is. When #+begin_foo is encountered by
the html exporter, a div with class foo is inserted into the HTML file. It
is up to the user to add this class to his or her stylesheet if this div is
to mean anything.
*** org-taskjuggler.el (Christian Egli)
:PROPERTIES:
:OrgVersion: 7.01
:END:
Christian Egli's /org-taskjuggler.el/ module is now part of Org. He
also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
*** org-ctags.el (Paul Sexton)
:PROPERTIES:
:OrgVersion: 6.34
:END:
Targets like =<<my target>>= can now be found by Emacs' etag
functionality, and Org-mode links can be used to to link to etags, also
in non-Org-mode files. For details, see the file /org-ctags.el/.
This feature uses a new hook =org-open-link-functions= which will call
function to do something special with text links.
Thanks to Paul Sexton for this contribution.
*** org-docview.el (Jan Böcker)
:PROPERTIES:
:OrgVersion: 6.34
:END:
This new module allows links to various file types using docview, where
Emacs displays images of document pages. Docview link types can point
to a specific page in a document, for example to page 131 of the
Org-mode manual:
: [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
Thanks to Jan Böcker for this contribution.
** New Babel libraries
- ob-picolisp.el (Thorsten Jolitz)
- ob-fortran.el (Sergey Litvinov)
- ob-shen.el (Eric Schulte)
- ob-maxima.el (Eric S Fraga)
- ob-java.el (Eric Schulte)
- ob-lilypond.el (Martyn Jago)
- ob-awk.el (Eric Schulte)
* Other new features and various enhancements
** Hyperlinks
*** Org-Bibtex -- major improvements
:PROPERTIES:
:OrgVersion: 7.6
:END:
Provides support for managing bibtex bibliographical references
data in headline properties. Each headline corresponds to a
single reference and the relevant bibliographic meta-data is
stored in headline properties, leaving the body of the headline
free to hold notes and comments. Org-bibtex is aware of all
standard bibtex reference types and fields.
The key new functions are
- org-bibtex-check :: queries the user to flesh out all required
(and with prefix argument optional) bibtex fields available
for the specific reference =type= of the current headline.
- org-bibtex-create :: Create a new entry at the given level,
using org-bibtex-check to flesh out the relevant fields.
- org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
formatted Org-mode headline into the current buffer
- org-bibtex-export-to-kill-ring :: Export the current headline
to the kill ring as a formatted bibtex entry.
*** org-gnus.el now allows link creation from messages
:PROPERTIES:
:OrgVersion: 7.5
:END:
You can now create links from messages. This is particularily
useful when the user wants to stored messages that he sends, for
later check. Thanks to Ulf Stegemann for the patch.
*** Modified link escaping
:PROPERTIES:
:OrgVersion: 7.5
:END:
David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
: Percent escaping is used in Org mode to escape certain characters
: in links that would either break the parser (e.g. square brackets
: in link target oder description) or are not allowed to appear in
: a particular link type (e.g. non-ascii characters in a http:
: link).
:
: With this change in place Org will apply percent escaping and
: unescaping more consistently especially for non-ascii characters.
: Additionally some of the outstanding bugs or glitches concerning
: percent escaped links are solved.
Thanks a lot to David for this work.
*** Make =org-store-link= point to directory in a dired buffer
:PROPERTIES:
:OrgVersion: 6.35
:END:
When, in a dired buffer, the cursor is not in a line listing a
file, `org-store-link' will store a link to the directory.
Patch by Stephen Eglen.
*** Allow regexps in =org-file-apps= to capture link parameters
:PROPERTIES:
:OrgVersion: 6.35
:END:
The way extension regexps in =org-file-apps= are handled has
changed. Instead of matching against the file name, the regexps
are now matched against the whole link, and you can use grouping
to extract link parameters which you can then use in a command
string to be executed.
For example, to allow linking to PDF files using the syntax
=file:/doc.pdf::<page number>=, you can add the following entry to
org-file-apps:
#+begin_example
Extension: \.pdf::\([0-9]+\)\'
Command: evince "%s" -p %1
#+end_example
Thanks to Jan Böcker for a patch to this effect.
** Dates and time
*** Allow relative time when scheduling/adding a deadline
:PROPERTIES:
:OrgVersion: 7.7
:END:
You can now use relative duration strings like "-2d" or "++3w"
when calling =org-schedule= or =org-deadline=: it will schedule
(or set the deadline for) the item respectively two days before
today and three weeks after the current timestamp, if any.
You can use this programmatically: =(org-schedule nil "+2d")=
will work on the current entry.
You can also use this while (bulk-)rescheduling and
(bulk-)resetting the deadline of (several) items from the agenda.
Thanks to Memnon Anon for a heads up about this!
*** American-style dates are now understood by =org-read-date=
:PROPERTIES:
:OrgVersion: 6.35
:END:
So when you are prompted for a date, you can now answer like this
#+begin_example
2/5/3 --> 2003-02-05
2/5 --> <CURRENT-YEAR>-02-05
#+end_example
** Agenda
*** =org-agenda-custom-commands= has a default value
:PROPERTIES:
:OrgVersion: 7.8
:END:
This option used to be `nil' by default. This now has a default
value, displaying an agenda and all TODOs. See the docstring for
details. Thanks to Carsten for this.
*** Improved filtering through =org-agenda-to-appt=
:PROPERTIES:
:OrgVersion: 7.8
:END:
The new function allows the user to refine the scope of entries
to pass to =org-agenda-get-day-entries= and allows to filter out
entries using a function.
Thanks to Peter Münster for raising a related issue and to
Tassilo Horn for this idea. Also thanks to Peter Münster for
[[git:68ffb7a7][fixing a small bug]] in the final implementation.
*** Allow ap/pm times in agenda time grid
:PROPERTIES:
:OrgVersion: 7.4
:END:
Times in the agenda can now be displayed in am/pm format. See the new
variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for
a patch to this effect.
*** Agenda: Added a bulk "scattering" command
:PROPERTIES:
:OrgVersion: 7.4
:END:
=B S= in the agenda buffer will cause tasks to be rescheduled a random
number of days into the future, with 7 as the default. This is useful
if you've got a ton of tasks scheduled for today, you realize you'll
never deal with them all, and you just want them to be distributed
across the next N days. When called with a prefix arg, rescheduling
will avoid weekend days.
Thanks to John Wiegley for this.
** Exporting
*** Simplification of org-export-html-preamble/postamble
:PROPERTIES:
:OrgVersion: 7.5
:END:
When set to `t', export the preamble/postamble as usual, honoring the
=org-export-email/author/creator-info= variables.
When set to a formatting string, insert this string. See the docstring
of these variable for details about available %-sequences.
You can set =:html-preamble= in publishing project in the same way: `t'
means to honor =:email/creator/author-info=, and a formatting string
will insert a string.
*** New exporters to Latin-1 and UTF-8
:PROPERTIES:
:OrgVersion: 6.35
:END:
While Ulf Stegemann was going through the entities list to improve the
LaTeX export, he had the great idea to provide representations for many
of the entities in Latin-1, and for all of them in UTF-8. This means
that we can now export files rich in special symbols to Latin-1 and to
UTF-8 files. These new exporters can be reached with the commands =C-c
C-e n= and =C-c C-e u=, respectively.
When there is no representation for a given symbol in the targeted
coding system, you can choose to keep the TeX-macro-like
representation, or to get an "explanatory" representation. For
example, =\simeq= could be represented as "[approx. equal to]". Please
use the variable =org-entities-ascii-explanatory= to state your
preference.
*** HTML export: Add class to outline containers using property
:PROPERTIES:
:OrgVersion: 6.35
:END:
The =HTML_CONTAINER_CLASS= property can now be used to add a class name
to the outline container of a node in HTML export.
*** Throw an error when creating an image from a LaTeX snippet fails
:PROPERTIES:
:OrgVersion: 6.35
:END:
This behavior can be configured with the new option variable
=org-format-latex-signal-error=.
*** Support for creating BEAMER presentations from Org-mode documents
:PROPERTIES:
:OrgVersion: 6.34
:END:
Org-mode documents or subtrees can now be converted directly in to
BEAMER presentation. Turning a tree into a simple presentations is
straight forward, and there is also quite some support to make richer
presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
details.
Thanks to everyone who has contributed to the discussion about BEAMER
support and how it should work. This was a great example for how this
community can achieve a much better result than any individual could.
** Refiling
*** Refile targets can now be cached
:PROPERTIES:
:OrgVersion: 7.01
:END:
You can turn on caching of refile targets by setting the variable
=org-refile-use-cache=. This should speed up refiling if you have many
eligible targets in many files. If you need to update the cache
because Org misses a newly created entry or still offers a deleted one,
press =C-0 C-c C-w=.
*** New logging support for refiling
:PROPERTIES:
:OrgVersion: 6.35
:END:
Whenever you refile an item, a time stamp and even a note can be added
to this entry. For details, see the new option =org-log-refile=.
Thanks to Charles Cave for this idea.
** Completion
*** In-buffer completion is now done using John Wiegleys pcomplete.el
:PROPERTIES:
:OrgVersion: 7.4
:END:
Thanks to John Wiegley for much of this code.
** Tables
*** New command =org-table-transpose-table-at-point=
:PROPERTIES:
:OrgVersion: 7.8
:END:
See the docstring. This hack from Juan Pechiar is now part of Org's
core. Thanks to Juan!
*** Display field's coordinates when editing it with =C-c `=
:PROPERTIES:
:OrgVersion: 7.7
:END:
When editing a field with =C-c `=, the field's coordinate will the
displayed in the buffer.
Thanks to Michael Brand for a patch to this effect.
*** Spreadsheet computation of durations and time values
:PROPERTIES:
:OrgVersion: 7.6
:END:
If you want to compute time values use the =T= flag, either in Calc
formulas or Elisp formulas:
| Task 1 | Task 2 | Total |
|--------+--------+---------|
| 35:00 | 35:00 | 1:10:00 |
#+TBLFM: @2$3=$1+$2;T
Values must be of the form =[HH:]MM:SS=, where hours are optional.
Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
on this.
*** Implement formulas applying to field ranges
:PROPERTIES:
:OrgVersion: 7.5
:END:
Carsten implemented this field-ranges formulas.
: A frequently requested feature for tables has been to be able to define
: row formulas in a way similar to column formulas. The patch below allows
: things like
:
: @3=
: @2$2..@5$7=
: @I$2..@II$4=
:
: as the left hand side for table formulas in order to write a formula that
: is valid for an entire column or for a rectangular section in a
: table.