6 ** Emacs 21 support has been dropped
11 Do not use Org mode 7.xx with Emacs 21, use [[http://orgmode.org/org-6.36c.zip][version 6.36c]] instead.
13 ** XEmacs support requires the XEmacs development version
18 To use Org mode 7.xx with XEmacs, you need to run the developer
19 version of XEmacs. We were about to drop XEmacs support entirely,
20 but Michael Sperber stepped in and made changes to XEmacs that made
21 it easier to keep the support. Thanks to Michael for this
24 ** New keys for TODO sparse trees
29 The key =C-c C-v= is now reserved for Org Babel action. TODO sparse
30 trees can still be made with =C-c / t= (all not-done states) and =C-c /
33 ** The Agenda =org-agenda-ndays= is now obsolete
38 The variable =org-agenda-ndays= is obsolete - please use
39 =org-agenda-span= instead.
41 Thanks to Julien Danjou for this.
43 ** Changes to the intended use of =org-export-latex-classes=
48 So far this variable has been used to specify the complete header of the
49 LaTeX document, including all the =\usepackage= calls necessary for the
50 document. This setup makes it difficult to maintain the list of
51 packages that Org itself would like to call, for example for the special
52 symbol support it needs.
54 First of all, you can *opt out of this change* in the following way: You
55 can say: /I want to have full control over headers, and I will take
56 responsibility to include the packages Org needs/. If that is what you
57 want, add this to your configuration and skip the rest of this section
58 (except maybe for the description of the =[EXTRA]= place holder):
60 #+begin_src emacs-lisp
61 (setq org-export-latex-default-packages-alist nil
62 org-export-latex-packages-alist nil)
65 /Continue to read here if you want to go along with the modified setup./
67 There are now two variables that should be used to list the LaTeX
68 packages that need to be included in all classes. The header definition
69 in =org-export-latex-classes= should then not contain the corresponding
70 =\usepackage= calls (see below).
72 The two new variables are:
74 1. =org-export-latex-default-packages-alist= :: This is the variable
75 where Org-mode itself puts the packages it needs. Normally you
76 should not change this variable. The only reason to change it
77 anyway is when one of these packages causes a conflict with another
78 package you want to use. Then you can remove that packages and
79 hope that you are not using Org-mode functionality that needs it.
81 2. =org-export-latex-packages-alist= :: This is the variable where you
82 can put the packages that you'd like to use across all classes.
84 The sequence how these customizations will show up in the LaTeX
87 1. Header from =org-export-latex-classes=
88 2. =org-export-latex-default-packages-alist=
89 3. =org-export-latex-packages-alist=
90 4. Buffer-specific things set with =#+LaTeX_HEADER:=
92 If you want more control about which segment is placed where, or if you
93 want, for a specific class, have full control over the header and
94 exclude some of the automatic building blocks, you can put the following
95 macro-like place holders into the header:
98 [DEFAULT-PACKAGES] \usepackage statements for default packages
99 [NO-DEFAULT-PACKAGES] do not include any of the default packages
100 [PACKAGES] \usepackage statements for packages
101 [NO-PACKAGES] do not include the packages
102 [EXTRA] the stuff from #+LaTeX_HEADER
103 [NO-EXTRA] do not include #+LaTeX_HEADER stuff
106 If you have currently customized =org-export-latex-classes=, you should
107 revise that customization and remove any package calls that are covered
108 by =org-export-latex-default-packages-alist=. This applies to the
127 If one of these packages creates a conflict with another package you are
128 using, you can remove it from =org-export-latex-default-packages-alist=.
129 But then you risk that some of the advertised export features of Org
130 will not work properly.
132 You can also consider moving packages that you use in all classes to
133 =org-export-latex-packages-alist=. If necessary, put the place holders
134 so that the packages get loaded in the right sequence. As said above,
135 for backward compatibility, if you omit the place holders, all the
136 variables will dump their content at the end of the header.
138 ** The constant =org-html-entities= is obsolete
143 Its content is now part of the new constant =org-entities=, which is
144 defined in the file org-entities.el. =org-html-entities= was an internal
145 variable, but it is possible that some users did write code using it.
147 ** `org-bbdb-anniversary-format-alist' has changed
152 Please check the docstring and update your settings accordingly.
154 ** Deleted =org-mode-p=
159 This function has been deleted: please update your code.
161 * Important new features
163 ** New Org to ODT exporter
168 Jambunathan's Org to ODT exporter is now part of Org.
170 To use it, it `C-c C-e o' in an Org file. See the documentation for more
171 information on how to customize it.
173 ** org-capture.el is now the default capture system
178 This replaces the earlier system org-remember. The manual only describes
179 org-capture, but for people who prefer to continue to use org-remember,
180 we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
183 The new system has a technically cleaner implementation and more
184 possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
185 announcement]] for more details.
187 To switch over to the new system:
191 : M-x org-capture-import-remember-templates RET
193 to get a translated version of your remember templates into the
194 new variable =org-capture-templates=. This will "mostly" work,
195 but maybe not for all cases. At least it will give you a good
196 place to modify your templates. After running this command,
197 enter the customize buffer for this variable with
199 : M-x customize-variable RET org-capture-templates RET
201 and convince yourself that everything is OK. Then save the
204 2. Bind the command =org-capture= to a key, similar to what you did
207 : (define-key global-map "\C-cc" 'org-capture)
209 If your fingers prefer =C-c r=, you can also use this key once
210 you have decided to move over completely to the new
211 implementation. During a test time, there is nothing wrong
212 with using both system in parallel.
217 *** org-eshell.el (Konrad Hinsen)
222 Implement links to eshell buffers.
224 *** org-special-blocks (Carsten Dominik)
229 This package generalizes the #+begin_foo and #+end_foo tokens.
231 To use, put the following in your init file:
234 (require 'org-special-blocks)
237 The tokens #+begin_center, #+begin_verse, etc. existed previously. This
238 package generalizes them (at least for the LaTeX and html exporters). When
239 a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
240 into \begin{foo}. The text inside the environment is not protected, as
241 text inside environments generally is. When #+begin_foo is encountered by
242 the html exporter, a div with class foo is inserted into the HTML file. It
243 is up to the user to add this class to his or her stylesheet if this div is
246 *** org-taskjuggler.el (Christian Egli)
251 Christian Egli's /org-taskjuggler.el/ module is now part of Org. He
252 also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
254 *** org-ctags.el (Paul Sexton)
259 Targets like =<<my target>>= can now be found by Emacs' etag
260 functionality, and Org-mode links can be used to to link to etags, also
261 in non-Org-mode files. For details, see the file /org-ctags.el/.
263 This feature uses a new hook =org-open-link-functions= which will call
264 function to do something special with text links.
266 Thanks to Paul Sexton for this contribution.
268 *** org-docview.el (Jan Böcker)
273 This new module allows links to various file types using docview, where
274 Emacs displays images of document pages. Docview link types can point
275 to a specific page in a document, for example to page 131 of the
278 : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
280 Thanks to Jan Böcker for this contribution.
282 ** New Babel libraries
284 - ob-picolisp.el (Thorsten Jolitz)
285 - ob-fortran.el (Sergey Litvinov)
286 - ob-shen.el (Eric Schulte)
287 - ob-maxima.el (Eric S Fraga)
288 - ob-java.el (Eric Schulte)
289 - ob-lilypond.el (Martyn Jago)
290 - ob-awk.el (Eric Schulte)
292 * Other new features and various enhancements
296 *** Org-Bibtex -- major improvements
301 Provides support for managing bibtex bibliographical references
302 data in headline properties. Each headline corresponds to a
303 single reference and the relevant bibliographic meta-data is
304 stored in headline properties, leaving the body of the headline
305 free to hold notes and comments. Org-bibtex is aware of all
306 standard bibtex reference types and fields.
308 The key new functions are
310 - org-bibtex-check :: queries the user to flesh out all required
311 (and with prefix argument optional) bibtex fields available
312 for the specific reference =type= of the current headline.
314 - org-bibtex-create :: Create a new entry at the given level,
315 using org-bibtex-check to flesh out the relevant fields.
317 - org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
318 formatted Org-mode headline into the current buffer
320 - org-bibtex-export-to-kill-ring :: Export the current headline
321 to the kill ring as a formatted bibtex entry.
325 *** org-gnus.el now allows link creation from messages
330 You can now create links from messages. This is particularily
331 useful when the user wants to stored messages that he sends, for
332 later check. Thanks to Ulf Stegemann for the patch.
336 *** Modified link escaping
341 David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
343 : Percent escaping is used in Org mode to escape certain characters
344 : in links that would either break the parser (e.g. square brackets
345 : in link target oder description) or are not allowed to appear in
346 : a particular link type (e.g. non-ascii characters in a http:
349 : With this change in place Org will apply percent escaping and
350 : unescaping more consistently especially for non-ascii characters.
351 : Additionally some of the outstanding bugs or glitches concerning
352 : percent escaped links are solved.
354 Thanks a lot to David for this work.
358 *** Make =org-store-link= point to directory in a dired buffer
363 When, in a dired buffer, the cursor is not in a line listing a
364 file, `org-store-link' will store a link to the directory.
366 Patch by Stephen Eglen.
370 *** Allow regexps in =org-file-apps= to capture link parameters
375 The way extension regexps in =org-file-apps= are handled has
376 changed. Instead of matching against the file name, the regexps
377 are now matched against the whole link, and you can use grouping
378 to extract link parameters which you can then use in a command
379 string to be executed.
381 For example, to allow linking to PDF files using the syntax
382 =file:/doc.pdf::<page number>=, you can add the following entry to
386 Extension: \.pdf::\([0-9]+\)\'
387 Command: evince "%s" -p %1
390 Thanks to Jan Böcker for a patch to this effect.
394 *** Allow relative time when scheduling/adding a deadline
399 You can now use relative duration strings like "-2d" or "++3w"
400 when calling =org-schedule= or =org-deadline=: it will schedule
401 (or set the deadline for) the item respectively two days before
402 today and three weeks after the current timestamp, if any.
404 You can use this programmatically: =(org-schedule nil "+2d")=
405 will work on the current entry.
407 You can also use this while (bulk-)rescheduling and
408 (bulk-)resetting the deadline of (several) items from the agenda.
410 Thanks to Memnon Anon for a heads up about this!
415 *** American-style dates are now understood by =org-read-date=
420 So when you are prompted for a date, you can now answer like this
424 2/5 --> <CURRENT-YEAR>-02-05
429 *** =org-agenda-custom-commands= has a default value
434 This option used to be `nil' by default. This now has a default
435 value, displaying an agenda and all TODOs. See the docstring for
436 details. Thanks to Carsten for this.
439 *** Improved filtering through =org-agenda-to-appt=
444 The new function allows the user to refine the scope of entries
445 to pass to =org-agenda-get-day-entries= and allows to filter out
446 entries using a function.
448 Thanks to Peter Münster for raising a related issue and to
449 Tassilo Horn for this idea. Also thanks to Peter Münster for
450 [[git:68ffb7a7][fixing a small bug]] in the final implementation.
454 *** Allow ap/pm times in agenda time grid
459 Times in the agenda can now be displayed in am/pm format. See the new
460 variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for
461 a patch to this effect.
465 *** Agenda: Added a bulk "scattering" command
470 =B S= in the agenda buffer will cause tasks to be rescheduled a random
471 number of days into the future, with 7 as the default. This is useful
472 if you've got a ton of tasks scheduled for today, you realize you'll
473 never deal with them all, and you just want them to be distributed
474 across the next N days. When called with a prefix arg, rescheduling
475 will avoid weekend days.
477 Thanks to John Wiegley for this.
481 *** Simplification of org-export-html-preamble/postamble
486 When set to `t', export the preamble/postamble as usual, honoring the
487 =org-export-email/author/creator-info= variables.
489 When set to a formatting string, insert this string. See the docstring
490 of these variable for details about available %-sequences.
492 You can set =:html-preamble= in publishing project in the same way: `t'
493 means to honor =:email/creator/author-info=, and a formatting string
494 will insert a string.
496 *** New exporters to Latin-1 and UTF-8
501 While Ulf Stegemann was going through the entities list to improve the
502 LaTeX export, he had the great idea to provide representations for many
503 of the entities in Latin-1, and for all of them in UTF-8. This means
504 that we can now export files rich in special symbols to Latin-1 and to
505 UTF-8 files. These new exporters can be reached with the commands =C-c
506 C-e n= and =C-c C-e u=, respectively.
508 When there is no representation for a given symbol in the targeted
509 coding system, you can choose to keep the TeX-macro-like
510 representation, or to get an "explanatory" representation. For
511 example, =\simeq= could be represented as "[approx. equal to]". Please
512 use the variable =org-entities-ascii-explanatory= to state your
515 *** HTML export: Add class to outline containers using property
520 The =HTML_CONTAINER_CLASS= property can now be used to add a class name
521 to the outline container of a node in HTML export.
523 *** Throw an error when creating an image from a LaTeX snippet fails
528 This behavior can be configured with the new option variable
529 =org-format-latex-signal-error=.
531 *** Support for creating BEAMER presentations from Org-mode documents
536 Org-mode documents or subtrees can now be converted directly in to
537 BEAMER presentation. Turning a tree into a simple presentations is
538 straight forward, and there is also quite some support to make richer
539 presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
542 Thanks to everyone who has contributed to the discussion about BEAMER
543 support and how it should work. This was a great example for how this
544 community can achieve a much better result than any individual could.
548 *** Refile targets can now be cached
553 You can turn on caching of refile targets by setting the variable
554 =org-refile-use-cache=. This should speed up refiling if you have many
555 eligible targets in many files. If you need to update the cache
556 because Org misses a newly created entry or still offers a deleted one,
559 *** New logging support for refiling
564 Whenever you refile an item, a time stamp and even a note can be added
565 to this entry. For details, see the new option =org-log-refile=.
567 Thanks to Charles Cave for this idea.
571 *** In-buffer completion is now done using John Wiegleys pcomplete.el
576 Thanks to John Wiegley for much of this code.
580 *** New command =org-table-transpose-table-at-point=
585 See the docstring. This hack from Juan Pechiar is now part of Org's
586 core. Thanks to Juan!
588 *** Display field's coordinates when editing it with =C-c `=
593 When editing a field with =C-c `=, the field's coordinate will the
594 displayed in the buffer.
596 Thanks to Michael Brand for a patch to this effect.
598 *** Spreadsheet computation of durations and time values
603 If you want to compute time values use the =T= flag, either in Calc
604 formulas or Elisp formulas:
606 | Task 1 | Task 2 | Total |
607 |--------+--------+---------|
608 | 35:00 | 35:00 | 1:10:00 |
609 #+TBLFM: @2$3=$1+$2;T
611 Values must be of the form =[HH:]MM:SS=, where hours are optional.
613 Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
616 *** Implement formulas applying to field ranges
621 Carsten implemented this field-ranges formulas.
623 : A frequently requested feature for tables has been to be able to define
624 : row formulas in a way similar to column formulas. The patch below allows
631 : as the left hand side for table formulas in order to write a formula that
632 : is valid for an entire column or for a rectangular section in a
635 Thanks a lot to Carsten for this.
637 *** Sending radio tables from org buffers is now allowed
642 Org radio tables can no also be sent inside Org buffers. Also, there
643 is a new hook which get called after a table has been sent.
645 Thanks to Seweryn Kokot.
649 *** Improved handling of lists
654 Nicolas Goaziou extended and improved the way Org handles lists.
656 1. Indentation of text determines again end of items in lists. So, some
657 text less indented than the previous item doesn't close the whole
658 list anymore, only all items more indented than it.
660 2. Alphabetical bullets are implemented, through the use of the
661 variable `org-alphabetical-lists'. This also adds alphabetical
662 counters like [@c] or [@W].
664 3. Lists can now safely contain drawers, inline tasks, or various
665 blocks, themselves containing lists. Two variables are controlling
666 this: `org-list-forbidden-blocks', and `org-list-export-context'.
668 4. Improve `newline-and-indent' (C-j): used in an item, it will keep
669 text from moving at column 0. This allows to split text and make
670 paragraphs and still not break the list.
672 5. Improve `org-toggle-item' (C-c -): used on a region with standard
673 text, it will change the region into one item. With a prefix
674 argument, it will fallback to the previous behavior and make every
675 line in region an item. It permits to easily integrate paragraphs
678 6. `fill-paragraph' (M-q) now understands lists. It can freely be used
679 inside items, or on text just after a list, even with no blank line
680 around, without breaking list structure.
682 Thanks a lot to Nicolas for all this!
684 ** Inline display of linked images
689 Images can now be displayed inline. The key C-c C-x C-v does toggle the
690 display of such images. Note that only image links that have no
691 description part will be inlined.
693 ** Implement offsets for ordered lists
698 If you want to start an ordered plain list with a number different from
699 1, you can now do it like this:
701 : 1. [@start:12] will star a lit a number 12
703 ** Babel: code block body expansion for table and preview
708 In org-babel, code is "expanded" prior to evaluation. I.e. the code that
709 is actually evaluated comprises the code block contents, augmented with
710 the extra code which assigns the referenced data to variables. It is now
711 possible to preview expanded contents, and also to expand code during
712 during tangling. This expansion takes into account all header arguments,
715 A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can
716 be used from inside of a source code block to preview its expanded
717 contents (which can be very useful for debugging). tangling
719 The expanded body can now be tangled, this includes variable values
720 which may be the results of other source-code blocks, or stored in
721 headline properties or tables. One possible use for this is to allow
722 those using org-babel for their emacs initialization to store values
723 (e.g. usernames, passwords, etc...) in headline properties or in tables.
725 Org-babel now supports three new header arguments, and new default
726 behavior for handling horizontal lines in tables (hlines), column names,
727 and rownames across all languages.
729 ** Editing Convenience and Appearance
731 *** New command =org-copy-visible= (=C-c C-x v=)
736 This command will copy the visible text in the region into the kill
737 ring. Thanks to Florian Beck for this function and to Carsten for
738 adding it to org.el and documenting it!
740 *** Make it possible to protect hidden subtrees from being killed by =C-k=
745 See the new variable =org-ctrl-k-protect-subtree=. This was a request
748 *** Implement pretty display of entities, sub-, and superscripts.
753 The command =C-c C-x \= toggles the display of Org's special entities
754 like =\alpha= as pretty unicode characters. Also, sub and superscripts
755 are displayed in a pretty way (raised/lower display, in a smaller
756 font). If you want to exclude sub- and superscripts, see the variable
757 =org-pretty-entities-include-sub-superscripts=.
759 Thanks to Eric Schulte and Ulf Stegeman for making this possible.
761 *** New faces for title, date, author and email address lines
766 The keywords in these lines are now dimmed out, and the title is
767 displayed in a larger font, and a special font is also used for author,
768 date, and email information. This is implemented by the following new
773 =org-document-info-keyword=
775 In addition, the variable =org-hidden-keywords= can be used to make the
776 corresponding keywords disappear.
778 Thanks to Dan Davison for this feature.
780 *** Simpler way to specify faces for tags and todo keywords
785 The variables =org-todo-keyword-faces=, =org-tag-faces=, and
786 =org-priority-faces= now accept simple color names as specifications.
787 The colors will be used as either foreground or background color for
788 the corresponding keyword. See also the variable
789 =org-faces-easy-properties=, which governs which face property is
790 affected by this setting.
792 This is really a great simplification for setting keyword faces. The
793 change is based on an idea and patch by Ryan Thompson.
795 *** <N> in tables now means fixed width, not maximum width
800 Requested by Michael Brand.
802 *** Better level cycling function
807 =TAB= in an empty headline cycles the level of that headline through
808 likely states. Ryan Thompson implemented an improved version of this
809 function, which does not depend upon when exactly this command is used.
810 Thanks to Ryan for this improvement.
817 For paragraph text, =org-adaptive-fill-function= did not handle the
818 base case of regular text which needed to be filled. This is now
819 fixed. Among other things, it allows email-style ">" comments to be
822 Thanks to Dan Hackney for this patch.
824 *** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
829 Thanks to Richard Riley for triggering this change.
831 *** Better automatic letter selection for TODO keywords
836 When all first letters of keywords have been used, Org now assigns more
837 meaningful characters based on the keywords.
839 Thanks to Mikael Fornius for this patch.
843 *** Clock: Allow synchronous update of timestamps in CLOCK log
848 Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease
849 the two timestamps on this line so that duration will keep the same.
850 Note that duration can still be slightly modified in case a timestamp
853 Thanks to Rainer Stengele for this idea.
855 *** Localized clock tables
860 Clock tables now support a new new =:lang= parameter, allowing the user
861 to customize the localization of the table headers. See the variable
862 =org-clock-clocktable-language-setup= which controls available
865 *** Show clock overruns in mode line
870 When clocking an item with a planned effort, overrunning the planned
871 time is now made visible in the mode line, for example using the new
872 face =org-mode-line-clock-overrun=, or by adding an extra string given
873 by =org-task-overrun-text=.
875 Thanks to Richard Riley for a patch to this effect.
877 *** Clock reports can now include the running, incomplete clock
882 If you have a clock running, and the entry being clocked falls into the
883 scope when creating a clock table, the time so far spent can be added
884 to the total. This behavior depends on the setting of
885 =org-clock-report-include-clocking-task=. The default is =nil=.
887 Thanks to Bernt Hansen for this useful addition.
891 *** Improvements with inline tasks and indentation
896 There is now a configurable way on how to export inline tasks. See the
897 new variable =org-inlinetask-export-templates=.
899 Thanks to Nicolas Goaziou for coding these changes.
901 *** A property value of "nil" now means to unset a property
906 This can be useful in particular with property inheritance, if some
907 upper level has the property, and some grandchild of it would like to
908 have the default settings (i.e. not overruled by a property) back.
910 Thanks to Robert Goldman and Bernt Hansen for suggesting this change.
912 *** New helper functions in org-table.el
917 There are new functions to access and write to a specific table field.
918 This is for hackers, and maybe for the org-babel people.
923 org-table-current-line
927 *** Archiving: Allow to reverse order in target node
932 The new option =org-archive-reversed-order= allows to have archived
933 entries inserted in a last-on-top fashion in the target node.
935 This was requested by Tom.
937 *** Org-reveal: Double prefix arg shows the entire subtree of the parent
942 This can help to get out of an inconsistent state produced for example
943 by viewing from the agenda.
945 This was a request by Matt Lundin.