1 ORG NEWS -- history of user-visible changes. -*- org -*-
3 Copyright (C) 2012 Free Software Foundation, Inc.
4 See the end of the file for license conditions.
6 Please send Org bug reports to emacs-orgmode@gnu.org.
10 ** Emacs 21 support has been dropped
15 Do not use Org mode 7.xx with Emacs 21, use [[http://orgmode.org/org-6.36c.zip][version 6.36c]] instead.
17 ** XEmacs support requires the XEmacs development version
22 To use Org mode 7.xx with XEmacs, you need to run the developer
23 version of XEmacs. We were about to drop XEmacs support entirely,
24 but Michael Sperber stepped in and made changes to XEmacs that made
25 it easier to keep the support. Thanks to Michael for this
28 ** New keys for TODO sparse trees
33 The key =C-c C-v= is now reserved for Org Babel action. TODO sparse
34 trees can still be made with =C-c / t= (all not-done states) and =C-c /
37 ** The Agenda =org-agenda-ndays= is now obsolete
42 The variable =org-agenda-ndays= is obsolete - please use
43 =org-agenda-span= instead.
45 Thanks to Julien Danjou for this.
47 ** Changes to the intended use of =org-export-latex-classes=
52 So far this variable has been used to specify the complete header of the
53 LaTeX document, including all the =\usepackage= calls necessary for the
54 document. This setup makes it difficult to maintain the list of
55 packages that Org itself would like to call, for example for the special
56 symbol support it needs.
58 First of all, you can *opt out of this change* in the following way: You
59 can say: /I want to have full control over headers, and I will take
60 responsibility to include the packages Org needs/. If that is what you
61 want, add this to your configuration and skip the rest of this section
62 (except maybe for the description of the =[EXTRA]= place holder):
64 #+begin_src emacs-lisp
65 (setq org-export-latex-default-packages-alist nil
66 org-export-latex-packages-alist nil)
69 /Continue to read here if you want to go along with the modified setup./
71 There are now two variables that should be used to list the LaTeX
72 packages that need to be included in all classes. The header definition
73 in =org-export-latex-classes= should then not contain the corresponding
74 =\usepackage= calls (see below).
76 The two new variables are:
78 1. =org-export-latex-default-packages-alist= :: This is the variable
79 where Org-mode itself puts the packages it needs. Normally you
80 should not change this variable. The only reason to change it
81 anyway is when one of these packages causes a conflict with another
82 package you want to use. Then you can remove that packages and
83 hope that you are not using Org-mode functionality that needs it.
85 2. =org-export-latex-packages-alist= :: This is the variable where you
86 can put the packages that you'd like to use across all classes.
88 The sequence how these customizations will show up in the LaTeX
91 1. Header from =org-export-latex-classes=
92 2. =org-export-latex-default-packages-alist=
93 3. =org-export-latex-packages-alist=
94 4. Buffer-specific things set with =#+LaTeX_HEADER:=
96 If you want more control about which segment is placed where, or if you
97 want, for a specific class, have full control over the header and
98 exclude some of the automatic building blocks, you can put the following
99 macro-like place holders into the header:
102 [DEFAULT-PACKAGES] \usepackage statements for default packages
103 [NO-DEFAULT-PACKAGES] do not include any of the default packages
104 [PACKAGES] \usepackage statements for packages
105 [NO-PACKAGES] do not include the packages
106 [EXTRA] the stuff from #+LaTeX_HEADER
107 [NO-EXTRA] do not include #+LaTeX_HEADER stuff
110 If you have currently customized =org-export-latex-classes=, you should
111 revise that customization and remove any package calls that are covered
112 by =org-export-latex-default-packages-alist=. This applies to the
131 If one of these packages creates a conflict with another package you are
132 using, you can remove it from =org-export-latex-default-packages-alist=.
133 But then you risk that some of the advertised export features of Org
134 will not work properly.
136 You can also consider moving packages that you use in all classes to
137 =org-export-latex-packages-alist=. If necessary, put the place holders
138 so that the packages get loaded in the right sequence. As said above,
139 for backward compatibility, if you omit the place holders, all the
140 variables will dump their content at the end of the header.
142 ** The constant =org-html-entities= is obsolete
147 Its content is now part of the new constant =org-entities=, which is
148 defined in the file org-entities.el. =org-html-entities= was an internal
149 variable, but it is possible that some users did write code using it.
151 ** `org-bbdb-anniversary-format-alist' has changed
156 Please check the docstring and update your settings accordingly.
158 ** Deleted =org-mode-p=
163 This function has been deleted: please update your code.
165 * Important new features
167 ** New Org to ODT exporter
172 Jambunathan's Org to ODT exporter is now part of Org.
174 To use it, it `C-c C-e o' in an Org file. See the documentation for more
175 information on how to customize it.
177 ** org-capture.el is now the default capture system
182 This replaces the earlier system org-remember. The manual only describes
183 org-capture, but for people who prefer to continue to use org-remember,
184 we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
187 The new system has a technically cleaner implementation and more
188 possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
189 announcement]] for more details.
191 To switch over to the new system:
195 : M-x org-capture-import-remember-templates RET
197 to get a translated version of your remember templates into the
198 new variable =org-capture-templates=. This will "mostly" work,
199 but maybe not for all cases. At least it will give you a good
200 place to modify your templates. After running this command,
201 enter the customize buffer for this variable with
203 : M-x customize-variable RET org-capture-templates RET
205 and convince yourself that everything is OK. Then save the
208 2. Bind the command =org-capture= to a key, similar to what you did
211 : (define-key global-map "\C-cc" 'org-capture)
213 If your fingers prefer =C-c r=, you can also use this key once
214 you have decided to move over completely to the new
215 implementation. During a test time, there is nothing wrong
216 with using both system in parallel.
221 *** org-eshell.el (Konrad Hinsen)
226 Implement links to eshell buffers.
228 *** org-special-blocks (Carsten Dominik)
233 This package generalizes the #+begin_foo and #+end_foo tokens.
235 To use, put the following in your init file:
238 (require 'org-special-blocks)
241 The tokens #+begin_center, #+begin_verse, etc. existed previously. This
242 package generalizes them (at least for the LaTeX and html exporters). When
243 a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
244 into \begin{foo}. The text inside the environment is not protected, as
245 text inside environments generally is. When #+begin_foo is encountered by
246 the html exporter, a div with class foo is inserted into the HTML file. It
247 is up to the user to add this class to his or her stylesheet if this div is
250 *** org-taskjuggler.el (Christian Egli)
255 Christian Egli's /org-taskjuggler.el/ module is now part of Org. He
256 also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
258 *** org-ctags.el (Paul Sexton)
263 Targets like =<<my target>>= can now be found by Emacs' etag
264 functionality, and Org-mode links can be used to to link to etags, also
265 in non-Org-mode files. For details, see the file /org-ctags.el/.
267 This feature uses a new hook =org-open-link-functions= which will call
268 function to do something special with text links.
270 Thanks to Paul Sexton for this contribution.
272 *** org-docview.el (Jan Böcker)
277 This new module allows links to various file types using docview, where
278 Emacs displays images of document pages. Docview link types can point
279 to a specific page in a document, for example to page 131 of the
282 : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
284 Thanks to Jan Böcker for this contribution.
286 ** New Babel libraries
288 - ob-picolisp.el (Thorsten Jolitz)
289 - ob-fortran.el (Sergey Litvinov)
290 - ob-shen.el (Eric Schulte)
291 - ob-maxima.el (Eric S Fraga)
292 - ob-java.el (Eric Schulte)
293 - ob-lilypond.el (Martyn Jago)
294 - ob-awk.el (Eric Schulte)
296 * Other new features and various enhancements
300 *** Org-Bibtex -- major improvements
305 Provides support for managing bibtex bibliographical references
306 data in headline properties. Each headline corresponds to a
307 single reference and the relevant bibliographic meta-data is
308 stored in headline properties, leaving the body of the headline
309 free to hold notes and comments. Org-bibtex is aware of all
310 standard bibtex reference types and fields.
312 The key new functions are
314 - org-bibtex-check :: queries the user to flesh out all required
315 (and with prefix argument optional) bibtex fields available
316 for the specific reference =type= of the current headline.
318 - org-bibtex-create :: Create a new entry at the given level,
319 using org-bibtex-check to flesh out the relevant fields.
321 - org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
322 formatted Org-mode headline into the current buffer
324 - org-bibtex-export-to-kill-ring :: Export the current headline
325 to the kill ring as a formatted bibtex entry.
329 *** org-gnus.el now allows link creation from messages
334 You can now create links from messages. This is particularily
335 useful when the user wants to stored messages that he sends, for
336 later check. Thanks to Ulf Stegemann for the patch.
340 *** Modified link escaping
345 David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
347 : Percent escaping is used in Org mode to escape certain characters
348 : in links that would either break the parser (e.g. square brackets
349 : in link target oder description) or are not allowed to appear in
350 : a particular link type (e.g. non-ascii characters in a http:
353 : With this change in place Org will apply percent escaping and
354 : unescaping more consistently especially for non-ascii characters.
355 : Additionally some of the outstanding bugs or glitches concerning
356 : percent escaped links are solved.
358 Thanks a lot to David for this work.
362 *** Make =org-store-link= point to directory in a dired buffer
367 When, in a dired buffer, the cursor is not in a line listing a
368 file, `org-store-link' will store a link to the directory.
370 Patch by Stephen Eglen.
374 *** Allow regexps in =org-file-apps= to capture link parameters
379 The way extension regexps in =org-file-apps= are handled has
380 changed. Instead of matching against the file name, the regexps
381 are now matched against the whole link, and you can use grouping
382 to extract link parameters which you can then use in a command
383 string to be executed.
385 For example, to allow linking to PDF files using the syntax
386 =file:/doc.pdf::<page number>=, you can add the following entry to
390 Extension: \.pdf::\([0-9]+\)\'
391 Command: evince "%s" -p %1
394 Thanks to Jan Böcker for a patch to this effect.
398 *** Allow relative time when scheduling/adding a deadline
403 You can now use relative duration strings like "-2d" or "++3w"
404 when calling =org-schedule= or =org-deadline=: it will schedule
405 (or set the deadline for) the item respectively two days before
406 today and three weeks after the current timestamp, if any.
408 You can use this programmatically: =(org-schedule nil "+2d")=
409 will work on the current entry.
411 You can also use this while (bulk-)rescheduling and
412 (bulk-)resetting the deadline of (several) items from the agenda.
414 Thanks to Memnon Anon for a heads up about this!
419 *** American-style dates are now understood by =org-read-date=
424 So when you are prompted for a date, you can now answer like this
428 2/5 --> <CURRENT-YEAR>-02-05
433 *** =org-agenda-custom-commands= has a default value
438 This option used to be `nil' by default. This now has a default
439 value, displaying an agenda and all TODOs. See the docstring for
440 details. Thanks to Carsten for this.
443 *** Improved filtering through =org-agenda-to-appt=
448 The new function allows the user to refine the scope of entries
449 to pass to =org-agenda-get-day-entries= and allows to filter out
450 entries using a function.
452 Thanks to Peter Münster for raising a related issue and to
453 Tassilo Horn for this idea. Also thanks to Peter Münster for
454 [[git:68ffb7a7][fixing a small bug]] in the final implementation.
458 *** Allow ap/pm times in agenda time grid
463 Times in the agenda can now be displayed in am/pm format. See the new
464 variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for
465 a patch to this effect.
469 *** Agenda: Added a bulk "scattering" command
474 =B S= in the agenda buffer will cause tasks to be rescheduled a random
475 number of days into the future, with 7 as the default. This is useful
476 if you've got a ton of tasks scheduled for today, you realize you'll
477 never deal with them all, and you just want them to be distributed
478 across the next N days. When called with a prefix arg, rescheduling
479 will avoid weekend days.
481 Thanks to John Wiegley for this.
485 *** Simplification of org-export-html-preamble/postamble
490 When set to `t', export the preamble/postamble as usual, honoring the
491 =org-export-email/author/creator-info= variables.
493 When set to a formatting string, insert this string. See the docstring
494 of these variable for details about available %-sequences.
496 You can set =:html-preamble= in publishing project in the same way: `t'
497 means to honor =:email/creator/author-info=, and a formatting string
498 will insert a string.
500 *** New exporters to Latin-1 and UTF-8
505 While Ulf Stegemann was going through the entities list to improve the
506 LaTeX export, he had the great idea to provide representations for many
507 of the entities in Latin-1, and for all of them in UTF-8. This means
508 that we can now export files rich in special symbols to Latin-1 and to
509 UTF-8 files. These new exporters can be reached with the commands =C-c
510 C-e n= and =C-c C-e u=, respectively.
512 When there is no representation for a given symbol in the targeted
513 coding system, you can choose to keep the TeX-macro-like
514 representation, or to get an "explanatory" representation. For
515 example, =\simeq= could be represented as "[approx. equal to]". Please
516 use the variable =org-entities-ascii-explanatory= to state your
519 *** HTML export: Add class to outline containers using property
524 The =HTML_CONTAINER_CLASS= property can now be used to add a class name
525 to the outline container of a node in HTML export.
527 *** Throw an error when creating an image from a LaTeX snippet fails
532 This behavior can be configured with the new option variable
533 =org-format-latex-signal-error=.
535 *** Support for creating BEAMER presentations from Org-mode documents
540 Org-mode documents or subtrees can now be converted directly in to
541 BEAMER presentation. Turning a tree into a simple presentations is
542 straight forward, and there is also quite some support to make richer
543 presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
546 Thanks to everyone who has contributed to the discussion about BEAMER
547 support and how it should work. This was a great example for how this
548 community can achieve a much better result than any individual could.
552 *** Refile targets can now be cached
557 You can turn on caching of refile targets by setting the variable
558 =org-refile-use-cache=. This should speed up refiling if you have many
559 eligible targets in many files. If you need to update the cache
560 because Org misses a newly created entry or still offers a deleted one,
563 *** New logging support for refiling
568 Whenever you refile an item, a time stamp and even a note can be added
569 to this entry. For details, see the new option =org-log-refile=.
571 Thanks to Charles Cave for this idea.
575 *** In-buffer completion is now done using John Wiegleys pcomplete.el
580 Thanks to John Wiegley for much of this code.
584 *** New command =org-table-transpose-table-at-point=
589 See the docstring. This hack from Juan Pechiar is now part of Org's
590 core. Thanks to Juan!
592 *** Display field's coordinates when editing it with =C-c `=
597 When editing a field with =C-c `=, the field's coordinate will the
598 displayed in the buffer.
600 Thanks to Michael Brand for a patch to this effect.
602 *** Spreadsheet computation of durations and time values
607 If you want to compute time values use the =T= flag, either in Calc
608 formulas or Elisp formulas:
610 | Task 1 | Task 2 | Total |
611 |--------+--------+---------|
612 | 35:00 | 35:00 | 1:10:00 |
613 #+TBLFM: @2$3=$1+$2;T
615 Values must be of the form =[HH:]MM:SS=, where hours are optional.
617 Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
620 *** Implement formulas applying to field ranges
625 Carsten implemented this field-ranges formulas.
627 : A frequently requested feature for tables has been to be able to define
628 : row formulas in a way similar to column formulas. The patch below allows
635 : as the left hand side for table formulas in order to write a formula that
636 : is valid for an entire column or for a rectangular section in a
639 Thanks a lot to Carsten for this.
641 *** Sending radio tables from org buffers is now allowed
646 Org radio tables can no also be sent inside Org buffers. Also, there
647 is a new hook which get called after a table has been sent.
649 Thanks to Seweryn Kokot.
653 *** Improved handling of lists
658 Nicolas Goaziou extended and improved the way Org handles lists.
660 1. Indentation of text determines again end of items in lists. So, some
661 text less indented than the previous item doesn't close the whole
662 list anymore, only all items more indented than it.
664 2. Alphabetical bullets are implemented, through the use of the
665 variable `org-alphabetical-lists'. This also adds alphabetical
666 counters like [@c] or [@W].
668 3. Lists can now safely contain drawers, inline tasks, or various
669 blocks, themselves containing lists. Two variables are controlling
670 this: `org-list-forbidden-blocks', and `org-list-export-context'.
672 4. Improve `newline-and-indent' (C-j): used in an item, it will keep
673 text from moving at column 0. This allows to split text and make
674 paragraphs and still not break the list.
676 5. Improve `org-toggle-item' (C-c -): used on a region with standard
677 text, it will change the region into one item. With a prefix
678 argument, it will fallback to the previous behavior and make every
679 line in region an item. It permits to easily integrate paragraphs
682 6. `fill-paragraph' (M-q) now understands lists. It can freely be used
683 inside items, or on text just after a list, even with no blank line
684 around, without breaking list structure.
686 Thanks a lot to Nicolas for all this!
688 ** Inline display of linked images
693 Images can now be displayed inline. The key C-c C-x C-v does toggle the
694 display of such images. Note that only image links that have no
695 description part will be inlined.
697 ** Implement offsets for ordered lists
702 If you want to start an ordered plain list with a number different from
703 1, you can now do it like this:
705 : 1. [@start:12] will star a lit a number 12
707 ** Babel: code block body expansion for table and preview
712 In org-babel, code is "expanded" prior to evaluation. I.e. the code that
713 is actually evaluated comprises the code block contents, augmented with
714 the extra code which assigns the referenced data to variables. It is now
715 possible to preview expanded contents, and also to expand code during
716 during tangling. This expansion takes into account all header arguments,
719 A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can
720 be used from inside of a source code block to preview its expanded
721 contents (which can be very useful for debugging). tangling
723 The expanded body can now be tangled, this includes variable values
724 which may be the results of other source-code blocks, or stored in
725 headline properties or tables. One possible use for this is to allow
726 those using org-babel for their emacs initialization to store values
727 (e.g. usernames, passwords, etc...) in headline properties or in tables.
729 Org-babel now supports three new header arguments, and new default
730 behavior for handling horizontal lines in tables (hlines), column names,
731 and rownames across all languages.
733 ** Editing Convenience and Appearance
735 *** New command =org-copy-visible= (=C-c C-x v=)
740 This command will copy the visible text in the region into the kill
741 ring. Thanks to Florian Beck for this function and to Carsten for
742 adding it to org.el and documenting it!
744 *** Make it possible to protect hidden subtrees from being killed by =C-k=
749 See the new variable =org-ctrl-k-protect-subtree=. This was a request
752 *** Implement pretty display of entities, sub-, and superscripts.
757 The command =C-c C-x \= toggles the display of Org's special entities
758 like =\alpha= as pretty unicode characters. Also, sub and superscripts
759 are displayed in a pretty way (raised/lower display, in a smaller
760 font). If you want to exclude sub- and superscripts, see the variable
761 =org-pretty-entities-include-sub-superscripts=.
763 Thanks to Eric Schulte and Ulf Stegeman for making this possible.
765 *** New faces for title, date, author and email address lines
770 The keywords in these lines are now dimmed out, and the title is
771 displayed in a larger font, and a special font is also used for author,
772 date, and email information. This is implemented by the following new
777 =org-document-info-keyword=
779 In addition, the variable =org-hidden-keywords= can be used to make the
780 corresponding keywords disappear.
782 Thanks to Dan Davison for this feature.
784 *** Simpler way to specify faces for tags and todo keywords
789 The variables =org-todo-keyword-faces=, =org-tag-faces=, and
790 =org-priority-faces= now accept simple color names as specifications.
791 The colors will be used as either foreground or background color for
792 the corresponding keyword. See also the variable
793 =org-faces-easy-properties=, which governs which face property is
794 affected by this setting.
796 This is really a great simplification for setting keyword faces. The
797 change is based on an idea and patch by Ryan Thompson.
799 *** <N> in tables now means fixed width, not maximum width
804 Requested by Michael Brand.
806 *** Better level cycling function
811 =TAB= in an empty headline cycles the level of that headline through
812 likely states. Ryan Thompson implemented an improved version of this
813 function, which does not depend upon when exactly this command is used.
814 Thanks to Ryan for this improvement.
821 For paragraph text, =org-adaptive-fill-function= did not handle the
822 base case of regular text which needed to be filled. This is now
823 fixed. Among other things, it allows email-style ">" comments to be
826 Thanks to Dan Hackney for this patch.
828 *** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
833 Thanks to Richard Riley for triggering this change.
835 *** Better automatic letter selection for TODO keywords
840 When all first letters of keywords have been used, Org now assigns more
841 meaningful characters based on the keywords.
843 Thanks to Mikael Fornius for this patch.
847 *** Clock: Allow synchronous update of timestamps in CLOCK log
852 Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease
853 the two timestamps on this line so that duration will keep the same.
854 Note that duration can still be slightly modified in case a timestamp
857 Thanks to Rainer Stengele for this idea.
859 *** Localized clock tables
864 Clock tables now support a new new =:lang= parameter, allowing the user
865 to customize the localization of the table headers. See the variable
866 =org-clock-clocktable-language-setup= which controls available
869 *** Show clock overruns in mode line
874 When clocking an item with a planned effort, overrunning the planned
875 time is now made visible in the mode line, for example using the new
876 face =org-mode-line-clock-overrun=, or by adding an extra string given
877 by =org-task-overrun-text=.
879 Thanks to Richard Riley for a patch to this effect.
881 *** Clock reports can now include the running, incomplete clock
886 If you have a clock running, and the entry being clocked falls into the
887 scope when creating a clock table, the time so far spent can be added
888 to the total. This behavior depends on the setting of
889 =org-clock-report-include-clocking-task=. The default is =nil=.
891 Thanks to Bernt Hansen for this useful addition.
895 *** Improvements with inline tasks and indentation
900 There is now a configurable way on how to export inline tasks. See the
901 new variable =org-inlinetask-export-templates=.
903 Thanks to Nicolas Goaziou for coding these changes.
905 *** A property value of "nil" now means to unset a property
910 This can be useful in particular with property inheritance, if some
911 upper level has the property, and some grandchild of it would like to
912 have the default settings (i.e. not overruled by a property) back.
914 Thanks to Robert Goldman and Bernt Hansen for suggesting this change.
916 *** New helper functions in org-table.el
921 There are new functions to access and write to a specific table field.
922 This is for hackers, and maybe for the org-babel people.
927 org-table-current-line
931 *** Archiving: Allow to reverse order in target node
936 The new option =org-archive-reversed-order= allows to have archived
937 entries inserted in a last-on-top fashion in the target node.
939 This was requested by Tom.
941 *** Org-reveal: Double prefix arg shows the entire subtree of the parent
946 This can help to get out of an inconsistent state produced for example
947 by viewing from the agenda.
949 This was a request by Matt Lundin.
952 This file is part of GNU Emacs.
954 GNU Emacs is free software: you can redistribute it and/or modify
955 it under the terms of the GNU General Public License as published by
956 the Free Software Foundation, either version 3 of the License, or
957 (at your option) any later version.
959 GNU Emacs is distributed in the hope that it will be useful,
960 but WITHOUT ANY WARRANTY; without even the implied warranty of
961 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
962 GNU General Public License for more details.
964 You should have received a copy of the GNU General Public License
965 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.